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美化测试报告相关推荐
- pytest测试实战pdf_Pytest测试实战
Pytest测试框架是动态语言Python专用的测试框架,使用起来非常的简单,这主要得易于它的设计,Pytest测试框架具备强大的功能,丰富的第三方插件,以及可扩展性好,可以很好的和unittest测 ...
- Pytest测试实战
Pytest测试框架是动态语言Python专用的测试框架,使用起来非常的简单,这主要得易于它的设计,Pytest测试框架具备强大的功能,丰富的第三方插件,以及可扩展性好,可以很好的和unittest测 ...
- pytest测试实战 电子书_pytest实战APL测试框架
Pytest实战API测试框架 功能规划 数据库断言 pymysql -> 封装 环境清理 数据库操作 -> Fixtures 并发执行 pytest-xdist 多进程并行 复合断言 p ...
- pytest测试实战 电子书_电子书丨Selenium 3+Python 3自动化测试项目实战:从菜鸟到高手...
▊<Selenium 3+Python 3自动化测试项目实战:从菜鸟到高手> 田春成 著 电子书售价:39.5元 2019年9月出版 Selenium是目前非常流行的一种自动化测试工具.本 ...
- 《pytest 测试实战》读书笔记1
文章目录 第 1 章 pytest 入门 1.1 安装 pytest 1.2 运行 pytest 1.3 运行单个测试用例 1.4 使用命令行选项 1.5 练习 第 1 章 pytest 入门 首先来 ...
- pytest测试实战笔记一:PytestUnknownMarkWarning- is this a typo? You can register custom marks to avoid this
运行测试用例时跳出警告: 虽然不影响运行结果,但是一长串的看着挺讨厌的. 处理办法: 在用例的当前目录下新建配置文件pytest.ini,然后在配置文件中定义好我们需要使用的标签,多个标签时需要换行 ...
- Pytest测试框架(五):pytest + allure生成测试报告
系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...
- Pytest测试框架的基本使用和allure测试报告
一.测试用例的识别与运行 目录识别 通过pytest.ini配置文件配置 如果未指定任何参数,则收集从testpaths(如已配置)或当前目录开始.另外,命令行参数可以在目录.文件名或节点ID的任何组 ...
- Pytest系列——allure(原理)之allure工具与Pytest测试框架集成
官方介绍 1.Allure Framework是一种灵活的轻量级多语言测试报告工具,不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,也允许参与开发过程的每个人从日常测试中提取最大程度的有用信 ...
最新文章
- PCL:英文参考链接
- Javascript学习--------详解window窗口对象
- 西门子绿色数据中心的“新”境界
- JBoss4.2.3部署SSH2
- python基础-装饰器
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]50.什么是BLS基于对的签名方案?
- 树莓派 python spi,树莓派测试SPI-基于设备操作ioctl
- 3. 从零开始学CSRF
- App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点
- 简书全站爬取 mysql异步保存
- creo数控编程怎么样_CREO数控编程NC图文教程 -
- Idea导入项目及相关环境配置
- ModelState.IsValid忽略型别的检查错误
- 戴尔910服务器系统安装教程,图解戴尔dell工作站T3600/T5600/T7600/T7910安装windows 7系统...
- python中的date的含义_浅谈python中的dateime
- CHAP协议认证模式
- 3c计算机通讯消费类电子产品,什么是3c产品?3c产品具体包括哪些
- 用HTML做一个圆形,css如何制作圆?
- 互联网运营平台指标体系_分享 :滴滴数据仓库指标体系建设实践
- 袋鼠云春季生长大会圆满落幕,带来数实融合下的新产品、新方案、新实践
热门文章
- jQuery Easy UI Accordion(可伸缩的面板)包
- js中的escape的用法汇总
- iOS网络编程-ASIHTTPRequest框架同步请求
- UVA 10173 旋转卡壳
- 计算机网络——链路层之局域网
- 一种基于平衡二叉树(AVL树)插入、查找和删除的简易图书管理系统
- php输出mysql的数据结构_php课程 13-43 mysql的数据结构是什么
- c#语言程序设计上机实验,C#语言程序设计基础实验指导(第3版)
- jquery 获取键值对中最大值_jquery属性的操作
- python 实例化父类对象_在Python中从现有超类实例化子类