一万年来谁著史,三千里外欲封侯。这篇文章主要讲述5年程序员问我:什么是断言?相关的知识,希望能为你提供帮助。
响应以及断言在“发送HTTP请求”一讲中,我们讲解了APIPOST中响应数据的查看。
API 请求响应点击发送按钮后,如果有数据返回,则会显示返回数据,响应时间,响应码,Cookie等。
文章图片
注意:返回数据默认是 ==美化== 模式,便于查看 JSON XML 格式。您可以通过切换 ==原生== 或 ==预览== 模式 查看其它类型的类型。
返回Headers
文章图片
除了查看结果外,ApiPost也提供了强大的测试校验功能。在这里我们也可以使用断言来进行响应结果的校验。
响应结果分屏展示在APIPOST 5.4版本后,支持“响应结果分屏展示”,从而提升工作区的空间。
【5年程序员问我(什么是断言())】
文章图片
文章图片
什么是断言?协作开发,版本升级,服务器升级,接口返回有可能因为一些bug,和我们预期结果不一致。为了便于开发& 测试人员能够更快的发现bug,有利于整个产品质量以及进度的保证。我们推出断言功能。
如何使用断言?
- 定义测试用例
- 验证测试用例
{
"errcode": 0,
"errstr": "success",
"post": [],
"get": [],
"request": [],
"put": "",
"header": {
"Host": "echo.apipost.cn",
"Connection": "keep-alive",
"Content-Length": "0",
"Accept": "application/json, text/javascript, */*;
q=0.01",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN",
"Content-Type": "application/json",
"Cookie": "phpSESSID=n3k73k06o6ghnie4e9re4rbf0t",
"Origin": "https://echo.apipost.cn",
"User-Agent": "Mozilla/5.0 (iPhone;
CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (Khtml, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
}
}
定义测试用例:
apt.assert(\'response.raw.status==200\');
apt.assert(\'response.raw.type=="json"\');
apt.assert(\'response.json.errcode==0\');
apt.assert(\'response.raw.responseTime<
100\');
apt.assert(\'response.json.header.Host=="echo.apipost.cn"\');
点击发送按钮后:
文章图片
绿色表示测试通过,红色表示测试不通过。
特别注意:==每个测试用例是一行,不能换行。==
例:apt.assert(\'response.json.header.Host==" echo.apipost.cn" \');
1)response.json.header.Host 表示响应json下面的header数组中的Host字段,
2)必须都为1,才会通过。
常见的测试用例可以通过后执行脚本获取:
文章图片
更多响应参数变量 response.raw:原始响应数据
调用示例:
response.raw.status //响应状态码(200、301、404等)
response.raw.responseTime //响应时间(毫秒)
response.raw.type //响应类型(json等)
response.raw.responseText //响应文本
response.json:json格式的响应数据
文章图片
调用示例如上面示例:
response.json.data.token //也可以 response.json.data["token"]
response.headers:响应头
文章图片
调用示例:
response.headers.server //也可以 response.headers["server"]
response.cookies :响应cookie
文章图片
调用示例:
response.cookies.PHPSESSION //也可以 response.cookies["PHPSESSION"]
常用断言表达式1、检查response body中是否包含某个string
apt.assert(\'response.raw.responseText=="test"\');
// 检查响应文本是否等于test字符串
apt.assert(\'response.raw.responseText.indexOf("test") >
-1\');
// 检查响应文本是否含有test字符串
2、检测返回JSON中的某个值是否等于预期的值
apt.assert(\'response.json.hasOwnProperty("errcode")\');
// 检测返回json对象的是否含有errcode字段
apt.assert(\'response.json.errcode=="success"\');
// 检测返回json对象的errcode字段是否等于success字符串
apt.assert(\'response.json.errcode.indexOf("success") >
-1\');
// 检测返回json对象的errcode字段是否含有success字符串
apt.assert(\'response.json.errcode!="success"\');
// 检测返回json对象的errcode字段是否不等于success字符串
apt.assert(\'response.json.errcode>
=1\');
// 检测返回json对象的errcode字段是否大于1
apt.assert(\'response.json.errcode==null\');
// 检测返回json对象的errcode字段是否是null
3、测试response Headers中的某个元素是否存在(如:Content-Type)
apt.assert(\'response.headers.hasOwnProperty("content-type")\');
4、验证Status code(响应码)的值是不是等于200
apt.assert(\'response.raw.status==200\');
5、验证Response time(请求耗时)是否大于某个值
apt.assert(\'response.raw.responseTime>
=100\');
6、验证返回类型是不是json
apt.assert(\'response.raw.type=="json"\');
推荐阅读
- Vim实现批量注释的方法
- 华为-H3C交换机链路聚合配置--link-aggregation
- 求职作业帮 C++方向面经
- 再探MS-SAMR协议
- 接口管理工具ApiPost使用——(响应结果可视化)
- 求职去哪儿网 C++方向面经
- 带你入门antv.g6流程图
- HarmonyOS轻设备图形框架概述
- Prometheus监控运维实战六( Node_exporter监控主机)