pytest+allure生成测试报告

pytest框架使用

一、安装插件

#常用安装插件
pytest
pytest-html (生成html格式的自动化测试报告)
pytest-xdist (测试用例分布式执行,多cpu分发)
pytest-ordering(用于改变测试用例的执行顺序)
allure-pytest(用于生成美观的测试报告)
pytest-rerunfailures(用例失败后重跑)

二、pytest默认规则

  • 模块名必须以test_开头或者_test结尾
  • 测试类必须以Test开头,并且不能有__init__方法
  • 测试方法必须以test开头

三、Pytest测试用例执行方式

  1. 主函数模式
  • 运行所有:pytest.main()
  • 指定模块:pytest.main([‘-vs’,‘test_login.py’])
  • 指定目录:pytest.main([“-vs”,“testcase”])
  • 通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
    有多条用例可以用逗号隔开
    pytest.main([“-vs”,“./interface_testcase/test_interface.py::Testinterface::test_03_zhiliao”])
  1. 命令行模式
  • 运行所有:pytest 指定模块:pytest -vs
  • test_login.py 指定目录:pytest -vs ./interface_testcase/test_login.py
  • 指定nodeid:pytest -vs ./interface_testcase/test_interface.py::Testinterface::test_03_zhiliao

四、参数详解

-s:表示输出调试信息,包括print打印的信息
-v:显示详细信息
-vs:一般这两个参数一起使用
-n:支持多线程或分布式运行测试用例例如:pytest -vs ./testcase/test_login.py -n 2
例如:pytest.main([“-vs”, “./test_login.py”, “-n=2”])–return:失败用例重跑
-x:表示只要一个用例报错,就停止测试
–maxfail=2:出现两个用例失败就停止
-k:根据测试用例的部分字符串指定测试用例例如:pytest -vs -k “te”

pytest+allure测试报告生成

一、安装allure并配置环境变量

Allure 是一款轻量级、支持多语言的开源自动化测试报告生成框架

  1. allure包下载:https://github.com/allure-framework/allure2/releases
  2. 解压 -> 进入bin目录 -> 运行allure.bat
    pytest+allure生成测试报告_第1张图片
  3. 把bin目录加入PATH环境变量
    pytest+allure生成测试报告_第2张图片

二、安装 allure-pytest插件

在pycharm的控制台执行命令

pip install allure-pytest

安装成功后需要重启一下pycharm
pytest+allure生成测试报告_第3张图片

三、生成测试报告

  1. 在控制台用命令执行
  2. 先执行测试用例并指定测试结果存放地址
Pytest -vs [测试用例的路径] --alluredir=[指定存储测试结果的路径]
pytest -vs ./test_case/test_case_anli/test_anli_vip_right.py --alluredir=./test_report/3

pytest+allure生成测试报告_第4张图片

  1. 打开报告
    方式一:直接打开默认浏览器展示报告
allure serve ./test_report/3

在这里插入图片描述

点击生成的报告地址,可以直接打开报告

方式二:从结果生成报告

allure generate [测试结果地址] -o [指定测试报告地址] --clean
 allure generate ./test_report/3 -o ./report/ --clean #覆盖路径加–clean

执行完成后,可以在指定的测试报告路径下点击index.html 打开测试报告
pytest+allure生成测试报告_第5张图片
pytest+allure生成测试报告_第6张图片

  1. 在代码中执行
import os
import pytest
import allure

if __name__ == '__main__':
    path = os.path.dirname(os.path.dirname(__file__))  # 项目路径
    alluredir = os.path.join(path, "test_report","allure_raw") #测试结果的路径,没有会自动创建一个
    allure_report = os.path.join(path, "test_report","allure_report") #测试报告,没有会自动创建一个
    #执行参数
    param = ['-vs',
             f'--alluredir={alluredir}',#生成allure报告
             "./test_case_anli/test_anli_vip_right.py::TestCaseAnliRight::test_login", #测试用例路径
             ]
    pytest.main(param)
    os.system(f"allure generate {alluredir} -o {allure_report} --clean")

pytest+allure生成测试报告_第7张图片

代码执行后,点击测试报告下的index.html可以查看测试报告

你可能感兴趣的:(python,pytest,python,allure)