更新使用方法,增加多层关联逻辑处理

This commit is contained in:
jing song 2022-04-06 15:46:24 +08:00
parent 84db500e7d
commit d3fe80ca62
6 changed files with 23 additions and 18 deletions

View File

@ -43,8 +43,10 @@ class apiSend(object):
:param data: 请求参数
:param files: 文件对象 dict
{
'file参数名': (r'文件名称.xlsx', open(r'路径\文件名称.xlsx', 'rb'),)
'file参数名(files)': (r'文件名称.xlsx', open(r'路径\文件名称.xlsx', 'rb') 或者 直接文件路径)
}
file: 'D:\apitest\test_suite\files\test.png'
files={"files": casedata["data"]["file"]}
:return:
"""
@ -69,6 +71,7 @@ class apiSend(object):
elif '/' in value or "\\" in value:
file_parm = i
files[file_parm] = (os.path.basename(value), open(value, 'rb'), 'application/octet-stream')
print(1)
else:
pass
multipart = MultipartEncoder(

View File

@ -60,3 +60,4 @@ Werkzeug==2.0.2
wsproto==1.0.0
zstandard==0.15.2
faker==13.3.2
pytest-xdist==2.5.0

View File

@ -33,8 +33,8 @@ def run():
mk_dir(html_path)
# 执行命令行
# args = ['-s', '-q', test_case_path, '--alluredir', temp_path,"--clean-alluredir"]
args = ['-s', '-q', test_case_path,]
args = ['-s', '-q', test_case_path, '--alluredir', temp_path,"--clean-alluredir",'-n','1']
# args = ['-s', '-q', test_case_path,]
# args = ['-s', '-q', test_case_path, '--alluredir',
# '/var/jenkins_home/workspace/js/report/xml'] # docker中 jenkins工作空间项目根路径
@ -49,9 +49,9 @@ def run():
# ding = DingTalkSendMsg()
# ding.send_text("点击链接打开测试报告 http://192.168.1.2:9999",[13688400244])
# 生成html报告
# os.system(r'allure generate {0} -o {1} --clean'.format(temp_path, html_path))
os.system(r'allure generate {0} -o {1} --clean'.format(temp_path, html_path))
# 打开报告服务 并指定端口
# os.system(r'allure serve {0} -p 11999'.format(temp_path))
os.system(r'allure serve {0} -p 11999'.format(temp_path))
if __name__ == '__main__':

View File

@ -42,7 +42,7 @@ __all__ = [
'pytest',
'asserting',
'Log',
'ini_yaml',
'ini_allyaml',
'alldata',
'allure',
'apisend',

View File

@ -65,8 +65,8 @@ class Test_{filename}(object):""")
f.write(f"""
res,restime, code = apisend(host=casedata["host"], address=casedata["address"], method=casedata["method"],
headers=casedata["headers"],
data=casedata["data"], rel=casedata["relevance"],
files={{"file": casedata["data"]["file"]}})
data=casedata["data"], caches=casedata["cache"],
files={{"files": casedata["data"]["file"]}})
asserting(hope_res=casedata["assert"], real_res=res, re_time=restime, re_code=code)\n""")

View File

@ -9,6 +9,7 @@ from common.basePage import apisend
from util.tools.readYamlFile import ini_allyaml
from util.tools.randomData import replace_random
import jsonpath
import allure
def relevance(alldata, relevancedata, headerdata=None):
@ -20,16 +21,16 @@ def relevance(alldata, relevancedata, headerdata=None):
p = alldata[i["relCaseName"]]["case"][i["relCaseNum"] - 1]
# if p["relevance"]:
# relevance(alldata,relevancedata=p,headerdata=headerdata)
if p["relevance"]:
p = relevance(alldata, relevancedata=p, headerdata=headerdata)
if alldata[i["relCaseName"]]["token"]:
p["headers"][alldata[i["relCaseName"]]["token"]] = headerdata
res, time, code= apisend(address=p["address"],
method=p["method"], headers=p["headers"], data=p["data"],
caches=p["cache"],host=p["host"])
v = jsonpath.jsonpath(res, i["value"])[0]
reldict[i["name"]] = v
with allure.step("执行关联接口"):
if p["relevance"]:
p = relevance(alldata, relevancedata=p, headerdata=headerdata)
if alldata[i["relCaseName"]]["token"]:
p["headers"][alldata[i["relCaseName"]]["token"]] = headerdata
res, time, code= apisend(address=p["address"],
method=p["method"], headers=p["headers"], data=p["data"],
caches=p["cache"],host=p["host"])
v = jsonpath.jsonpath(res, i["value"])[0]
reldict[i["name"]] = v
d2 = replace_random(str(relevancedata),param=reldict)
d3 = eval(d2)
return d3