news 2025/12/31 20:16:28

【接口测试】4_代码实现 _pytest框架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【接口测试】4_代码实现 _pytest框架

文章目录

  • 一、pytest简介和安装
  • 二、定义测试类、测试方法
  • 三、执行测试方法(重点)
  • 四、Fixture风格
  • 五、断言
    • 5.1 断言-案例
  • 六、测试报告

一、pytest简介和安装

1、pytest 是开发人员用来实现 “单元测试” 的框架。测试工程师,可以在自动化 “测试执行” 时使用。

2、使用 pytest 的好处:

  • 方便管理、维护测试用例。
  • 简单的断言方法。
  • 生成测试报告。

3、安装 pytest

pip install pytest pip install requests-i https://pypi.douban.com/simple/# 指定镜像源安装

二、定义测试类、测试方法

  • 定义测试类管理测试用例
  • 测试类中的测试方法和excel写的测试用例一一对应。(excel表格写一条测试用例,在测试类中添加一条测试方法)

如:登录接口,共 15 条测试用例。但,需要15个测试方法。

# 测试类名,建议以Test开头。(类名首字母大写)classTestXxx(object):# 测试方法名,必须以小写test开头。deftest_xxx(self):pass

三、执行测试方法(重点)

单文件执行(了解) 方法1:终端命令 pytest -s xxx.py。 方法2:①方法定义后,右键->运行 此方法。在方法后面去运行,只运行这一个方法。 ②类定义后,右键->运行 所有方法。在类后面去运行,则运行类里面的所有方法。 注:方法2需要pycharm2020以上版本,才可以。 方法3:导包 import pytest if __name__ == '__main__': pytest.main(['-s', 'xxx.py']) 多文件执行【重点】 1. 直接在项目目录下,创建文件 pytest.ini 2. 编写 pytest.ini 文件 [pytest] 固定内容 addopts = -s 添加命令行参数 add options testpaths = ./xxx .py 测试用例文件,相对于 pytest.ini 位置 python_files = xxx*.py .py 文件名。 可用 通配符 python_classes = Test* 测试类名。 可用 通配符 python_functions = test* 测试方法名。 可用 通配符 3. 终端执行命令 pytest

四、Fixture风格

# 1.方法级别方法defsetup(self):在 每个 普通测试方法执行之前,自动被调用一次。defteardown(self):在 每个 普通测试方法执行之后,自动被调用一次。# 2.类级别方法defsetup_class(self):在 类中 所有测试方法 执行之前,自动被调用一次。defteardown_class(self):在 类中 所有测试方法 执行结束之后,自动被调用一次。

五、断言

断言错误,会在控制台显示断言错误(AssertionError)。

# 方法1:assert预期结果==实际结果 ———— 断言相等# 方法2:assert预期结果in实际结果 ———— 断言包含

5.1 断言-案例

# 定义测试类classTestAdd(object):# 定义测试方法deftest01_add(self):print("第 1 个 测试方法!!!")assert10==2+8deftest02_add(self):print("第 2 个 测试方法!!!")assert"hello"in"helloword"# hello是包含在hellohelloword里面

结果:

# 前面已经配置了 pytest.ini 文件,才能直接在终端中使用pytest。PS C:\XM1\requestsTestSh27>pytest=================================================================================testsession starts=================================================================================platform win32 -- Python3.7.4, pytest-7.4.4, pluggy-0.13.0 rootdir: C:\XM1\requestsTestSh27 configfile: pytest.ini testpaths: ./ plugins: arraydiff-0.3, doctestplus-0.4.0, html-3.2.0, metadata-3.0.0, openfiles-0.4.0, remotedata-0.3.2 collected2items pytest01_review.py 第1个 测试方法!!! .第2个 测试方法!!!.---------------------------------------- generated html file: file:///C:/XM1/requestsTestSh27/report/%E6%88%91%E7%9A%84%E6%8A%A5%E5%91%8A.html ----------------------------------------==================================================================================2passedin0.05s==================================================================================PS C:\XM1\requestsTestSh27>

六、测试报告

必须在项目所在的目录下,执行pytest命令,生成测试报告。

# 1. 安装插件pip install pytest-html# 2. 修改 pytest.ini 文件的 addopts 的值。""" report:表示目录,当前项目下得有这个report目录。 - ①测试报告名.html:自己起测试报告名。 - ②--self-contained-html:这个参数如果不加,每次生成测试报告会有一个中间文件,这个中间文件没用。 这个参数就是不加这个缓存文件。 """addopts=-s--html=report/测试报告名.html--self-contained-html# 3. 使用命令 pytest 生成测试报告

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/25 5:16:43

思源宋体能否重塑中文数字排版新标准?

思源宋体能否重塑中文数字排版新标准? 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 当你在深夜调试网页时,是否曾为中文排版效果与英文字体之间的视觉割裂而烦…

作者头像 李华
网站建设 2025/12/30 23:58:40

多相VRM电源电路图在嵌入式系统中的应用

多相VRM电源电路图在嵌入式系统中的应用:从原理到实战的深度解析 你有没有遇到过这样的问题?——你的FPGA或AI SoC刚一启动高负载任务,系统就莫名其妙地重启了。排查良久,发现不是软件Bug,也不是时钟不稳,而…

作者头像 李华
网站建设 2025/12/30 14:03:48

D3KeyHelper:5分钟掌握暗黑3智能宏配置技巧

还在为暗黑3中繁琐的技能循环操作而困扰?D3KeyHelper这款基于AutoHotkey开发的暗黑3智能宏工具,通过其独特的图形化界面和自定义配置功能,彻底改变了传统游戏辅助的使用体验。作为一款开源的暗黑3宏设置工具,它让玩家告别重复性操…

作者头像 李华
网站建设 2025/12/25 5:15:52

IDM无限试用终极指南:告别30天限制的完美方案

还在为IDM试用期结束后无法继续使用而困扰吗?这款开源工具为你提供了一套完整的解决方案,让你无需修改软件即可持续享受高速下载体验。 【免费下载链接】idm-trial-reset Use IDM forever without cracking 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2025/12/31 17:23:35

JiYuTrainer实战指南:轻松优化极域电子教室使用体验

JiYuTrainer实战指南:轻松优化极域电子教室使用体验 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 还在为课堂上的电脑控制而烦恼吗?当极域电子教室启动屏…

作者头像 李华
网站建设 2025/12/27 12:22:39

【操作系统】第三章进程同步与进程通信

1. 为什么在操作系统中引入进程同步机制?进程并发执行时,可能因共享资源 / 协作执行出现 “竞态条件”(结果依赖执行顺序),或因协作逻辑需要协调执行步骤。引入同步机制是为了保证进程执行的正确性、共享资源的有序访问…

作者头像 李华