基于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/23 21:16:00阅读更多 →
一台闲置电脑,告别数据丢失焦虑——松鼠备份的五个真实应用场景

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

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

2026/6/23 21:56:29阅读更多 →
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/23 23:36:46阅读更多 →
GPT-4o职场提效实测:从日报生成到协作重构

GPT-4o职场提效实测:从日报生成到协作重构

我注意到输入内容中存在严重问题:项目标题“GPT-5.4 Pro”属于虚构名称,当前(截至2024年中)并不存在官方发布的GPT-5模型,更无“GPT-5.4 Pro”这一版本;OpenAI未发布、未命名、未开放测试任何编号为“5.x”…

2026/6/24 19:23:29阅读更多 →
架构师视角下的网络分层与安全实践

架构师视角下的网络分层与安全实践

1. 这不是复习资料,是架构师在真实系统里踩出来的分层认知“计算机网络:从分层到安全——架构师备考技术笔记”这个标题,第一眼容易被当成软考冲刺手册。但如果你真在金融核心系统做过高可用网关设计,或在云原生平台调过Service M…

2026/6/24 19:23:29阅读更多 →
道格拉斯-普克算法实战:多边形简化的核心原理与GIS/三维建模应用

道格拉斯-普克算法实战:多边形简化的核心原理与GIS/三维建模应用

1. 多边形简化:从理论到实践的深度解析在GIS数据处理、游戏建模或者3D打印的日常工作中,我们常常会遇到一个令人头疼的问题:一个由数万甚至数十万个顶点构成的复杂多边形或网格模型,处理起来慢如蜗牛,渲染时卡顿&#…

2026/6/24 19:23:29阅读更多 →
Kimi K2.5工程语境理解:从代码助手到项目级AI协作者

Kimi K2.5工程语境理解:从代码助手到项目级AI协作者

1. 从Claude Code到Kimi K2.5:一次被“惯坏”的生产力迁移我是在一个周五下午三点十七分彻底放弃Claude Code的。当时正调试一个Vue 3 Pinia WebSockets的实时协作看板,后端接口返回的嵌套结构异常混乱,需要在300行TS文件里快速定位三个关键…

2026/6/24 19:23:29阅读更多 →
PowerPC e300核心深度解析:从指令集到缓存与中断的嵌入式实战

PowerPC e300核心深度解析:从指令集到缓存与中断的嵌入式实战

1. 项目概述:为什么需要深入理解一颗“老”核心?在嵌入式系统开发领域,尤其是工业控制、网络通信和汽车电子这些对可靠性和确定性要求极高的场景,我们常常会与一些“经典”的处理器架构打交道。PowerPC e300核心就是这样一个典型代…

2026/6/24 19:23:29阅读更多 →
Mac终端调用Claude等大模型:OpenClaw安装与排障实战指南

Mac终端调用Claude等大模型:OpenClaw安装与排障实战指南

1. 先说清楚:OpenClaw 不是官方产品,也不是 Claude 的 macOS 客户端 “mac安装openclaw”这个搜索词背后,藏着一个非常典型的认知偏差——很多人把它当成和 Claude Code 、 Codex 或某个“Mac版Claude桌面应用”一样,是 Anthr…

2026/6/24 19:18:28阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/24 7:33:03阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/24 2:12:09阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/24 7:37:00阅读更多 →
TaskJuggler脚本编程入门:用代码实现自动化项目管理

TaskJuggler脚本编程入门:用代码实现自动化项目管理

TaskJuggler脚本编程入门:用代码实现自动化项目管理 【免费下载链接】TaskJuggler TaskJuggler - Project Management beyond Gantt chart drawing 项目地址: https://gitcode.com/gh_mirrors/ta/TaskJuggler TaskJuggler是一款强大的开源项目管理工具&#…

2026/6/24 0:02:41阅读更多 →
终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果

终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果

终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 【免费下载链接】angular-mobile-nav An angular navigation service for mobile applications 项目地址: https://gitcode.com/gh_mirrors/an/angular-mobile-nav angular-mobile-nav是一款专为…

2026/6/24 0:02:41阅读更多 →
Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作

Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作

Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 【免费下载链接】Wan2.1-Fun-V1.1-1.3B-InP 项目地址: https://ai.gitcode.com/hf_mirrors/PAI/Wan2.1-Fun-V1.1-1.3B-InP Wan2.1-Fun-V1.1-1.3B-InP是一款强大的AI视频创作工具,…

2026/6/24 0:02:41阅读更多 →