接口自动化之提取响应结果(raw、json)

本文介绍了接口测试中响应结果的两种常见类型:JSON与原始数据,并详细阐述了如何利用Python的requests库处理JSON响应,以及如何使用正则表达式从原始响应中提取所需数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做接口测试时,我们一般会取得响应结果的部分值,来与预期结果对比,做断言

 

目录

1、响应结果类型

2、json响应结果的提取

3、raw响应结果的提取

 

1、响应结果类型

通过fiddler的response,我们能知道响应结果的类型

一般的话,点开raw或者json就可以得到我们想要的响应结果,我们可以对这2种响应结果值的提取,然后做断言

2、json响应结果的提取

如何响应结果是json格式的,这时候我们需要用返回的json串进行处理,得到字典,然后再进行一个获取

在requests库中,有一个json()方法,可以直接将json串转成字典格式,然后就可以通过字典取值方法得到想要参数的值

如:返回结果是r2,那么我们进行一个处理r1=r2.json(),获取r1中的参数值就是r1["key"]

 

 

3、raw响应结果的提取

如何响应结果是非json格式的,这时候我们可以使用python中的re这个模块进行正则匹配,提取想要的值

如,返回结果是r2,那么我们获取部分提取值就是r1=(XXX(.+?),r2.content),其中(.+?)可以是任意正则表达式

 

转载于:https://www.cnblogs.com/weizhideweilai/p/9471336.html

### Apifox 接口自动化测试脚本编写教程 #### 使用JavaScript编写的前置脚本 在Apifox中,前置脚本用于在发送请求前执行特定操作。这些脚本可以帮助设置动态参数、处理复杂的业务逻辑等。 ```javascript // 设置环境变量中的token作为header的一部分 let token = pm.environment.get('authToken'); pm.request.headers.add({ key: 'Authorization', value: `Bearer ${token}` }); ``` 此代码片段展示了如何从环境中获取认证令牌,并将其添加到HTTP头部中[^4]。 #### 后置脚本实例 后置脚本则是在接收到响应之后运行,可用于验证返回数据的有效性或更新环境变量。 ```javascript // 验证状态码是否为200 OK pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); // 提取JSON响应体内的id字段存入全局变量 const jsonData = pm.response.json(); pm.globals.set("userId", jsonData.id); ``` 上述例子说明了怎样检查服务器回应的状态码,并把解析后的ID存储起来供后续调用使用[^1]。 #### 完整的接口自动化测试案例 下面是一个完整的API测试场景:登录功能的成功路径模拟。 ```json { "name": "Login Success Test", "request": { "method": "POST", "url": "{{baseUrl}}/login", "body": { "mode": "raw", "raw": "{ \"username\": \"testUser\", \"password\": \"secret\" }" } }, "preRequestScript": [ "// 清除任何可能存在的旧会话\npm.environment.unset('session');" ], "tests": [ "Response time is less than 200ms", "pm.response.to.be.ok", "var responseBody = JSON.parse(responseBody);\nresponseBody.token !== null && responseBody.token.length > 0;", "pm.environment.set('session', responseBody.token);" ] } ``` 这段配置文件描述了一个名为`Login Success Test` 的测试项,它向指定URL发出POST请求尝试登陆,并通过一系列断言确保过程顺利进行,最后保存新获得的会话信息至环境变量以便其他依赖于此身份验证的操作能够正常工作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值