美文网首页
Python测试-pytest+allure生成测试报告

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

作者: 这个太难了 | 来源:发表于2020-01-20 14:48 被阅读0次

    最近在用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生成测试报告

          本文链接:https://www.haomeiwen.com/subject/gqurzctx.html