【接口自动化】初识pytest,一文讲解pytest的安装,识别规则以及配置文件的使用

发布于:2025-08-11 ⋅ 阅读:(20) ⋅ 点赞:(0)


📚️前言

🌟🌟🌟精彩读导

本次我们将全面剖析接口自动化要点,包括其丰富的数据类型体系、高效的编码方式以及秒级响应的性能奥秘。对于渴望深入理解接口的技术爱好者,这是一次难得的学习机会!

🔍 推荐扩展阅读

了解更多数据库技术干货,访问小编的CSDN技术博客: 👉GGBondlctrl-CSDN博客👈 

💖 读者互动

您的每一个👍点赞、⭐收藏和✏️评论,都是我们持续输出优质技术内容的强大动力!期待在评论区看到您的见解

目录

​编辑📚️前言

📚️1.自动化pytest框架

📚️2.pytest使用

2.1pytest的安装

2.2pytest的运行规则

2.3pytest的命令

2.3.1pytest -s

2.3.2pytest -v

2.3.3pytest test_module.py

2.4pytest配置文件

2.5前后置

📚️3.总结

📚️1.自动化pytest框架

以下是几种接口测试的方式

方式 unittest pytest Robot FrameWork
安装方式 无需安装 pip install pytest pip install framework
使用 基于类Testcase 面向对象,无样板 关键字驱动
断言方式 self.assertEqual() 等 原生的assert 关键字断⾔(如 Should Be
Equal
参数化支持 需 subTest 或第三⽅库 内置
@pytest.mark.parametrize
数据驱动( Test
Template
插件生态 少(依赖扩展库如
HTMLTestRunner

丰富(如 pytest-html 、

pytest-xdist 、 allure pytest )

⼀般(需安装额外库如
RequestsLibrary

为什么选pytest?

• 简单易⽤: pytest 的语法简洁清晰,对于编写测试⽤例⾮常友好,⼏乎可以在⼏分钟内上⼿。
• 强⼤的断⾔库: pytest 内置了丰富的断⾔库,可以轻松地进⾏测试结果的判断。
• ⽀持参数化测试: pytest ⽀持参数化测试,允许使⽤不同的参数多次运⾏同⼀个测试函数,这提⾼了测试效率。
• 丰富的插件⽣态系统: pytest 有着丰富的插件⽣态系统,可以通过插件扩展各种功能,⽐如覆盖率测试、测试报告⽣成(如 pytest-html 插件可以⽣成完美的HTML测试报告)、失败⽤例重复执⾏(如 pytest-rerunfailures 插件)等。此外, pytest 还⽀持与selenium、
requests、appinum等结合,实现Web⾃动化、接⼝⾃动化、App⾃动化测试。
• 灵活的测试控制: pytest 允许跳过指定⽤例,或对某些预期失败的case标记成失败,并⽀持重复执⾏失败的case。

📚️2.pytest使用

2.1pytest的安装

打开pycharm,打开终端,然后输入下面的代码即可;

命令如下:

pip install pytest==8.3.2

然后再输入命令

pip list

此时就可以看到我们下载的包了

2.2pytest的运行规则

在下载好我们的包之后,编写以下代码:

def test_01():
    print("test_01")

#对于文件名.py必须以test_开头或者_test结尾
#对于类名必须Test名字开头
#对与方法名字必须以test开头

def test_02():
    print("this is test_02 function")
#可以通过 -s -v进行详细输出
#pytest ./pytest_use/test_UsePytest.py::test_02:实现指定的测试方法
#也可以通过配置执行文件实现pytest命令简写

我们可以看到我们编写的方法上,有一个运行的标志:

那么为什么会有运行的标志呢?

由于 pytest 的测试收集机制,测试类中不可以定义 __init__ ⽅法。 pytest 采⽤⾃动发现机制
来收集测试⽤例。它会⾃动实例化测试类并调⽤其所有以 test 结尾的⽅法作为测试⽤例。

那么这里是存在识别自动发现机制的规则的;

1. ⽂件名必须以 test_ 开头或者 _test 结尾
2. 测试类必须以 Test 开头,并且不能有 __init__ ⽅法。
3. 测试⽅法必须以 test 开头

代码实例如下:

def test_01():
    print("test_01")

#对于文件名.py必须以test_开头或者_test结尾
#对于类名必须Test名字开头
#对与方法名字必须以test开头

def test_02():
    print("this is test_02 function")
#可以通过 -s -v进行详细输出
#pytest ./pytest_use/test_UsePytest.py::test_02:实现指定的测试方法
#也可以通过配置执行文件实现pytest命令简写
class Test:
    def test_03(self):
        print("this is test_03 function");

那么我们在终端输入命令pytest:

可以看到我们通过了三个测试用例,那么只就是pytest运行规则了;

如果测试类中定义了 __init__ ⽅法,那么当 pytest 实例化该类时, __init__ ⽅法会被调⽤,这可能会掩盖测试类的实际测试逻辑

2.3pytest的命令

pytest的命令有很多,我这里讲几个主要使用的命令:

pytest :在当前⽬录及其⼦⽬录中搜索并运⾏测试。
pytest -v: 增加输出的详细程度。
pytest -s: 显⽰测试中的 print 语句。
pytest test_module.py: 运⾏指定的测试模块。
pytest test_dir/ :运⾏指定⽬录下的所有测试

2.3.1pytest -s

就是增加我们测试用例中的打印语句:

可以看到我们的打印的语句;

2.3.2pytest -v

详细说明我们的执行的测试用例的位置打印:

此时我们可以结合两者进行输出结果:

2.3.3pytest test_module.py

就是指定文件进行输出,这里我们有四个测试用例:

在2中有一个,在1中有三个测试用例:

指定执行的测试用例或者文件地址,那么就可以指定pytest的执行的测试用例了;

那么总结上述所有的的命令后:

pytest .\pytest_use\test_UsePytest.py -s -v

那么如果命令很长,我每次运行都要这样去输入命令吗?不然这里就涉及到我们pytest的配置文件了~~~

2.4pytest配置文件

这里的配置文件和在mysql中的. cnf差不多:

配置文件的选项:

addopts  指定在命令⾏中默认包含的选项。
testpaths  指定搜索测试的⽬录
python_files 指定发现测试模块时使⽤的⽂件匹配模式
python_classes 指定发现测试类时使⽤的类名前缀或模式
python_functions 指定发现测试函数和⽅法时使⽤的函数名前缀或模式

使用方式如下:

在当前的目录下创建pytest.ini文件,就是pytest的配置文件

代码如下:

[pytest]
addopts = -v -s
testpaths = ./pytest_use
;这里就是指定当前目录
python_files = test_UsePytest.py
python_classes = Test*
python_functions = test_04

那么我们这里指定的地址和方法就是:

那么我们只需要在命令行输入pytest命令就可以指哪里打哪里;

2.5前后置

在测试框架中,前后置是指在执⾏测试⽤例前和测试⽤例后执⾏⼀些额外的操作,这些操作可以⽤于设置测试环境、准备测试数据等,以确保测试的可靠性

setup_method 和 teardown_method :这两个⽅法⽤于类中的每个测试⽅法的前置和后置操
作。
setup_class 和 teardown_class :这两个⽅法⽤于整个测试类的前置和后置操作。
fixture :这是 pytest 推荐的⽅式来实现测试⽤例的前置和后置操作。 fixture 提供了更
灵活的控制和更强⼤的功能。

这里小编主要演示一下前面两个

class Test:
    def setup_method(self):
        print("setup_method")
    def test_03(self):
        print("this is test_03 function")

    def test_04(self):
        print("this is test_04 function")
    def teardown_method(self):
        print("teardown_method")

这里运行后的输出:

注意了,这里产生效果是在我们的类中

当然还有对于class生效的情况:

可以看到这里是每个类之前执行以及每个类之后执行一次;具体的细节大家可以自己练练对比对比

📚️3.总结

本文全面介绍了pytest框架在接口自动化测试中的应用。首先对比了unittest、pytest和RobotFramework三种测试框架的优缺点,重点阐述了选择pytest的原因:语法简洁、断言丰富、参数化支持、插件生态完善等核心优势。随后详细讲解了pytest的安装配置、运行规则(文件名/类名/方法名命名规范)、常用命令参数(-v/-s等)以及通过pytest.ini文件简化命令操作的方法。最后介绍了测试前后置处理的实现方式,包括setup/teardown方法和fixture机制。文章提供了丰富的代码示例,帮助读者快速掌握pytest框架的使用技巧。

🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!


💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。

       😊😊  期待你的关注~~


网站公告

今日签到

点亮在社区的每一天
去签到