全网详细接口测试ApiPost详细教程(实战),吐血整理
目录:导读
- 一、前言
- 二、API 请求响应
- 三、返回Headers
- 四、响应结果分屏展示
- 五、使用断言
- 六、多种响应参数变量
- 1、response.raw:原始响应数据
- 2、response.json:json格式的响应数据
- 3、response.headers:响应头
- 4、response.cookies :响应cookie
- 七、常用断言表达式
- 1、检查response body中是否包含某个string
- 2、检测返回JSON中的某个值是否等于预期的值
- 3、测试response Headers中的某个元素是否存在(如:Content-Type)
- 4、验证Status code(响应码)的值是不是等于200
- 5、验证Response time(请求耗时)是否大于某个值
- 6、验证返回类型是不是json
- 八、总结
一、前言
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字段是否是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"');
八、总结
随着国内越来越多的项目对开发质量和进度的要求提升,在对于接口管理的问题上,越来越多的技术管理者有了更多的期待
除了一键快速生成、导出API文档,对支持前、后端及测试协同开发,进行接口批量测试等要求也越来越迫切
基于对以上痛点的解决,ApiPost成为比Postman更懂中国程序员的一款研发协同工具
全网详细接口测试ApiPost详细教程(实战),吐血整理相关推荐
- 「爬虫教程」吐血整理,最详细的爬虫入门教程
初识爬虫 学习爬虫之前,我们首先得了解什么是爬虫.来自于百度百科的解释: 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息 ...
- 【爬虫教程】吐血整理,最详细的爬虫入门教程~
初识爬虫 学习爬虫之前,我们首先得了解什么是爬虫. 来自于百度百科的解释: 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信 ...
- 腾讯团队实力打造flutter入门教程,吐血整理
前言 这些题目是网友去美团等一线互联网公司面试被问到的题目.笔者从自身面试经历.各大网络社交技术平台搜集整理而成,熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率. 主要分为以下几部分: (1 ...
- 微服务Springcloud超详细教程+实战(二)
微服务Springcloud超详细教程+实战(二) -------------------------------------- 远程调用方式 无论是微服务还是分布式服务(都是SOA,都是面向服务编程 ...
- 全网最详细的Neo4j安装教程
全网最详细的Neo4j安装教程 一.前言 Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是 ...
- Hadoop全分布式集群搭建(全网最详细,保姆级教程)
在上一篇Hadoop环境搭建(全网最详细,保姆级教程)中已经搭建好了一个单机Hadoop环境,接下来搭建全分布式Hadoop集群 首先对Hadoop全分布示集群进行简单介绍和规划 一个集群由一个主机, ...
- 【全栈接口测试进阶系列教程】入门到入职的jmeter接口测试工具实战,接口测试步骤,正则表达式jsonpath,断言,接口加密,beanshell,jdbc,jmeter+ant+jenkins
目录 [本文简介看之前请详细的看完介绍] 本文是全网首发的[全栈接口测试进阶系列教程]jmeter接口测试工具从入门到入职, 接口系列包含 接口测试系列包含所有的接口测试工具入门到入职,如果你喜欢的话 ...
- [转]详细的GStreamer开发教程
详细的GStreamer开发教程 文章目录 详细的GStreamer开发教程 1. 什么是GStreamer? 2. GStreamer架构 2.1 Media Applications 2.2 Co ...
- 详细的GStreamer开发教程
详细的GStreamer开发教程 文章目录 详细的GStreamer开发教程 1. 什么是GStreamer? 2. GStreamer架构 2.1 Media Applications 2.2 Co ...
- 世上最详细的子网划分教程,看完保证会
世上最详细的子网划分教程,看完保证会----亮亮实验室制作<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:offi ...
最新文章
- 第106天:Ajax中同步请求和异步请求
- rsync源目录写法的一点小细节
- python股票自动交易从零开始-python程序化交易编程-python制作自动交易程序!
- 洛谷 P3539 [POI2012]ROZ-Fibonacci Representation 解题报告
- GCC跟NASM联合编译
- 玩够了没,开始奋斗吧?
- leetcode100. 相同的树(dfs)
- 在ASP.NET MVC中实现Select多选
- 解决若要安装 Microsoft Office 2010,需要MSXML 版本 6.10.1129的问题
- 剪切文件_转录组测序技术和结果解读(十六)——可变剪切
- gettext 国际化_如何使用Gettext在Phoenix应用程序中执行本地化
- Android 系统(260)---Android 读取SIM卡参数
- python有趣的简单代码_简单代码一学就会,Python生成GIF动图
- 前端干货:教你轻松去除inline-block元素空隙
- 法向量与切向量的转化
- INT 10H 中断简介
- 优化概率神经网络_贝叶斯神经网络最新综述
- Ip以及主机名称配置
- kubebuilder之一:kubernetes operator工作原理
- 浅谈web前端常用的三大主流框架