接口测试2-接口测试 get post请求
一。找接口文档(后端开发人员提供,前端没有开发出来之前测)
接口文档如下:
一、测试服务器信息
测试服务器地址:https://api.weixin.qq.com
二、接口列表
2.1 获取access_token
接口名称 |
获取access_token |
|||
接口描述 |
获取access_token |
|||
请求地址 |
/cgi-bin/token |
|||
请求方式 |
get |
|||
输入参数 |
|
|||
参数名称 |
参数描述 |
参数类型 |
是否必须 |
备注 |
grant_type |
client_credential |
String |
必须 |
|
appid |
wxaefa08168b458452 |
String |
必须 |
|
secret |
3d98210ddcdcaed24a3418585f1569dc |
String |
必须 |
|
|
|
|
|
|
输出参数 |
|
|
|
|
参数名称 |
参数描述 |
参数类型 |
|
备注 |
access_token |
用户的access_token |
|
|
|
expires_in |
过期时间 |
|
|
|
|
|
|
|
|
开发申请接口数据地址:https://www.juhe.cn/ 可以申请接口进行测试
比如天气预报(可免费调用500次)
二。设计接口测试用例
除了正常的测试用例,需要设计异常的用例
三。开展测试
第一步,使用python测试接口,需要安装requests库
打开电脑cmd ---PIP
第二步,打开pycharm,导包编码
编码:
get类型请求接口
post类型请求接口
参数关联接口
unittest实现接口测试
数据和代码分离:xlrd--->读取excel表数据
举实例1:测试天气预报接口-------根据id查询天气(get类型)
一。分析需求,准备接口文档:https://www.juhe.cn/docs/api/id/39,接口文档如下:
二。编写用例:
三。接口测试python代码编写
1.用例1
-----------------------------------------------------------------------------
# 导包
import requests
#给接口地址定义变量名称
url = "http://v.juhe.cn/weather/index"
#通过字典的形式保存数据
para = {"cityname":"南京","key":"0f1c6ff6efc0408eddf0f07e792c6e5c"}
#发送请求(下面都是request自带的方法)
r = requests.get(url,params=para)
#获取返回结果,获取json数据
print(r.status_code)
res = r.json()
print(res["reason"])
print(res["result"]["sk"]["temp"]) #获取json中result中sk中的temp字段值
-----------------------------------------------------------
2.用例2
举实例2:测试天气预报接口-------根据GPS坐标自动定位城市,并返回该城市的天气信息(post类型)
一 需求
二。编写python测试用例
-----------------------------------------
#导包
import requests
#根据gps坐标查询天气,使用post请求
url = "http://v.juhe.cn/weather/geo"
para = {"lon":"116.39277","lat":"39.933748","dtype":"json","key":"0f1c6ff6efc0408eddf0f07e792c6e5c"}
#发送请求,post请求中data就是para的数据,para数据包含所有的请求参数
r = requests.post(url,data=para)
#获取json数据
res =r.json()
print(res)
print(res["reason"])
#输入错误的请求查看返回码
print(res["error_code"])
------------------------------
----------------------------------------------------------------------------------------
post请求:
URL:
请求头:
header的contenttype是指定请求体类型是json类型----可以省去不写,它通过data能分析出请求体的类型
请求体:
form数据是data和json数据2种,请求参数名称不一样
响应:
打印是html显示的格式(网页格式)则用 print(resp.text);
如果转换为json的格式(表单数据或者json)则用print(resp.json()),结果如下
一。form表单数据类型的post登录请求
data类型是form
二。json类型的post登录请求
三。put,delete 修改员工和删除的请求
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码