嗯哼!好的,前面部分我们完成了不同文件中的数据获取方法的构建、邮件发送、接口请求方法的封装、接口传参值的获取,接下来就需要有一个统一的入口,来将前面的模块组合,从而完成接口自动测试模块的搭建。
from ApiTestFrame.base.run_method import RunMethod
from ApiTestFrame.constant.get_excelData import GetExcelData
from ApiTestFrame.util.common_util import CommonUtil
from ApiTestFrame.util.send_mail import SendMail
import sys
sys.path.append("/home/ubuntu/InterfaceTest")
print(sys.path)
class RunTest:
def __init__(self):
self.run_method = RunMethod()
self.excel_data = GetExcelData()
self.compare_str = CommonUtil()
self.send_mail = SendMail()
# 程序执行
def go_on_run(self):
res = None
# 定义空数组承载执行成功的用例数和执行失败的用例数
pass_lists = []
fail_lists = []
# 获取Excel中总的用例条数,来设定程序遍历的上限
rows_count = self.excel_data.get_case_lines()
# 遍历执行每一条测试用例
for i in range(1, rows_count):
# 用例是否执行
is_run = self.excel_data.get_is_run(i)
# 接口地址
url = self.excel_data.get_url(i)
# 接口请求方式
method = self.excel_data.get_method(i)
# 通过Excel中的关键字读取json文件中关键词对应的数据,作为接口的请求参数data
data = self.excel_data.get_data_from_json(i)
header = self.excel_data.is_header(i)
# 预期结果值
excepted_data = self.excel_data.get_except_data(i)
if is_run:
res = self.run_method.run_main(method, url, data, header)
print(res)
if self.compare_str.is_contain(excepted_data, res):
self.excel_data.write_result(i, 'pass')
pass_lists.append(i)
else:
self.excel_data.write_result(i, res)
fail_lists.append(i)
self.send_mail.send_content(pass_lists=pass_lists, fail_lists=fail_lists)
if __name__ == "__main__":
run = RunTest()
run.go_on_run()