基于Pytest接口自动化的requests模块项目实战以及接口关联方法详解
点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快1、基于pytest单元测试框架的规则1.1 模块名即文件名必须以test_开头或者_test结尾1.2 类名必须以Test开头且不能有init方法1.3 用例名测试方法必须以test开头2、项目实战import pytest as pytest import requests # 此案例测试用例之间无法关联cookie信息 class TestApi: # 类变量也叫全局变量 access_token # 获取鉴权码 def test_get_token(self): url https://api.weiixn.com/token datas { grant_type: client_credential, appid: wx32497320974, secret: dh2983yr4fh9734. } res requests.get(urlurl, paramsdatas) result res.json() TestApi.access_token result[access_token] # jsonpath提取实现接口关联 # lis jsonpath.jsonpath(res.json(), $.access_token) # print(lis[0]) # re正则表达式提取 # token re.search(namehduwqidh value(.*?), res.text).group(1) # 编辑标签接口 def test_edit_flag(self): url https://api.weiixn.com/update?access_token TestApi.access_token headers {} # json是字典的字符串格式两者可以相互转换 json {} # 键值对 data None res requests.post(urlurl, jsonjson, headersheaders) # 文件上传 def test_file_upload(self): url https://api.weiixn.com/update?access_token TestApi.access_token datas { # 文件路径也可以写为open(D:\\snipaste) media: open(rD:\snipaste, moderb) } res requests.post(urlurl, filesdatas) if __name__ __main__: # 入口 pytest.main(-vs)3、pytest的main使用3.1 pytest.main() 运行模式时main()不添加任何参数表示运行当前目录下的所有的测试文件3.2 main()添加参数如下pytest.main([-s, -v, -q, -x,-k print])-s 对于代码里print语句会将输出至控制台-v 用于增加测试用例的冗长-q 用于减少测试用例的执行结果的冗长-x 出现一条用例执行失败就退出测试调试阶段常用-k print 运行包含某个字符串的用例如pytest -k add XX.py 表示运行XX.py中包含add的测试用例等等3.3 执行测试用例的过滤执行某个测试类或测试方法用 :: 隔开常用-vs参数pytest.main([-vs,模块.py::类或方法])命令行为pytest 文件名.py::测试类或测试方法pytest.main([-vs,模块.py::类::方法])命令行为pytest 文件名.py::测试类::测试方法如果是在main目录入口执行测试用例文件import pytestif __name__ __main__:pytest.main([-vs,--html../../report_hdc/20211011_hdc_02.html,--self-contained-html])3.4 如果使用pytest.main()生效再pycharm中必须设置ToolsPython Integrated ToolsDefault test runnerUnittests如果设置为pytest则是无效的。3.5 在pytest中测试函数可能返回多种结果不只是通过或失败。如下PASSED.测试通过FAILEDF测试失败SKIPEDs测试未被执行指定测试跳过执行xfail x预期测试失败并且确实失败XPASS X预期测试失败但实际上运行通过不符合预期ERROR E测试用例之外的代码触发的异常3.6 pytest.main([-m, run_first])使用-m 对用例进行标记用例需注释pytest.mark.xxx,将xxx作为参数传入使用-m mark1 and mark2可以同时选中带有这两个标记的所有测试用例。使用-m mark1 and not mark2选中带有与mark1的测试用例而过滤掉带有mark2的测试用例使用-m mark1 or mark2则选中带有mark1或者mark2的所有测试用例4、接口关联4.1 三个层次4.1.1 通过类变量保存中间变量实现接口关联4.1.2 通过单独的文件保存中间变量实现接口关联4.1.3 极限封装成零代码的方式实现接口关联4.2 两种方式4.2.1 正则提取实现接口关联re.search() #通过正则匹配一个值通过下标[1]取值没有匹配到返回nonere.findall() #通过正则匹配多个值返回List通过下标取值没有匹配到返回none4.2.2 jsonpath提取实现接口关联jsonpath.jsonpath() #返回一个列表通过下标取值没有找到返回none5、总结最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。

相关新闻

ZigBee Alarms集群开发指南:物联网设备告警系统原理与NXP ZCL实现

ZigBee Alarms集群开发指南:物联网设备告警系统原理与NXP ZCL实现

1. ZigBee Alarms集群:物联网设备的“哨兵”与“记事本”在智能家居或者工业物联网项目中,设备出问题了怎么办?是让用户对着一个不亮的灯泡干瞪眼,还是让工厂的工程师逐个排查上百个传感器?一个健壮的告警系统&#xf…

2026/6/17 20:28:16阅读更多 →
一台闲置电脑,告别数据丢失焦虑——松鼠备份的五个真实应用场景

