Python自动化测试框架pytest的详解安装与运行

yizhihongxing

Python自动化测试框架pytest的详解安装与运行

简介

Python自动化测试框架pytest是基于 Python编程语言的一种自动化测试框架。它支持参数化测试、fixture、模块和测试运行的控制等功能。

安装pytest

在终端运行以下命令安装pytest

pip install pytest

编写pytest测试用例

pytest使用assert断言来判断测试结果是否正确,例如:

def test_addition():
    assert 1 + 1 == 2

上述代码定义了一个测试函数test_addition,它使用断言assert来判断1+1的结果是否等于2。 当pytest执行这个测试函数时,它将检查assertion是否为真。如果值为假,pytest会抛出AssertionError。

参数化测试

pytest允许使用@pytest.mark.parametrize运行多个测试用例。这很方便,因为您可以一次测试多个输入和输出,而不需要编写大量的测试用例。

例如:

import pytest

@pytest.mark.parametrize("test_input,expected_output", [("3+5", 8),("2+4", 6), ("6*9", 42)])
def test_eval(test_input, expected_output):
    assert eval(test_input) == expected_output

Fixture

pytest中的fixture用于将测试数据注入到测试用例中。 使用fixture能够在多个测试用例中复用相同的对象或数据。

例如:

import pytest

@pytest.fixture()
def test_data():
    return {"username": "admin", "password": "admin_pass"}

def test_login(test_data):
    assert test_data["username"] == "admin"
    assert test_data["password"] == "admin_pass"

上述代码中,test_data fixture返回一个字典,该字典包含用户名和密码。test_login用于验证字典中的用户名和密码是否正确。

运行pytest测试

要运行pytest测试,您可以在终端中运行以下命令:

pytest

此命令将在目录中查找并运行所有以“test_”开头的测试用例。

您还可以指定要运行的目录或测试文件。例如,以下命令运行所有测试用例:

pytest tests/

以下命令将运行名为test_cases.py文件中的所有测试用例:

pytest test_cases.py

示例说明:

假设您的项目有一个名为“calc”的计算器模块,您可以编写以下测试用例以测试该模块的正确性:

import calc

def test_addition():
    assert calc.add(2, 3) == 5

def test_subtraction():
    assert calc.subtract(5, 3) == 2

运行pytest测试:

pytest

输出:

collected 2 items                                                                                     

test_calc.py ..                                                                                    [100%]

==================================== 2 passed in 0.01s ====================================

所有的测试用例都通过了。

另一个例子是参数化测试,我们用以下代码测试一个数字的阶乘是否正确:

import factorial
import pytest


@pytest.mark.parametrize("test_input, expected_output", [(0, 1), (1, 1), (2, 2), (3, 6), (10, 3628800)])
def test_factorial(test_input, expected_output):
    assert factorial.factorial(test_input) == expected_output

运行pytest测试:

pytest

输出:

collected 5 items                                                                                     

test_factorial.py .....                                                                           [100%]

==================================== 5 passed in 0.01s ====================================

所有的参数化测试用例都通过了,测试已完成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python自动化测试框架pytest的详解安装与运行 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 深入了解Python中运算符函数的使用

    深入了解Python中运算符函数的使用 1. 了解Python中的运算符函数 Python提供了许多运算符函数,例如算数运算、比较运算、逻辑运算、位运算等。这些运算符函数可以直接应用于Python内置类型,如数字、字符串、列表、元组等。 2. 算数运算符函数 Python中的算数运算符函数包括加(+)、减(-)、乘()、除(/)和求幂(*)等。例如,我们可以…

    python 2023年6月5日
    00
  • Python匿名函数及应用示例

    Python匿名函数及应用示例 在Python中,有一种特殊的函数叫做匿名函数,也称为lambda函数。 什么是匿名函数? 匿名函数是一种不需要正式定义的函数,通常只在需要时被调用一次。它通常也被称为lambda函数,因为它们使用lambda关键字进行定义。 匿名函数的语法和用法 匿名函数的语法如下: lambda argument_list: expres…

    python 2023年6月5日
    00
  • python常见模块之OS模块和time模块

    让我们来详细讲解一下Python常见模块之OS模块和time模块。 OS模块 os模块是一个Python内置的操作系统相关模块,通过它可以对操作系统进行访问和操作,包括文件和目录读写、进程和线程管理、环境参数获取等等。它是支持跨平台的标准库,可以在不同的操作系统上使用,如Windows、Linux、Mac等。 常用函数介绍 获取当前工作目录:os.getcw…

    python 2023年5月14日
    00
  • 什么是Python闭包?闭包有什么作用?

    在Python中,闭包(Closure)是指一种函数,它可以访问在其定义范围内的变量,并把该函数作为返回值返回。闭包允许你在一个函数中嵌套另一个函数,并且在内部函数中引用外部函数的变量。 在Python中,如果一个函数定义在另一个函数内部,而内部函数使用了外部函数的变量,则称这个内部函数为闭包。闭包是Python中一种强大的编程技巧,它可以让函数保留状态,并…

    2023年2月21日
    10
  • Python的Lambda函数用法详解

    Python的Lambda函数用法详解 在Python中,Lambda函数是一种匿名函数,它可以在一行代码中定义简单的函数。Lambda函数通常用于函数式编程,例如在map()、filter()和reduce()等函数中。本文将详细讲解Python的Lambda函数用法,包括基本用法、高级用法和示例。 基本用法 Lambda函数的基本语法如下: lambda…

    python 2023年5月13日
    00
  • python实现的读取网页并分词功能示例

    Python实现的读取网页并分词功能示例 Python是一种流行的编程语言,具有强大的文本处理和网络爬虫功能。本攻略将介绍Python实现的读取网页并分词功能示例,包括读取网页、分词、统计词频等。 步骤1:读取网页 在Python中,我们可以使用urllib库或requests库读取网页。以下是使用requests库读取网页的示例: import reque…

    python 2023年5月15日
    00
  • python+selenium识别验证码并登录的示例代码

    使用 Python 和 Selenium 实现识别验证码并登录可以分为以下几个步骤: 使用 Selenium 打开登录页面,并获取验证码图片的 URL。 使用 Python 的 requests 库下载验证码图片,并使用第三方库(如 pytesseract)识别验证码。 将识别结果填入验证码输入框,并填写其他登录信息。 点击登录按钮,完成登录操作。 以下是两…

    python 2023年5月15日
    00
  • Python如何使用Eel和HTML开发桌面应用

    Python可以使用Eel和HTML开发桌面应用。Eel是一个Python库,可以将Python代码与HTML、CSS和JavaScript代码结合起来,从而创建桌面应用程序。以下是Python如何使用Eel和HTML开发桌面应用的完整攻略,包含两个示例。 示例1:使用Eel和HTML创建简单的桌面应用 以下是一个示例,可以使用Eel和HTML创建简单的桌面…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部