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

在学习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美化测试报告相关推荐

  1. pytest测试实战pdf_Pytest测试实战

    Pytest测试框架是动态语言Python专用的测试框架,使用起来非常的简单,这主要得易于它的设计,Pytest测试框架具备强大的功能,丰富的第三方插件,以及可扩展性好,可以很好的和unittest测 ...

  2. Pytest测试实战

    Pytest测试框架是动态语言Python专用的测试框架,使用起来非常的简单,这主要得易于它的设计,Pytest测试框架具备强大的功能,丰富的第三方插件,以及可扩展性好,可以很好的和unittest测 ...

  3. pytest测试实战 电子书_pytest实战APL测试框架

    Pytest实战API测试框架 功能规划 数据库断言 pymysql -> 封装 环境清理 数据库操作 -> Fixtures 并发执行 pytest-xdist 多进程并行 复合断言 p ...

  4. pytest测试实战 电子书_电子书丨Selenium 3+Python 3自动化测试项目实战:从菜鸟到高手...

    ▊<Selenium 3+Python 3自动化测试项目实战:从菜鸟到高手> 田春成 著 电子书售价:39.5元 2019年9月出版 Selenium是目前非常流行的一种自动化测试工具.本 ...

  5. 《pytest 测试实战》读书笔记1

    文章目录 第 1 章 pytest 入门 1.1 安装 pytest 1.2 运行 pytest 1.3 运行单个测试用例 1.4 使用命令行选项 1.5 练习 第 1 章 pytest 入门 首先来 ...

  6. pytest测试实战笔记一:PytestUnknownMarkWarning- is this a typo? You can register custom marks to avoid this

    运行测试用例时跳出警告: 虽然不影响运行结果,但是一长串的看着挺讨厌的. 处理办法: 在用例的当前目录下新建配置文件pytest.ini,然后在配置文件中定义好我们需要使用的标签,多个标签时需要换行 ...

  7. Pytest测试框架(五):pytest + allure生成测试报告

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  8. Pytest测试框架的基本使用和allure测试报告

    一.测试用例的识别与运行 目录识别 通过pytest.ini配置文件配置 如果未指定任何参数,则收集从testpaths(如已配置)或当前目录开始.另外,命令行参数可以在目录.文件名或节点ID的任何组 ...

  9. Pytest系列——allure(原理)之allure工具与Pytest测试框架集成

    官方介绍 1.Allure Framework是一种灵活的轻量级多语言测试报告工具,不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,也允许参与开发过程的每个人从日常测试中提取最大程度的有用信 ...

最新文章

  1. PCL:英文参考链接
  2. Javascript学习--------详解window窗口对象
  3. 西门子绿色数据中心的“新”境界
  4. JBoss4.2.3部署SSH2
  5. python基础-装饰器
  6. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]50.什么是BLS基于对的签名方案?
  7. 树莓派 python spi,树莓派测试SPI-基于设备操作ioctl
  8. 3. 从零开始学CSRF
  9. App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点
  10. 简书全站爬取 mysql异步保存
  11. creo数控编程怎么样_CREO数控编程NC图文教程 -
  12. Idea导入项目及相关环境配置
  13. ModelState.IsValid忽略型别的检查错误
  14. 戴尔910服务器系统安装教程,图解戴尔dell工作站T3600/T5600/T7600/T7910安装windows 7系统...
  15. python中的date的含义_浅谈python中的dateime
  16. CHAP协议认证模式
  17. 3c计算机通讯消费类电子产品,什么是3c产品?3c产品具体包括哪些
  18. 用HTML做一个圆形,css如何制作圆?
  19. 互联网运营平台指标体系_分享 :滴滴数据仓库指标体系建设实践
  20. 袋鼠云春季生长大会圆满落幕,带来数实融合下的新产品、新方案、新实践

热门文章

  1. jQuery Easy UI Accordion(可伸缩的面板)包
  2. js中的escape的用法汇总
  3. iOS网络编程-ASIHTTPRequest框架同步请求
  4. UVA 10173 旋转卡壳
  5. 计算机网络——链路层之局域网
  6. 一种基于平衡二叉树(AVL树)插入、查找和删除的简易图书管理系统
  7. php输出mysql的数据结构_php课程 13-43 mysql的数据结构是什么
  8. c#语言程序设计上机实验,C#语言程序设计基础实验指导(第3版)
  9. jquery 获取键值对中最大值_jquery属性的操作
  10. python 实例化父类对象_在Python中从现有超类实例化子类