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

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 中raise用法

    当Python执行期间发生某些异常错误,可以使用raise语句来引发异常。通过raise语句抛出的异常必须是某个已定义异常类的实例,或是某个继承自Exception类的实例。这里是关于Python中raise用法的详细攻略。 什么是Python中的raise? raise语句通常用于抛出一个异常。当出现某种错误时,可以使用raise语句抛出异常并终止程序,可…

    python 2023年5月13日
    00
  • python中使用正则表达式将所有符合条件的字段全部提取出来

    Python中使用正则表达式将所有符合条件的字段全部提取出来的完整攻略 在Python中,我们可以使用正则表达式进行字符串匹配和提取。有时候我们需要将所有符合条件的字段全部提取来,这时候可以使用正则表达式的findall()函数。本攻略将详细解如何使用Python正则表达式将所有合条件的字段全部提取出来,包括如何使用findall()函数、如何使用re块。 …

    python 2023年5月14日
    00
  • 浅谈如何使用python抓取网页中的动态数据实现

    很高兴为您讲解如何使用Python抓取网页中的动态数据。本篇攻略将分为以下几个部分: 了解动态网页 使用Selenium模拟浏览器操作 使用Requests获取动态数据 两个示例说明 1. 了解动态网页 动态网页是指网页内容不是在服务器上预先生成的,而是通过JS等客户端技术在用户访问时实时生成的页面。因为动态网页的数据是实时生成的,所以其内容无法通过requ…

    python 2023年5月14日
    00
  • python tkinter 设置窗口大小不可缩放实例

    设置窗口大小不可缩放的常用方法 使用root.resizable方法,将其两个参数均设置为False “` python import tkinter as tk root = tk.Tk() root.title(“不可缩放窗口”) root.geometry(“300×300”) # 设置窗口大小为300*300 root.resizable(Fals…

    python 2023年5月14日
    00
  • 详解Python PIL的GaussianBlur()方法

    Python PIL(Python Imaging Library)是一种用于图像处理的Python库,其中提供的GaussianBlur()方法可以用于对图像进行高斯模糊处理。以下是关于Python PIL的GaussianBlur()方法的完整攻略: 1. 导入PIL库 在使用GaussianBlur()方法之前,需要先导入PIL库,并安装合适的版本。在…

    python-answer 2023年3月25日
    00
  • 详解python的ORM中Pony用法

    详解Python的ORM中Pony用法 Python的ORM(Object Relational Mapping)能够让开发者使用面对对象的方式来操作关系型数据库,使得开发更加高效和便捷。Pony是Python ORM的一个轻量级框架,同时具备ORM的优点以及SQLAlchemy的灵活性。本篇攻略将详细讲解Pony的用法。 什么是Pony ORM Pony …

    python 2023年6月5日
    00
  • 如何使用Python实现分页查询数据库数据?

    以下是使用Python实现分页查询数据库数据的完整攻略。 分页查询简介 分页查询是指将大量数据分成多个页面进行查询,以便好管理和展示数据。在Python中,可以使用pymysql库实现分查询数据库数据。 步骤1:连接到数据库 在Python,可以使用pymysql库连接到MySQL数据库。以下是连接到MySQL数据库的本语法: import pymysql …

    python 2023年5月12日
    00
  • Windows平台Python编程必会模块之pywin32介绍

    下面就详细讲解“Windows平台Python编程必会模块之pywin32介绍”的完整攻略: 什么是pywin32? pywin32是Python语言在Windows平台上的一个重要扩展模块,提供了大量的Windows API调用接口,提供了一种方便的方式编写Windows程序。通过该模块,我们可以调用Windows操作系统中的COM组件、Windows A…

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