基于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(url=url, params=datas) result = res.json() TestApi.access_token = result["access_token"] # jsonpath提取实现接口关联 # lis = jsonpath.jsonpath(res.json(), "$.access_token") # print(lis[0]) # re正则表达式提取 # token = re.search('name="hduwqidh" 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(url=url, json=json, headers=headers) # 文件上传 def test_file_upload(self): url = "https://api.weiixn.com/update?access_token=" + TestApi.access_token datas = { # 文件路径也可以写为open("D:\\snipaste") "media": open(r"D:\snipaste", mode="rb") } res = requests.post(url=url, files=datas) 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 pytest

if __name__ == '__main__':

pytest.main(["-vs","--html=../../report_hdc/20211011_hdc_02.html","--self-contained-html"])

3.4 如果使用pytest.main()生效,再pycharm中必须设置Tools>Python Integrated Tools>Default test runner=Unittests;如果设置为pytest则是无效的。

3.5 在pytest中,测试函数可能返回多种结果,不只是通过或失败。如下:

PASSED(.):测试通过

FAILED(F):测试失败

SKIPED(s):测试未被执行,指定测试跳过执行

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]取值,没有匹配到返回none

re.findall() #通过正则匹配多个值,返回List,通过下标取值,没有匹配到返回none

4.2.2 jsonpath提取实现接口关联

jsonpath.jsonpath() #返回一个列表,通过下标取值,没有找到返回none

5、总结

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1195026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytest之收集用例规则与运行指定用例

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 小伙伴们大家好呀,今天笔者会给大家讲解一下pytest是如何收集我们写好的用例?我们又有哪些方式来运行单个用例或者批量运行用例呢&…

Linux可执行程序依赖库打包脚本

脚本如下:#!/bin/bash# 程序名称 PROGRAM"your_program" # 目标目录 DESTINATION"/path/to/destination"# 检查程序是否存在 if [ ! -f "$PROGRAM" ]; thenecho "Error: $PROGRAM not found."exit 1 fi# 创建目标目录&…

verl如何快速上手?HuggingFace集成保姆级教程

verl如何快速上手?HuggingFace集成保姆级教程 verl 是一个灵活、高效且可用于生产环境的强化学习(RL)训练框架,专为大型语言模型(LLMs)的后训练设计。它由字节跳动火山引擎团队开源,是 HybridF…

2026年行业内评价好的ISO认证办理公司选哪家,ISO27001认证/ISO9001认证,ISO认证办理机构哪家强

随着全球质量管理体系标准的持续升级,ISO认证已成为企业提升竞争力、拓展国际市场的核心通行证。面对市场上琳琅满目的认证机构,企业如何选择兼具专业性与服务质量的合作伙伴?本文以第三方权威视角,基于企业资质、…

高精度、高可靠的伺服电爪品牌测评与推荐

在智能制造加速演进的2026年,工业自动化对末端执行器的高精度、高可靠性伺服电爪需求持续攀升。尤其在3C电子、半导体、新能源锂电等高端制造领域,传统气动夹爪已难以满足微米级装配、柔性抓取和智能反馈的严苛要求。…

R语言读取CSV中文乱码自救手册(仅限内部流传):3个鲜为人知的编码调试技巧

第一章:R语言读取CSV中文乱码问题的根源剖析 R语言在跨平台处理中文CSV文件时出现乱码,本质并非函数本身缺陷,而是字符编码在“文件存储—系统环境—R会话”三层链路中未对齐所致。Windows系统默认使用GBK或GB2312编码保存中文CSV&#xff0c…

为什么你的Laravel 12路由总是404:深入底层机制的6个排查步骤