一台闲置电脑,告别数据丢失焦虑——松鼠备份的五个真实应用场景

开场:那个深夜,我差点丢了公司半年的账去年冬天的一个凌晨,我被一通电话吵醒。电话那头是公司财务大姐,声音在发抖:“服务器蓝屏了,开不了机,账套全在里面……”我打开远程桌面,屏幕…

2026/6/17 20:28:16阅读更多 →
Idle Master:一站式自动化Steam挂卡工具高效获取交易卡指南

Idle Master:一站式自动化Steam挂卡工具高效获取交易卡指南

Idle Master:一站式自动化Steam挂卡工具高效获取交易卡指南 【免费下载链接】idle_master Get your Steam Trading Cards the Easy Way 项目地址: https://gitcode.com/gh_mirrors/id/idle_master Idle Master是一款专为Steam玩家设计的自动化挂卡工具&#…

2026/6/17 20:28:16阅读更多 →
3分钟快速入门:如何用DSGE_mod库轻松掌握宏观经济建模

3分钟快速入门:如何用DSGE_mod库轻松掌握宏观经济建模

3分钟快速入门:如何用DSGE_mod库轻松掌握宏观经济建模 【免费下载链接】DSGE_mod A collection of Dynare models 项目地址: https://gitcode.com/gh_mirrors/ds/DSGE_mod 你是否曾被复杂的动态随机一般均衡模型(DSGE)吓退&#xff1f…

2026/6/17 22:14:57阅读更多 →
跨专业零基础进入运营岗:数据分析的价值

跨专业零基础进入运营岗:数据分析的价值

一、为什么运营岗需要数据分析能力数据分析能力是运营岗位的核心竞争力之一,无论是用户增长、活动策划还是内容优化,数据驱动的决策能显著提升效率。运营岗常见的业务场景包括用户行为分析、转化率优化、ROI评估等,掌握数据分析技能可以更精准…

2026/6/17 22:14:57阅读更多 →
雷达与移动机器人车体标定

雷达与移动机器人车体标定

雷达与移动机器人车体的标定,本质上是求解刚体变换矩阵的过程,旨在实现雷达坐标系与车体坐标系在空间姿态上的精确对齐。本文介绍一种基于几何原理的直接标定方法,该方法通过控制车辆执行特定的物理运动(包括直线行驶与定点旋转),在三维空间中构建出一组正交基向量,进而…

2026/6/17 22:14:57阅读更多 →
ZigBee ZCL错误处理与核心函数详解:从原理到实践

ZigBee ZCL错误处理与核心函数详解:从原理到实践

1. ZigBee ZCL错误处理与核心函数详解:从原理到实践在物联网嵌入式开发领域,ZigBee协议因其低功耗、自组网和低成本特性,一直是智能家居、工业传感与控制等场景的主流选择。而ZigBee Cluster Library,即ZCL,则是实现不…

2026/6/17 22:14:57阅读更多 →
5分钟快速上手:猫抓Cat-Catch浏览器资源嗅探扩展完全指南

5分钟快速上手:猫抓Cat-Catch浏览器资源嗅探扩展完全指南

5分钟快速上手:猫抓Cat-Catch浏览器资源嗅探扩展完全指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存网页上的精彩视…

2026/6/17 22:14:57阅读更多 →
管家婆分销软件门店调货及配送验收如何处理?

管家婆分销软件门店调货及配送验收如何处理?

系统管理-系统启用-系统配置-仓储运输管理-勾上启用门店配送功能。要货申请单:02仓库向01仓库要货【手机】数量10,仓储运输管理-门店配送管理-做要货申请单,要货仓库02仓库,出库仓库01仓库,要货数量填10(不…

2026/6/17 22:09:56阅读更多 →
飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)

飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)

OpenClaw 2.7.9 对接飞书机器人完整配置教程 本文讲解借助长连接模式打通 OpenClaw 与飞书的操作流程,配置完成后,可在飞书私聊、群组内发送指令,调用本地 AI 实现电脑自动化操作。整体流程分为飞书平台创建应用、权限配置、密钥填写三大环节…

2026/6/17 10:40:20阅读更多 →
嵌入式处理器技术演进与飞思卡尔实战解析:从架构选型到系统设计

嵌入式处理器技术演进与飞思卡尔实战解析:从架构选型到系统设计

1. 嵌入式处理器:从“大脑”到“神经系统”的进化 在电子设备无处不在的今天,我们很少会去思考一个智能设备是如何“思考”和“行动”的。无论是汽车引擎的精准控制、工厂机械臂的流畅运转,还是智能家居的自动响应,其背后都离不开…

2026/6/17 10:40:20阅读更多 →
如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南

如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南

如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地…

2026/6/17 10:40:20阅读更多 →