最近在用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
网友评论