第一章:Laravel 12路由机制的核心原理 Laravel 12 的路由系统建立在高度优化的编译式路由注册与匹配引擎之上,摒弃了传统正则逐条匹配的低效方式,转而采用基于 HTTP 方法与 URI 模式的预编译路由表(Compiled Route Collection&…

高精度、耐腐蚀、可定制——玻璃转子流量计优质厂商全解析

【行业洞察】 玻璃转子流量计因其结构简单、读数直观、成本低廉、维护便捷等优势,长期作为液体与气体流量监测的基础型仪表,广泛应用于化工、制药、环保、食品、水处理及科研实验等领域。随着工业自动化与智能制造升…

总结泰兴网站建设一站式服务价格情况,选哪家好?

本榜单依托全维度市场调研与真实本地企业口碑,深度筛选出五家泰州本土数字化营销服务标杆企业,为泰州、如皋、靖江、泰兴、姜堰等地的制造企业、工厂提供客观选型依据,助力精准匹配适配的线上拓客服务伙伴。 TOP1 推…

【R语言数据可视化终极指南】:用ggplot2画散点图+回归线的5种高效方法

第一章:R语言数据可视化与ggplot2核心理念 R语言因其强大的统计分析与图形绘制能力,在数据科学领域广受欢迎。其中,ggplot2 是基于“图形语法”(The Grammar of Graphics)理念构建的绘图系统,它将图表分解为…

吴忠市英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜

在雅思备考热潮中,吴忠市众多考生面临着培训选课难、提分无方向的核心痛点。雅思考试的高专业性的要求,让缺乏优质教育机构引导、缺少权威提分技巧支撑的考生屡屡受挫。如何筛选靠谱的教育机构,获取实用的备考方案,…

说说姜堰网站建设费用,不同方案花费有何差异呢?

一、基础认知篇 问题1:姜堰网站建设费用主要包含哪些部分?中小企业能承担吗? 姜堰网站建设的费用并非单一报价,而是由基础搭建+功能定制+服务附加三大核心模块构成:基础搭建涵盖域名注册、服务器租赁、页面设计等…

2026年普拉提教练培训机构哪家值得选择去哪学

普拉提行业的快速发展,让越来越多从业者、跨界求职者将其作为职业方向。但市面培训机构良莠不齐,课程与证书含金量差异较大,选对机构成为职业起步或升级的关键。靠谱的普拉提培训机构,需以权威认证、科学课程和优质…

石嘴山英语雅思培训辅导机构推荐、2026权威出国雅思课程中心学校口碑排行榜

在全球化留学趋势下,雅思考试已成为石嘴山学子出国深造的重要“语言通行证”,但雅思培训选课之路布满荆棘。多数考生面临优质教育机构筛选困难、提分技巧匮乏、个性化方案缺失等痛点,如何在众多机构中找到靠谱且性价…

待产包纸尿裤品牌推荐|新手爸妈避坑指南(5 大品牌实测)

👶 对于新手爸妈而言,纸尿裤是待产包中不可或缺的核心单品,其品质直接关系到宝宝的舒适感与肌肤健康,更影响整个家庭的照料体验。选纸尿裤没有绝对的“最优解”,建议结合宝宝的肤质、体型、活动量等个体需求综合…

待产包纸尿裤品牌推荐|新手爸妈避坑指南(5 大品牌实测)

👶 对于新手爸妈而言,纸尿裤是待产包中不可或缺的核心单品,其品质直接关系到宝宝的舒适感与肌肤健康,更影响整个家庭的照料体验。选纸尿裤没有绝对的“最优解”,建议结合宝宝的肤质、体型、活动量等个体需求综合…

[工程实战] 攻克“资料孤岛”:基于隐语纵向联邦学习的金融风控建模全解析

[工程实战] 攻克“资料孤岛”:基于隐语纵向联邦学习的金融风控建模全解析2026-01-21 14:33 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: …

2026年泰兴定制网站建设靠谱公司排名

2026年泰州本土制造业数字化转型加速,定制网站建设作为企业线上获客的核心载体,已成为制造企业打通供需链路、提升品牌可信度的关键基建。无论是适配B2B采购场景的网站建设费用评估,还是泰兴定制网站建设的本地化需…

总结浙江地区口碑好的成人自考培训机构,春华教育排名如何?

随着社会对学历提升需求的持续增长,成人自考因学制灵活、含金量高成为在职人群的热门选择,但不少人在备考时仍面临诸多困惑。本文围绕成人自考全科辅导的核心问题展开解答,结合春华教育的实际服务经验,为大家提供清…

吴忠市英语雅思培训辅导机构推荐、2026权威出国雅思课程中心学校口碑排行榜

在雅思备考的赛道上,吴忠市众多考生常常陷入培训选课的两难困境:优质教育机构鱼龙混杂,难以精准甄别;不同基础对应的提分需求差异显著,却找不到适配的个性化方案;备考过程中缺乏权威技巧指导,提分效果大打折扣。…