qq群:234922431
前期的工作,做的已经差不多ok,咱们开始进行搭建运行项目之旅
在control包下,增加两个类,autotest.py和testcase.py
autotest类,主要做的事情有如下几点:
1.解析用例文件
2.生成测试报告
3.将测试报告发送到邮箱
autotest.py完整版代码如下:
from control.testcase import TestCase
from control.utlis import Excel, datatodict, testsuite_format
from pathlib import Path
class Autotest():
def __init__(self, parmars):
self.parmars = parmars
# logger.info(parmars)
# 用例表 强转为str类型 兼容jenkins运行
self.file_testcae = str(Path('testcase') / ('test-case.xlsx'))
# 读取测试用例
self.excel_testcase = Excel('r', self.file_testcae)
# 获得用例的全部内容
self.data = self.excel_testcase.read()
# 转换格式为json
self.data = datatodict(self.data)
# 转换数据格式为测试套件返回的可执行用例json
self.testsuit = testsuite_format(self.data)
# 用于接受用例的结果
self.result_testuite = []
# 测试报告详细数据
self.report_data = {}
def play(self):
# 读取测试套件执行用例
print(self.testsuit)
for case in self.testsuit:
# logger.info(testcase)
print(case)
# 传入当前用例
testcae = TestCase(case)
# 执行
rt_case = testcae.run()
# 收到测试的结果,进行生成测试报告
self.result_testuite.append(rt_case)
testcase类,主要做的事情有如下几点:
1.解析element文件
2.执行用例,记录测试过程
3.测试数据转换,转换成咱们想要的内容,在前面已经封装过了,在这儿将会直接使用
testcase.py完整版代码如下:
1.执行用例
2.分辨是接口自动化还是ui数据等
3.记录测试结果和输出测试报告
"""
from pathlib import Path
from control.utlis import Excel, element_tojson
from control.data import replace
from control import httpcaps
class TestCase:
def __init__(self, testcase):
# 当前执行的用例
self.testcase = testcase
print(self.testcase)
# 元素和链接的表格
self.file_element = str(Path('element') / ('elements.xlsx'))
# 读取链接和元素表格全部内容
self.excel_element = Excel('r', self.file_element)
# 获得数据
self.element_data = self.excel_element.read()
# 元素和接口转换为json,切片是为了去除表格的第一行
self.elements = element_tojson(self.element_data[1:])
# 配置参数可能包含ui的基本信息 是什么浏览器和App的版本信息等
# self.parmars = parmars
# 类型,是接口测试还是ui自动化
# self.genre = self.parmars['genre']
# 处理当前testcase
# 执行测试用例
def run(self):
steps = []
for index, step in enumerate(self.testcase['steps']):
# logger.info(index)
print(step)
try:
# 获得当前需要测试的接口内容
url = self.elements['baseurl']['url'] + self.elements[step['element']]['url']
# 当前接口请求的类型
sort = self.elements[step['element']]['type']
# logger.info(sort)
# 放入到step里面
step['element'] = url.strip()
# 将测试数据进行重组,调用自定义函数 计算出结果
step['data'] = replace(step['data'])
# 执行用例
result_json = getattr(httpcaps, 'htpp_requests')(step, sort)
# logger.info(result_json)
# 得到用例执行的结果存入list中
steps.append(result_json)
except Exception as exception:
# 将此用例等于不通过
step['score'] = 'Fail'
steps.append(step)
print('error:interface and element not found%s' % step['element'])
print('error:%s' % exception)
# 记录生成的测试结果,生成测试报告excel版本
self.testcase['steps'] = steps
return self.testcase
完事具备,只欠东风~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
接下里,创建一个开启测试的类文件,开启测试之旅~~~~~~~~~~~~~~~~~~~
跟目录下增加httpstart.py
httpstart.py内容如下:
from control.autotest import Autotest
import sys
# 将工程根目录加入到python搜索路径中
sys.path.append('..')
# 兼容后期格式,是接口自动化还是web自动化app自动化,数据库,小程序 h5等自动化测试,以接口为主
desired_caps = {'genre': 'api'}
autotest = Autotest(desired_caps)
# 执行测试
autotest.play()
# 创建测试报告
# autotest.crateport()
# 发送测试报告到邮箱
# autotest.sedEmail()
下一篇请查看:python+requests+jenkins接口自动化实战第七篇
https://download.csdn.net/download/zhangmeng1314/11255512源码下载地址
到这里基本的搭建已经完成了,下面将增加功能如下:
1.测试报告文件生成
2.发送测试报告到邮件
3.部署到jenkins上,部署到阿里云服务器上,进行持续集成测试
小伙伴运行一下看看结果哦,因为接口我是本地写的,所以大家自己更换成,可以使用的接口信息即可,
有问题欢迎评论区留言,看到后会一一解答。
作者:猫的❤️
版权声明:本文为博主原创文章,转载请附上博文链接!