Pytest框架集成优雅美观的allure测试报告

前言

Pytest是一个非常成熟的全功能的Python测试框架,主要有以下特点:

  • 简单灵活,容易上手,支持参数化
  • 能够支持简单的单元测试和复杂的功能测试,
  • 还可以用来做等UI自动化测试(selenium/appnium+pytest)、接口自动化测试(pytest+requests)

pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如:
report框架----allure 支持pytest,可以很好的和jenkins集成。
想要生成allure报告整体分为三个步骤:

  • 编写自动化用例脚本
  • 运行脚本生成xml的数据集目录(allure报告依赖该xml数据生成
  • 生成html形式的Allure测试报告目录

接下来看看如何在pytest框架中集成allure测试报告详细操作步骤:

安装Allure库

安装命令: pip install allure-pytest,然后下载allure命令Command Tool压缩包
在这里插入图片描述
将解压的安装包bin路径添加到环境变量,把其./bin/下的路径添加到Windows环境变量PATH中,例如D:\安装包\allure-2.13.2\bin,
然后在cmd运用allure命令,如图所示表示allure配置成功
安装包可以到群里面下载,软件测试交流群:821268239
在这里插入图片描述

编写python+pytest接口自动化用例脚本

下面是俩个接口测试用例脚本:

import requests,unittest,json,pytest
class ApiCases(unittest.TestCase):
    def setUp(self) -> None:
        print('用例的前置')
        self.url='http://62.234.58.195:3000/api/v1'
    def tearDown(self) -> None:
        print('用例的后置')
    def test_get_topics(self):
        res=requests.get(url=self.url+'/topics',
                         params={
                             "limit":1
                         })
        respones=res.json()
        print(json.dumps(
            respones,
            ensure_ascii=False,
            indent=4
        ))
        assert respones['success']==True
    def test_add_topics(self):
        res=requests.post(url=self.url+'/topics',
                          json={
                            "accesstoken": "089b377e-fbc9-4418-ad75-a7d3e83f1216",
                            "title": "0713公开课新建的主题",
                            "tab": "ask",
                            "content": "一诺教育自动化测试开发性能测试全栈"
                        })
        respones=res.json()
        print(json.dumps(
            respones,
            ensure_ascii=False,
            indent=4
        ))
        assert respones['success']==True

if __name__ == '__main__':
    pytest.main(['-s', '-vv', 'class0713.py','--alluredir', './report/xml'])

运行用例生成allure的xml数据集目录

基于pytest运行脚本命令:pytest.main([‘-s’, ‘-q’, ‘class0713.py’,‘–alluredir’, ‘./report/xml’])
在这里插入图片描述
class0713.py 表示测试目标文件
-s表示控制台打印输出
-vv显示用例详细结果
–alluredir ‘./report/xml’ 运行后的结果,是生成xml的数据集合目录

生成html形式的Allure测试报告目录

在当前目录命令行运行命令:
allure generate --clean ./report/xml/ -o ./results/html/

  • ./report/xml/ 第2部生成的数据集目录,
  • ./results/html/是生成html报告目录
  • -o是指向目标生成测试报告的目录;
    在这里插入图片描述

报告效果展示

打开results目录中的index.html,业界公认最美观优雅的allure测试报告就完美的生成了,效果如下所示:
在这里插入图片描述

总结

基于python+pytest框架+requests库+DDT数据驱动+Allure报告是企业常用的接口自动化测试框架结构,熟练接口测试,能独立搭建接口测试框架是测试工程师能力分水岭的体现。

如果此文对你在学习接口自动化测试过程中有所帮助,或者你也想学习web/接口自动化测试,测试开发,性能测试,免费的教程,可以白嫖,在我的主页清风说测试开发,B站免费软件测试视频教程免费分享的有功能测试基础+接口测试实战,高级自动化测试技术白嫖教程,

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