pytest框架结合allure生成测试报告

在没有接触过pytest框架前博主使用的都是unittest+httptestrunner生成测试报告的,那个最后那个测试报告出来的样式真的的一言难尽,用过的小伙伴都知道哈哈哈哈,但今天所要讲的allure测试报告不一样,用过的都说好,哈哈哈哈。

首先安装allure,在cmd中输入pip install allure-pytest安装成功即可,然后下载allure-commandline在git上可以成功下载到https://github.com/allure-framework/allure2/releases 

版本呢可以选择稍微新一点的,下好以后解压解压好以后将bin目录配置到path环境变量中去,这个我相信大家都不需要演示了吧,都是一些常规的操作。

测试一下是否真的已经安装好了,打开cmd 输入:allure --version出现版本号及代表成功了

好了接下来就可以开始编码了。

@allure.feature('微信登录功能')
class Testlogin():

    @allure.story('微信登录功能')
    def test_denglu_1(self,open_url):

        Sige(open_url).type_sige()
        allure.attach.file(*Pic().picturereading('登录成功'),'附件截图',attachment_type=allure.attachment_type.PNG)


if __name__=="__main__":
    pytest.main(['-s',"test_denglu.py"])

这其实就是一个简单的登录功能用例,博主习惯将自动化代码都分离开来hhhhh,所以这只是当中的一段的啦,主要是想给大家介绍一下allure中几个装饰器的作用,

@allure.feature()功能模块的划分,方便管理和运行测试用例

@allure.story()用来添加测试步骤,用例的名称

@allure.testcase 用例标识,给定用例的链接,可以与用例的管理地址关联 (这个博主用的较少)

在上面的代码中大家可以看到博主用了@allure.feature()与@allure.story()大家结合着allure报告看看效果吧,大家可以用例标记测试模块名称与用例名称。

下面来介绍一下如何生成allure报告吧

pytest.main(['-s', "--alluredir,reports/allure"])

指定参数 --alluredir将测试结果保存到reports/alllure目录中,执行完后啊会生成测试数据。是json文件

在每次新的测试报告执行前啊,必须要将这个json文件删除掉,使用一下代码删除。

import os
import glob

for infile in glob.glob(os.path.join(path, '*.json')):
      os.remove(infile)
os.system("allure generate <allure测试结果目录> -o <存放报告的目录> --clean")

生成allure测试报告其中-o表示使用指定路径,--clean,每次生成新的测试报告前会自动删除老的测试报告。

下面博主分享一个一键执行当前目录下的所有测试用例文件,以及生成测试报告的代码吧

import pytest
import os
import glob
from common.infile import Defile


if __name__ == '__main__':
    Defile().removefile()   #删除上一次截取的图片,这是博主自己定义的方法,大家可以去掉
    path = '测试数据所有目录,大家自己定义'
    for infile in glob.glob(os.path.join(path, '*.json')):
       os.remove(infile)  #每次执行遍历删除上一次留下来的测试数据
    pytest.main(['-s', '-q', '--alluredir', 保存测试数据目录', '.\\'])  #执行当前目录下的所有用例,并将测试数据保存在指定目录中
    os.system('allure generate''\t' +'保存测试数据目录' -o''\t' +'测试报告目录' --clean' )
    执行测试数据生成测试报告

批量执行当前目录下的所有测试文件以及生成测试报告就是这样子啦,大家可以试一试,当天后后面呢我们还可以添加一下将测试结果截取的图片放到allure报告下,和将测试报告自动打包自动发邮件的方法,这些呢今天就不讲了,博主的小手已经冻的没有知觉了,哈哈哈哈。晚安。

Supongo que te gusta

Origin blog.csdn.net/HUJIANLAILE/article/details/112299529
Recomendado
Clasificación