当前位置:网站首页>全网详细接口测试ApiPost详细教程(实战),吐血整理
全网详细接口测试ApiPost详细教程(实战),吐血整理
2022-06-09 10:21:00 【用户9610393】
一、前言
ApiPost不仅仅是一个调试工具,更是一个接口文档快速生成工具
针对测试人员
接口调试
利用ApiPost进行常规的接口调试功能
接口自动化测试
利用ApiPost提供的断言和流程测试功能,进行接口的流程化测试
后端人员可以通过ApiPost在编写、测试接口的同时快速的、自动生成漂亮、规范的接口文档。相同的时间完成2件事情,大大提升后端开发效率
生成Mock数据
后端可以通过先编写Mock数据给前端,从而让前端提前进入接口调用、前端开发状态
生成序号代码
ApiPost提供主流语言代码自动生成功能。每编写一个接口,ApiPost都支持生成主流语言代码
二、API 请求响应
点击发送按钮后,如果有数据返回,则会显示返回数据,响应时间,响应码,Cookie等
注意:返回数据默认是 ==美化== 模式,便于查看 JSON XML 格式。您可以通过切换 ==原生== 或==预览== 模式 查看其它类型的类型。
三、返回Headers
除了查看结果外,ApiPost也提供了强大的测试校验功能。在这里我们也可以使用断言来进行响应结果的校验
四、响应结果分屏展示
在APIPOST 5.4版本后,支持“响应结果分屏展示”,从而提升工作区的空间
五、使用断言
协作开发,版本升级,服务器升级,接口返回有可能因为一些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,才会通过。
常见的测试用例可以通过后执行脚本获取:
六、多种响应参数变量
1、response.raw:原始响应数据
调用示例:
response.raw.status //响应状态码(200、301、404等)
response.raw.responseTime //响应时间(毫秒)
response.raw.type //响应类型(json等)
response.raw.responseText //响应文本2、response.json:json格式的响应数据
调用示例如上面示例:
response.json.data.token //也可以 response.json.data["token"]3、response.headers:响应头
调用示例:
response.headers.server //也可以 response.headers["server"]4、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字段是否是null3、测试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"');八、总结
随着国内越来越多的项目对开发质量和进度的要求提升,在对于接口管理的问题上,越来越多的技术管理者有了更多的期待
除了一键快速生成、导出API文档,对支持前、后端及测试协同开发,进行接口批量测试等要求也越来越迫切
基于对以上痛点的解决,ApiPost成为比Postman更懂中国程序员的一款研发协同工具
Apipost官方链接:https://console.apipost.cn/register?utm_source=10006
版权声明:本文为CSDN博主「网易测试开发猿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:全网详细接口测试ApiPost详细教程(实战),吐血整理_网易测试开发猿的博客-CSDN博客_apipost教程
边栏推荐
- Configurationmanager pose flash
- 同花顺上面开户安全吗
- Is flush app transaction safe
- Dotnet core can also coordinate distributed transactions!
- OpenKruise v1.2:新增 PersistentPodState 实现有状态 Pod 拓扑固定与 IP 复用
- Float float simulates double precision computation on CPU and GPU
- 深耕十年,玄武云科技终于稳坐快消SaaS龙头宝座
- dotnet core 也能协调分布式事务啦!
- [email protected] -199 loaded drug ciprofloxacin
- Lua call principle demonstration (Lua stack)
猜你喜欢

Lua调用原理展示(Lua堆栈)

不止于观测|阿里云可观测技术峰会正式上线

三拾壹- NodeJS簡單代理池(合) 之 MongoDB 鏈接數爆炸了

Redis的使用
![[fruit recognition] fruit recognition based on morphology, including Matlab source code](/img/ea/dcc5a98759927a8cd01e39c4cbb724.png)
[fruit recognition] fruit recognition based on morphology, including Matlab source code

Comptage du réseau | unités de chaque couche du Modèle OSI

Harbor正确密码登录不上去

How to realize face verification quickly and accurately?
![[PHP] brief description and relevant examples of the special class trail for code reuse](/img/6f/fe3b93661276f44d0286199ed6d643.png)
[PHP] brief description and relevant examples of the special class trail for code reuse

C语言与Lua的交互(实践二)
随机推荐
dotnet core 也能协调分布式事务啦!
【 tgcalls】 suivi et débogage des gestionnaires d'appels 2
叁拾柒- JS 在 Canvas 上尝试分形图形 (一) 画了一个普通箱子图
[image enhancement] image enhancement based on sparse representation and regularization with matlab code
[email protected]负载药物环丙沙星
web开发交流,web开发实例教程
常用函数式接口的学习
时间复杂度和空间复杂度
[go]实验包exp简介
[tgcalls] managers who track and debug calls 2
Is Huatai Securities safe? I want to open an account
[机缘参悟-20]:鬼谷子-反应篇-动静之术、说听结合、沉默是金
InfoQ geek media's 15th anniversary solicitation 𞓜 migration of Eureka to Nacos: dual registration and dual subscription model
开发一个软件应用程序需要多少钱?
Comptage du réseau | unités de chaque couche du Modèle OSI
Eight sorting methods (difficulty: heap sort merge sort quick sort)
每日一题-1232. 缀点成线
叁拾贰- NodeJS简单代理池(有完没完?) 之 SuperAgent 使用代理不是 Timeout 的 Timeout
CTF WEB WP杂谈
八大排序方法(难点:堆排序 归并排序 快速排序)