Python测试-pytest+allure生成测试报告

最近在用pytest做测试,用pytest-html生成的报告个人感觉不太美观,看到有介绍allure的,相对于pytest-html来说比较好看(比较庸俗,一个看颜值的人),在使用之前都需要安装相应的环境,需要安装的环境有

1、 pytest
2、allure-pytest
3、allure
4、java环境

当然,Python环境是必备的,既然到这一步,name默认Python环境是已经有了的。

1、安装pytest

官方文档:https://pypi.org/project/pytest/
选择pytest的原因:http://blog.itpub.net/69942496/viewspace-2653306/
pytest是基于unittest衍生出来的新的测试框架,还有就是用起来比较简单。符合我的需求。
直接使用如下命令即可

pip install pytest

2、安装allure-pytest

官方文档:https://pypi.org/project/allure-pytest/
我安装是参考:https://blog.csdn.net/feishicheng/article/details/91970402
这篇博客写得比较新,相对于其他博客,大多数推荐的都是用pytest-allure-adaptor,而这个不一样。
allure-pytest是python的一个第三方库。用于连接pytest和allure,使它们可以配合在一起使用。
allure-pytest基于pytest的原始执行结果生成适用于allure的json格式结果。该json格式结果可以用于后续适用allure生成html结果。
直接使用如下命令安装即可:

pip install allure-pytest

3、allure

官方安装说明:https://docs.qameta.io/allure/#_installing_a_commandline
我的是在windows10上安装的,直接使用命令安装,allure的安装需要用到scoop,所以首先要去安装scoop,allure的安装说明中有提到scoop的,点击进去,按照scoop的安装步骤安装。
参考:https://scoop.sh/。
安装scoop,在cmd或者powershell中输入如下命令即可

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

然后就是按照allure的官方步骤来安装allure,输入如下命令即可:

scoop install allure

4、安装java环境

去java官方下载一个jdk,安装配置好就可以了。这个就不多说。
以上环境都安装好以后就可以正常使用了
使用命令:

pytest.main(['-s', 'test_api.py', '--alluredir={}'.format(REPORT_DIR)])   # 生成json文件

在命令行中输入如下命令生成html文件:

allure generate allure-results/  # 生成html文件

或者直接在脚本中运行,例如我的run.py脚本,用于执行测试。

import sys
import pytest
import os

def main():
    # 执行用例
    # --reruns:失败重复执行多少次
    args = ['--alluredir={}'.format('allure-results/')]  # 通过allure生成json  REPORT_DIR:测试结果数据所在目录
    pytest.main(args)

    # 生成html allure generate 测试结果数据所在目录 -o 测试报告保存的目录 --clean
    os.system("allure generate report/ -o allure-reports/ --clean")


if __name__ == '__main__':
    main()

一个简单的例子demo:
demo目录:

demo -- 项目名称
|-- test_t.py -- 测试文件
|-- run.py -- 测试文件启动文件

test_t.py如下

import os

def test_t():
    print(os.system("pip list"))

run.py与即为上边的run.py

import sys
import pytest
import os

def main():
    # 执行用例
    # --reruns:失败重复执行多少次
    args = ['--alluredir={}'.format('allure-results/')]  # 通过allure生成json  REPORT_DIR:测试结果数据所在目录
    pytest.main(args)

    # 生成html allure generate 测试结果数据所在目录 -o 测试报告保存的目录 --clean
    os.system("allure generate report/ -o allure-reports/ --clean")


if __name__ == '__main__':
    main()

写好之后直接运行run.py即可。
运行完之后的目录结构:

demo -- 项目名称
|--allure-results/ -- 存放的是测试生成的结构集,一堆json
|--allure-report/ -- 最终的测试报告index.html及其静态文件等
|-- test_t.py -- 测试文件
|-- run.py -- 测试文件启动文件

allure使用参考:https://testerhome.com/topics/15649
demo:https://github.com/Mr-chengjun/pytest-allure-demo

你可能感兴趣的:(Python测试-pytest+allure生成测试报告)