Pytest+allure详解

文章介绍了从传统的unittest框架转向pytest框架的原因,以及如何使用allure插件来生成更美观、详细的测试报告。通过示例代码展示了如何在pytest中集成allure,包括feature、story、title的设置,以及测试步骤和断言的处理。最后,提到了测试报告的生成和查看方式,包括在Jenkins等环境中集成和远程访问的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、框架介绍

   曾几何时我们对unittest框架+htmlrunner这套测试框有着满载回忆,随着时代的变迁和技术更新,unittest框架已经褪去曾经的辉煌停止更新,htmlrunner的测试报告也还是一如既往简陋不堪,在这个内卷比较严重的大环境下,我们一份眼花缭乱、耳目一新、高端大气的测试报告可能会带你度过当前的艰难岁月。

二、安装方法

2.1、pytest 安装

  • 安装命令: pip install Pytest

3.2、 allure安装

三、框架代码

#!/usr/bin/python
# -*- coding: utf-8 -*-

#@Users: LiMu
#@Files:pytest_allrure.py
#@Times: 2022/3/11 
#@Software:PyCharm

import os
import allure
import pytest

#feature、story、title在测试报告中文本是以层级展示
#casesum是用例列表,例如[ 用例壹, 用例贰, 用例叁 ]
@allure.feature('某应用测试用例')
class TestCase(object):
    @pytest.mark.parametrize("casexx", casesum)
    def test_case(self,casexx):
        allure.dynamic.story(casexx.get("CaseModel"))
        allure.dynamic.title(casexx.get("CaseName"))
        allure.dynamic.severity(casexx.get("level"))

        #测试步骤及断言,step可以看成测试报告TestBody的标题,attach则为TestBody打印内容.
        with allure.step("操作步骤:"):
            allure.attach(casexx.get("Steps"))
        with allure.step("测试断言:"):
            if casexx.get("Asserts")[0] == casexx.get("Asserts")[1]:
                allure.attach("用例执行通过!","测试结果:")
            else:
                allure.attach("用例执行失败!", "测试结果:")
                allure.attach(casexx.get("Asserts")[1],"实际返回结果:")
        assert casexx.get("Asserts")[0] == casexx.get("Asserts")[1]


if __name__ == '__main__':
    #pytest.main执行代码并生成测试报告数据至allure-result文件
    pytest.main(["-s","pytest_allrure.py","--alluredir", "../test_report/allure-result"])
    #使用allure工具生成测试报告
    os.system("allure generate ../test_report/allure-result/ -o ../test_report/allure-report --clean")
    #将测试报告中的history复制至测试报告数据文件,不进行该操作首页趋势图取不到数据
    os.system(r"xcopy  E:\Pyfiles\test_report\allure-report\history E:\Pyfiles\test_report\allure-result\history /E /Y /I")

四、测试报告

   执行测试代码后就会生成测试数据文件allure-result和测试报告文件allure-report,在allure-report下用游览器打开文件index.html就可以看到你的测试报告啦,当然这样打开测试报告特别low,我们可以把框架集成在Jenkins,可以在Jenkins打开汇自动调用游览器,也可以用Tomcat或者Nginx部署一个环境打开测试报告,同时还可以使用公网IP或者域名进行广域网访问。

测试报告贴图

  • 报告首页

  • 报告详情

  • 报告趋势图


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值