实际测试过程中,我们可能会断言code及对应的message;也可能只断言code;本文就这种情况来完善介绍如何测试框架
思路:excle中加一列,填写进行何种断言,然后根据获取该列的值进行对应的断言。
源码:
# -*-coding:utf-8-*-
from Base.handle_excel import *
from Base.base_request import *
import json
from Base.handle_result import *
'''创建RunMain类实现运行用例的功能'''
class RunMain:
def run_case(self):
''' 获取行数'''
rows = excel_data.get_rows()
'''除去表头需要遍历rows-1次'''
for i in range(rows-1):
'''i是从0开始,所以i+2,就和用例可以对应上,获取第i+2用例数据'''
data = excel_data.get_rows_value(i+2)
is_run = data[2]
'''判断如果第二列数据为yes则执行'''
if is_run == "yes":
method = data[5]
url = data[4]
'''用封装的request发送请求'''
res = request.run_main(method=method,url=url)
'''打印出来方便查看'''
print(res)
'''获取实际result对应的code'''
code = res["result"]
'''获取实际的msg的值'''
msg = res["msg"]
'''获取断言方法'''
assertion_method = data[8]
'''获取预期结果'''
excepect_result = data[9]
'''如果断言方法是mer'''
if assertion_method == "mer":
'''传入实际code获取config对应的msg值'''
config_msg = data_result.get_result(url,code)
'''进行断言'''
if msg == config_msg:
print("测试通过")
else:
print("测试失败")
'''如果断言方法是result'''
if assertion_method == "result":
'''这块需要注意返回结果获取的result是整型,而我们Excel中获取
的是字符串,所以这边需要把格式统一再做比对'''
if str(res["result"]) == excepect_result:
print("测试通过")
else:
print("测试失败")
if __name__ == '__main__':
run = RunMain()
run.run_case()