当前位置: 首页 > 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.lryc.cn/news/603199.html

相关文章:

  • c++-list
  • 【VOS虚拟操作系统】未来之窗打包工具在前端资源优化中的应用与优势分析——仙盟创梦IDE
  • Redis内存使用耗尽情况分析
  • 40+个常用的Linux指令——下
  • 艾利特机器人:光伏机器人如何重塑清洁能源制造新格局
  • 【CDH】CDH环境中升级ZooKeeper的实战记录
  • 基于KMeans、AgglomerativeClustering、DBSCAN、PCA的聚类分析的区域经济差异研究
  • 【Linux知识】Linux Shell 脚本中的 `set -ex` 命令深度解析
  • 复现cacti的RCE(CVE-2022-46169)
  • Go 客户端玩转 ES|QL API 直连与 Mapping Helpers 实战详解
  • upload-labs靶场通关(1-12)
  • 服务器之光:Nginx--反向代理模块详解及演练
  • 图论:Bellman_ford算法
  • 《汇编语言:基于X86处理器》第10章 结构和宏(3)
  • 【WRF-Chem 实例1】namelist.input 详解- 模拟CO2
  • 鸿蒙Harmony-自定义List组件,解决List组件手势滑动点击卡住问题
  • 【图像噪点消除】——图像预处理(OpenCV)
  • 创建型设计模式-工厂方法模式和抽象工厂方法模式
  • 社区老人健康信息管理系统|基于springboot社区老人健康信息管理系统设计与实现(源码+数据库+文档)
  • Gartner发布CTEM指南:使用持续威胁暴露管理来减少网络攻击
  • 智能体安全与可信AI:防护机制与伦理考量
  • 利用 C# 实现 Word 文档多维度统计(字数、字符数、页数、段落数、行数)
  • macOS “Sploitlight“漏洞曝光:攻击者可窃取Apple Intelligence缓存数据
  • FreeRTOS在中断上下文中设置事件组,调度很慢的的解决方法
  • JavaWeb 入门:CSS 基础与实战详解(Java 开发者视角)
  • 如何在在NPM发布一个React组件
  • pycharm中安装pythonocc
  • 队列算法之【用队列实现栈】
  • 【Android】三种弹窗 Fragment弹窗管理
  • 人工智能技术革命:AI工具与大模型如何重塑开发者工作模式与行业格局