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

相关文章:

  • 从0到1理解大语言模型:读《大语言模型:从理论到实践(第2版)》笔记
  • 百元级工业级核心板:明远智睿×瑞萨V2H,开启AIoT开发新纪元
  • 如何查询并访问路由器的默认网关(IP地址)?
  • 如何在 Ubuntu 24.04 或 22.04 Linux 上安装和运行 Redis 服务器
  • 场景解决-列表项切换时同步到可视区域
  • jvm冷门知识十讲
  • 【lucene】currentFrame与staticFrame
  • 落霞归雁思维框架应用(十) ——在职考研 199 管综 + 英语二 30 周「顺水行舟」上岸指南
  • 26考研11408数据结构
  • 电脑没有声音了怎么恢复 快速解决音频故障
  • 艾利特机器人:光伏机器人如何重塑清洁能源制造新格局
  • HarmonyOS-ArkUI Web控件基础铺垫6--TCP协议- 流量控制算法与拥塞控制算法
  • 道路坑洞检测数据集介绍8300张图片-智能道路巡检系统 车载安全监测设备 城市基础设施管理
  • QFutureWatcher 收不到 finished 信号-QFutureWatcher 与对象生命周期
  • Mac m系列芯片安装node14版本使用nvm + Rosetta 2
  • 【Rust并发集合】如何在多线程中并发安全地使用集合
  • vue3插槽详解
  • Deep Research(信息检索增强)认识和项目实战
  • 设计模式---单例
  • 博物馆 VR 导览:图形渲染算法+智能讲解技术算法实现及优化
  • 【MySQL】从连接数据库开始:JDBC 编程入门指南
  • 如何从 Web2 转型到 Web3
  • 01 基于sklearn的机械学习-机械学习的分类、sklearn的安装、sklearn数据集、数据集的划分、特征工程中特征提取与无量纲化
  • 使用JavaScript实现轮播图的任意页码切换和丝滑衔接切换效果
  • Linux之网络部分-应用层协议 HTTP
  • GaussDB 数据库架构师修炼(十) 性能诊断常用视图
  • BGP高级特性之ORF
  • 【C++】第十九节—一文万字详解 | AVL树实现
  • C51 中断
  • mangoDB面试题及详细答案 117道(026-050)