pytest测试框架+allure超详细教程

  • Post category:Python

pytest测试框架+allure超详细教程

本教程将介绍使用pytest测试框架和allure测试报告生成工具,以及如何在测试用例中添加断言、参数化、装饰器等功能。

环境准备

在开始之前,确保你已经安装了Python和pip,并且已经安装了pytest和allure-pytest插件。

pip install pytest
pip install allure-pytest

编写测试用例

下面我们将以一个简单的加法函数的测试用例为例进行演示。首先,在项目根目录下新建一个test目录,并在该目录下新建一个test_add.py文件。

def add(a, b):
    return a + b

def test_add():
    assert add(1, 2) == 3

def test_add_float():
    assert add(1.1, 2.2) == 3.3

在以上示例中,我们定义了一个add函数,用于计算两个数字的和。接着,我们使用pytest对该函数进行了两个测试用例的断言:test_add和test_add_float。

参数化测试

有时候我们需要一次测试多组参数,这时候可以使用pytest.mark.parametrize装饰器来实现参数化测试。

import pytest

@pytest.mark.parametrize("a, b, expected_output", [
    (1, 2, 3),
    (3, 5, 8),
    (0.1, 0.2, 0.3)
])
def test_add_param(a, b, expected_output):
    assert add(a, b) == expected_output

在以上示例中,我们在test_add_param函数上使用了@pytest.mark.parametrize装饰器,其中定义了三组参数,并且在每次测试时会把这三组参数传递给函数。这样,我们就可以使用一次测试用例来测试三组参数。

生成测试报告

接下来,我们将使用allure-pytest插件来生成测试报告。首先,需要安装allure命令行工具。

brew install allure

在安装完成后,我们只需要在pytest运行测试时加上–alluredir参数,这样pytest会将测试结果输出到指定目录下(例如/tmp/my_allure_results)。

pytest --alluredir=/tmp/my_allure_results

运行完成后,我们需要执行以下命令,以生成html格式的测试报告:

allure generate /tmp/my_allure_results -o /tmp/my_allure_report --clean

以上命令会在/tmp/my_allure_results目录下查找测试结果,并在/tmp/my_allure_report目录下生成测试报告。

例如,我们在上面的示例中加上allure描述信息:

import pytest
import allure

def add(a, b):
    """
    计算两个数字的和
    :param a: 数字1
    :param b: 数字2
    :return: 返回数字1和数字2的和
    """
    return a + b

@pytest.mark.parametrize("a, b, expected_output", [
    (1, 2, 3),
    (3, 5, 8),
    (0.1, 0.2, 0.3)
])
@allure.title("测试加法函数")
@allure.description("测试加法函数是否能够计算两个数的和")
def test_add_param(a, b, expected_output):
    with allure.step("计算两个数字的和"):
        result = add(a, b)
    with allure.step("断言结果是否正确"):
        assert result == expected_output

然后再次执行测试并生成测试报告:

pytest --alluredir=/tmp/my_allure_results
allure generate /tmp/my_allure_results -o /tmp/my_allure_report --clean

我们就可以在/tmp/my_allure_report目录下生成html格式的测试报告,打开index.html文件即可查看测试报告。

结语

本文介绍了pytest测试框架和allure测试报告生成工具,并演示了一些常见的测试方法和操作。我们希望这些内容能够帮助你更好地学习和使用pytest和allure,提高测试效率和准确性。