10.pytest测试报告

pytest集成报告

pytest-html生成报告

pytest是借助pytest-html插件生成测试测试报告, 不用自己编写生成报告代码。

  • 安装:pip install pytest-html
  • 执行方法:pytest --html=./reports/report.html

测试代码:

import pytest


def login(username, password):
    """模拟登录"""
    user = "linux超"
    pwd = "linux超哥"
    if user == username and pwd == password:
        return {"code": 1001, "msg": "登录成功", "data": None}
    else:
        return {"code": 1000, "msg": "用户名或密码错误", "data": None}


test_data = [
    # 测试数据
    {
        "case": "用户名正确, 密码正确",
        "user": "linux超",
        "pwd": "linux超哥",
        "expected": {"code": 1001, "msg": "登录成功", "data": None}
    },
    {
        "case": "用户名正确, 密码为空",
        "user": "linux超",
        "pwd": "",
        "expected": {"code": 1000, "msg": "用户名或密码错误", "data": None}
    },
    {
        "case": "用户名为空, 密码正确",
        "user": "",
        "pwd": "linux超哥",
        "expected": {"code": 1000, "msg": "用户名或密码错误", "data": None}
    },
    {
        "case": "用户名错误, 密码错误",
        "user": "linux",
        "pwd": "linux",
        "expected": {"code": 1000, "msg": "用户名或密码错误", "data": None}
    }
]


class TestLogin(object):

    @pytest.mark.parametrize("data", test_data)
    def test_login(self, data):
        result = login(data["user"], data["pwd"])
        assert result == data["expected"]


if __name__ == '__main__':
    pytest.main(['-sv', "test_pytest_html", "--html", "./reports/report.html"])

执行命令:pytest test_pytest_html.py --html=./reports/report.html则会在reports文件夹下生成一份报告,如下

pytest集成allure

1.all下载安装

Allure 下载最新版本:https://github.com/allure-framework/allure2/releases

下载完成之后解压。然后将allure的bin目录设置环境变量。cmd 输入 allure 查看环境变量是否设置成功。

2.allure-pytest安装

下载 allure-pytest 插件,用来生成 Allure 测试报告所需要的数据。

pip install allure-pytest

3.编码如下

import pytest
import allure

@pytest.fixture(scope='function')
def login():
    print("登录")
    yield
    print("登录完成")

@allure.feature('加入购物车')
def test_1(login):
    '''将苹果加入购物车'''
    print("测试用例1")

@allure.feature('加入购物车')
def test_2():
    '''将橘子加入购物车'''
    print("测试用例2")

if __name__ =="__main__":
    # 执行pytest单元测试,生成 Allure 报告需要的数据存在 /temp 目录
    pytest.main(['--alluredir', './temp'])

@allure 装饰器中的一些功能点:

  • @allure.feature :用于定义被测试的功能,被测产品的需求点
  • @allure.story : 用于定义被测功能的用户场景,即子功能点
  • @allure.step :用于将一个测试用例,分成几个步骤在报告中输出
  • @allure.attach : 用于向测试报告中输入一些附加的信息,通常是一些测试数据信息

运行测试文件,会在temp文件夹下生成报告所需数据

在当前目录执行如下命令,生成allure报告

allure generate ./temp -o ./report --clean

大功告成!

至此,pytest的介绍就告一段落了,还需要大家自行在工作中深入研究,本系列只是介绍大概

posted @ 2020-12-18 21:31  测试充电宝  阅读(178)  评论(0编辑  收藏  举报