Blogger Information
Blog 11
fans 0
comment 0
visits 11786
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
5年程序员问我:什么是断言?
宣博文
Original
1026 people have browsed it

响应以及断言

在“发送HTTP请求”一讲中,我们讲解了APIPOST中响应数据的查看。

API 请求响应

点击发送按钮后,如果有数据返回,则会显示返回数据,响应时间,响应码,Cookie等。

注意:返回数据默认是 ==美化== 模式,便于查看 JSON XML 格式。您可以通过切换 ==原生== 或 ==预览== 模式 查看其它类型的类型。

返回Headers

除了查看结果外,ApiPost也提供了强大的测试校验功能。在这里我们也可以使用断言来进行响应结果的校验。

响应结果分屏展示

在APIPOST 5.4版本后,支持“响应结果分屏展示”,从而提升工作区的空间。

image.png

image.png

什么是断言?

协作开发,版本升级,服务器升级,接口返回有可能因为一些bug,和我们预期结果不一致。为了便于开发&测试人员能够更快的发现bug,有利于整个产品质量以及进度的保证。我们推出断言功能。

如何使用断言?

  1. 定义测试用例

  2. 验证测试用例

例如接口返回:

{    "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字段是否大于1apt.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"');
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post