"YamlCase/git@172.16.40.31:zhanhuasheng/willdesk_apiauto.git" did not exist on "3e90e5a00f709be3bcb33cd77652c0e70cc37ac0"
Commit 3d7f72c3 authored by zhanhuasheng's avatar zhanhuasheng

兼容websocket消息收发断言

parent 21fc9e89
......@@ -114,6 +114,7 @@ class ReqHandler:
:param expected: 传入期望结果
:return:
'''
try:
assert res.status_code == 200 #先断言状态码是正确的
if isinstance(expected,list):
'''
......@@ -125,8 +126,12 @@ class ReqHandler:
path = list(item_value.keys())[0] #拿到path路径
value = list(item_value.values())[0]
res_path_value = jsonpath.jsonpath(res.json(),path)[0]
if isinstance(res_path_value,str) and '{"contentList":' in res_path_value:
res_path_value = res_path_value.replace('\\','')
if assert_way == 'eq': #eq代表完全相同
assert value == res_path_value
elif assert_way == 'like': #代表值相同但是type可能不同
assert str(value) == str(res_path_value)
elif assert_way == 'not_eq': #not_eq代表不相同
assert value != res_path_value
elif assert_way == 'almost': #almonst代表四舍五入后相同就判断为一致
......@@ -135,8 +140,11 @@ class ReqHandler:
assert value in res_path_value
elif assert_way == 'ain':
assert res_path_value in value
except AssertionError:
print(f'期望值为{value}{type(value)}),实际返回值为{res_path_value}{type(res_path_value)}),完整的expected体为{expected}')
raise AssertionError
except Exception as e:
print(e,'-----------------')
def set_value_handler(self,res,item,var_class):
'''
:param res: 传response请求体
......
......@@ -39,9 +39,9 @@ class ws:
async def send_message(self, message):
if self.websocket and self.websocket.open:
try:
print('开始发送消息')
await self.websocket.send(message)
print(f"Sent message: {message}")
time.sleep(0.5)
except websockets.ConnectionClosed as e:
await self.close()
except Exception:
......@@ -95,10 +95,8 @@ async def ws_action(ws,case):
async def ws_send_handler(case,ws):
data = case['data'] # 消息数据
if data['type'] in ['text', 'emoji']:
content = r'{"contentList":"%s","attachmentList":[]}' % data['content']
else:
content = getattr(livechatData,data['type'])
content = getattr(livechatData,data['type']) #根据type取到对应格式的content
if data['type'] != 'rate':
msgType = 'newstext'
else:
......@@ -161,6 +159,7 @@ def ws_assert(expected,msg):
:param res: 返回的信息
:return:
'''
try:
for item in expected: # 循环每一个断言场景
for item_key, item_value in item.items():
assert_way = item_key
......@@ -171,12 +170,17 @@ def ws_assert(expected,msg):
assert value == res_path_value
elif assert_way == 'not_eq': # not_eq代表不相同
assert value != res_path_value
elif assert_way == 'like': # 代表值相同但是type可能不同
assert str(value) == str(res_path_value)
elif assert_way == 'almost': # almonst代表四舍五入后相同就判断为一致
assert round(value, 2) == round(res_path_value, 2)
elif assert_way == 'in': # in代表断言值在返回值中
assert value in res_path_value
elif assert_way == 'ain':
assert res_path_value in value
except AssertionError:
print(f'期望值为{value}{type(value)}),实际返回值为{res_path_value}{type(res_path_value)}),完整的expected体为{expected}')
raise AssertionError
async def ws_run(ws,case):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment