【pytest + allure】生成测试报告

本文介绍了如何在Python中使用allure和pytest进行测试报告生成,包括下载和导入包、配置测试用例、生成测试报告,并展示了如何利用jsonpath解析JSON数据。还提供了在测试中使用allure动态功能和jsonpath进行断言验证的代码实例。

一、下载导入包

  • 1.在自己下载包环境下cmd指令:
pip install allure-pytest -i https://mirrors.aliyun.com/pypi/simple
  • 2.导入包
import allure,pytest

二、生成报告

  • 1…依次点击File–>Settings
    在这里插入图片描述
  • 2.找到Tools–>Python Integrated Tools–>点击下拉框选择Unittests
    在这里插入图片描述
  • 3.把命令写到main.py文件运行完测试用例的代码之后就自动生成报告了。
#生成测试数据
pytest.main(["-sq",__file__,'--alluredir=./report'])
#生成测试报告
os.system('allure generate ./report -O ./report-html --clean')

三、打开测试报告

1.用例执行完成后,在report文件夹下会有两个文件夹:report、allure-report。在html这个文件夹下,找到index.html文件,这个就是我们生成的测试报告,右键用浏览器打开就可以看到了。
在这里插入图片描述

四、完整代码例子

import allure,os,json,pytest
from jsonpath import jsonpath
from openpyxl import load_workbook,Workbook
import requests
from utils.MysqlUtilss import Mysql


mysql = Mysql()

wk = load_workbook(filename='D://接口测试用例.xlsx')
# 选择活动工作表或者指定的工作表
sheet = wk['登录退出']

data_test = list(sheet.iter_rows(values_only=True,min_row=2))

class Test():
    """项目名称【swsq后台】"""
    @pytest.mark.parametrize("index",list(range(len(data_test))))
    def test_admin_api(self, index):
        i = data_test[index]
        allure.dynamic.feature("项目名称【swsq】")
        allure.dynamic.title("{case_id}_{case_name}".format(case_id=i[0], case_name=i[4]))
        allure.dynamic.tag("P0")
        allure.dynamic.severity("critical")
        allure.dynamic.description("接口参数:{description}".format(description=str(i)))
        sql = str(i[6]).split("\n")
        url = i[7]+i[8]
        method = str(i[9])
        params = i[10]
        yq_result = str(i[11]).strip("\n").split("\n")
        if method == "GET":
            pass
        elif method == "POST":
            r = requests.post(url,json=json.loads(params))
            for l in sql:
                mysql.exec(l)
            for yq in yq_result:
                left = yq.split("==")[0]
                right = yq.split("==")[1]
                sj_result = jsonpath(r.json(), left)
                print(sj_result)
                print("*"*10)
                if right == "true":
                    with allure.step(f"断言验证【{left}】是否存在"):
                        # allure.attach("data",i)
                        assert sj_result
                elif "%" in right:
                    with allure.step(f"断言验证实际结果【{sj_result[0]}】是否包含【{right.strip('%')}】"):

                        assert right.strip("%") in sj_result[0]
                else:
                    with allure.step(f"断言验证实际结果【{sj_result[0]}】与预期结果【{right}】完全一致"):

                        assert sj_result[0] == right

if __name__ == '__main__':
    # 生成测试数据
    pytest.main(["-sq",__file__,'--alluredir=./report'])
    # 生成测试报告
    os.system('allure generate ./report -O ./report-html --clean')

1.allure.dynamic

写一个项目名:allure.dynamic.feature(“项目名称【swsq】”)
左侧用例名称:allure.dynamic.title(“{case_id}_{case_name}”.format(case_id=i[0], case_name=i[4]))
标签:allure.dynamic.tag(“P0”)
优先级:allure.dynamic.severity(“critical”)
描述:allure.dynamic.description(“接口参数:{description}”.format(description=str(i)))
执行:with allure.step(f"断言验证【{left}】是否存在")
在这里插入图片描述

2.jsonpath

from jsonpath import jsonpath

a={“data”:“123”,“params”:“456”}
b = jsonpath(a,“$.params”)
print(b)

打印:456

jsonpath用法:

  • 1.第一个参数:json数据
  • 2.第二个参数:$.键
### 生成测试报告的步骤 1. **安装必要的插件** 需要安装 `allure-pytest` 插件,可以通过以下命令进行安装: ```bash pip install allure-pytest ``` 2. **运行测试用例并生成结果文件** 使用 `pytest` 命令运行测试用例,并通过 `--alluredir` 参数指定存储测试结果的路径。例如: ```bash pytest [测试文件] --alluredir=./result ``` 其中 `[测试文件]` 是需要执行的测试脚本名称,`./result` 表示测试结果将被保存到当前目录下的 `result` 文件夹中[^2]。 3. **生成 HTML 格式的测试报告** 利用 `allure` 工具将生成的测试结果转换为可视化的 HTML 报告。可以使用以下命令: ```bash allure serve ./result ``` 这条命令会自动生成报告并打开浏览器展示结果[^3]。 4. **手动指定输出报告路径** 如果希望指定报告的输出路径,可以使用如下命令: ```bash allure generate ./result -o ./report_output --clean ``` 此处 `./result` 是之前生成的测试结果路径,`./report_output` 是生成报告后希望存放的位置,`--clean` 参数用于清理之前的报告内容[^3]。 5. **在 Python 脚本中直接调用生成报告** 如果希望通过 Python 脚本来运行测试并生成报告,可以在代码中添加以下逻辑: ```python import pytest if __name__ == '__main__': pytest.main(['-s', '-v', 'test_Login2.py', '--alluredir', '../report/allure-results']) ``` 然后进入 `../report` 目录,运行以下命令生成最终的 HTML 报告: ```bash allure generate ./allure-results/ -o ./reporthtml/ --clean ``` 6. **查看生成的报告** 最终的 HTML 报告会存放在指定的输出目录中(如 `./reporthtml/`),可以直接用浏览器打开查看详细的测试结果[^4]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值