欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

pytest测试实战pdf_Pytest+Allure美化测试报告

发布时间:2024/7/23 编程问答 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 pytest测试实战pdf_Pytest+Allure美化测试报告 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

今日推荐音乐:我最爱的霉霉

在学习pytest的时候,生成的html报告觉得实在不是很美观,查到资料有很多测试报告的第三方插件,不仅美观而且查看测试用例也很方便,那我们一起来学习下吧~

0 1

参考案例

要学习一个新技术,最快捷的方法就是去网上找一个demo先练习,然后结合自己的项目练手。于是我找了网上案例并适当修改了下,test_report.py文件如下:

import allure@allure.feature('天气预报功能')class TestReportStyle(object): @allure.story('查询上海天气') def test_search_weather(self): login('小明', '123') with allure.step('输入城市'): allure.attach('上海') with allure.step('点击查询'): pass with allure.step('查询结果'): allure.attach('查询成功', '期望结果') allure.attach('查询失败', '实际结果')            assert 'success' == 'failed' @allure.story('查询下周天气') def test_search_nextweek(self):        pass@allure.step('用户登录')def login(user, pwd): print(user, pwd)

Allure用法说明:

@allure.feature('XXX'): 测试用例需求,就相当于告诉报告这个脚本主要功能是做什么的;

@allure.story('XXX'): 测试场景,就相当于一个测试用例;

with allure.step('XX'): 测试步骤;

with allure.attch('XX'): 测试数据,用户输入的测试内容或者截图等信息;

@allure.step('XX'): 将函数作为测试步骤放入测试报告中;

0 2

结合项目实战

 结合上一篇请求豆瓣电影的小demo,做一个优化。

import yamlimport allureimport pytestimport requestsfrom utils import comm_functiondef get_test_data(filepath): case = [] # 存放测试用例名 requests = [] # 存放http请求对象 validate = [] # 存放断言 with open(filepath, encoding='utf-8') as f: data = yaml.load(f.read(), Loader=yaml.SafeLoader) case.append(data.get('test')) requests.append(data.get('requests')) validate.append(data.get('validate')) params = zip(case, requests, validate)        return case, paramscases, parameters = comm_function.get_test_data('D:/workFile/test/pytest_demo/data/test_movie.yaml')list_params = list(parameters)print(list_params[0][1])@allure.feature('豆瓣电影列表测试用例') # 测试场景class TestInTheaters(object): @allure.story('查询电影列表') # 测试用例 @pytest.mark.parametrize('case,http,validate', list(list_params), ids=cases) def test_in_theaters(self, case, http, validate): host = 'http://api.douban.com' with allure.step('请求豆瓣网-上映的电影'): # 测试步骤 allure.attach('start', validate['count']) # 测试数据 allure.attach('count', validate['start']) # 测试数据 res = requests.request(http['method'], url=host+http['path'], headers=http['headers'], params=http['params']) response = res.json() assert response['count'] == validate['count'] assert response['start'] == validate['start'] assert response['title'] == validate['title']

代码运行:

第一步:将测试数据打包

pytest 脚本目录 --alluredir 存放报告目录

第二步:生成测试报告

allure generate -o 运行结果目录 存放报告目录 --clean # 清空

查看结果:

遇到的坑:

1、手机端安装的allure,在pycharm中提示没有allure命令。

解决办法:

pycharm的teminal中,pip list查看当前Python下可用的插件,没有的话安装下

2、生成过一次的测试报告,再次运行的时候会出现以前的测试情况,明明我clean了啊?

解决办法:

我打包测试数据的时候,运行多次,那我的测试数据当前会出现重复啦!删除下重新运行就可以了。

pytest相关文章推荐:

1、初步了解Pytest测试框架

2、pytest+yaml实现接口自动化

总结

以上是生活随笔为你收集整理的pytest测试实战pdf_Pytest+Allure美化测试报告的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。