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,提高测试效率和准确性。