当前位置: 首页 > news >正文

接口自动化测试pytest框架

一、接口自动化

接口自动化是通过对接口进行测试和模拟,以确保软件系统内部的各个组件能够正确地相互通信和交换数据

接口测试专注于测试系统内部的逻辑和数据传输,而不是像UI测试那样关注用户的操作和交互

需要安装必要的依赖库,如requests用于发送HTTP请求,pytest用于测试框架。

二、通过命令安装requests库

包管理工具pip 
pip list查看当前项目有哪些已经安装好的包

终端输入命令pip install requests==2.31.0(版本号0

 输出<>表示打印出来是一个对象

requests 库是⼀个非常流行的HTTP客⼾端库,用于发送HTTP请求。 requests.get 方法用于发送⼀个HTTP get 请求到指定的URL requests.get 方法返回⼀个 Response 对象,这个对象包含了服务器返回的所有信息。

  r.status_code 响应状态码

r.content 字节方式的响应体,会自动解码gzip和deflate压缩

r.headers 以字典对象存储服务器响应头,若键不存在则返回None

r.json() Requests中内置的JSON解析方法,将响应体解析为JSON格式

r.url 获取实际请求的URL

r.encoding 编码格式,根据响应头部的字符编码确定

r.cookies 获取服务器设置的cookies

r.raw 返回原始响应体,不进行任何处理

r.text 字符串方式的响应体,会自动根据响应头部的字符编码进行解码

r.raise_for_status() 失败请求(非200响应)抛出异常 

 打印特定的信息比如:响应是html格式打印r.text

 get() 、 post() 底层都是调⽤ request() ⽅法,request()请求对以上请求方法进行封装 

req_r1 = requests.request(method="get", url="https://www.baidu.com")
req_r2 = requests.request(method="post", url="https://www.baidu.com")

2) 方法传参

 url 请求的接口 

headers ⼀个字典,包含要发送的HTTP头。

cookies ⼀个字典、列表或者 RequestsCookieJar 对象,包含要发送的cookies。

files ⼀个字典,包含要上传的文件。

data ⼀个字典、列表或者字节串,包含要发送的请求体数据。

json ⼀个字典,将被转换为JSON格式并发送。

params ⼀个字典、列表或者字节串,将作为查询字符串附加到URL上

上传参数格式

params 用于在URL中传递查询参数(Query Parameters),通常用于 GET 请求,但也可以用于其他类型的请求。

 json 用于在请求体(Body)中传递 JSON 格式的数据,通常用于 POST 或 PUT 请求。

 data 用于在请求体(Body)中传递表单数据,通常用于 POST 或 PUT 请求

若参数上传格式选择为 json 格式, Content-Type 会自动被设置为 application/json

#登录
url = "http://152.136.169.194:8080/user/login"# 定义要发送的数据
data = {"username":"czw","password": "123456"
}
r = requests.post(url=url, data=data)
print(r.json())

  请求头添加用户登录凭证才登陆成功

#查询音乐
url = "http://152.136.169.194:8080/music/findloveMusic"
# 定义查询参数
paramer = {"musicname":"%E8%B5%B5"
}cookie={"JSESSIONID":"D91FBB71C20EC0B75819B1A8EDECA48F"
}r = requests.get(url=url, params=paramer,cookies=cookie)
print(r.json())

 

三、自动化框架pytest

安装 

pip install pytest==(版本号)

查看 python版本  python版本与pytest版本对应

 通过pytest运行所有测试用例

pytest可以自动识别到测试用例,不需要在手动编写main函数并调用测试用例

注意测试用例文件/方法/类名命名有规则

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

当满足以上要求后,可通过命令行参数 pytest命令 直接运⾏符合条件的⽤例:

2)pytest命令参数

pytest 在当前目录及其子目录中搜索并运行测试。

pytest -v 增加输出的详细程度。

pytest -s 显示测试中的 print 语句。

pytest test_module.py 运行指定的测试模块。

pytest test_dir/ 运行指定目录下的所有测试。

pytest -h命令 查看pytest使用文档

 

 

 

http://www.dtcms.com/a/304401.html

相关文章:

  • 网络原理--HTTPHTTPS
  • JAVA_TWENTY—ONE_单元测试+注解+反射
  • MySQL——MVCC
  • ftp加ssl,升级ftps
  • 解决Spring MVC中@PathVariable参数为null导致的404问题:全面解析与最佳实践
  • Spring MVC数据传递全攻略
  • 架构实战——互联网架构模板(“网络层”技术)
  • WINCC选项组配置
  • Spring Boot 请求限流实战:基于 IP 的高效防刷策略
  • Postgresql 查询使用正则
  • SQL158 每类视频近一个月的转发量/率
  • Java 大视界 -- Java 大数据在智能教育学习社区知识图谱构建与知识传播分析中的应用(370)
  • DeepCompare文件深度对比软件的差异内容提取与保存功能深度解析
  • Go语言新手村:轻松理解变量、常量和枚举用法
  • 论文阅读--射频电源在半导体领域的应用
  • 《从HTTP到IP证书:网络身份验证的下一站革命》
  • 如何使用 Git 钩子 hooks 自动化任务?
  • 【MySQL】数据库的简单介绍
  • [2025CVPR-图象分类]ProAPO:视觉分类的渐进式自动提示优化
  • java基础面试题(6)--Object
  • Jenkins 节点连接故障定位及解决方案总结 - PKIX path validation failed
  • 如何创建一个 Solana 钱包?
  • 在 Ubuntu 下测试单目与双目相机
  • ubuntu 25.04 自带JS引擎gjs运行GTK with JavaScript 应用
  • B+树高效实现与优化技巧
  • 微服务 01
  • FastAPI后台任务:异步魔法还是同步噩梦?
  • Spring Boot with RabbitMQ:四大核心模式指南
  • 代码随想录算法训练营第三十天|0/1背包问题
  • 如何保证DoIP的网络安全?