接口测试工具
文章目录
- 一、基础知识
- 1.HTTP/1.0 和 HTTP/1.1 的主要区别
- 2.Jsonpath
- 二、接口测试工具
- 1.Postman
- 1>Postman断言
- 2>postman参数化
- 3>获取token值,存为全局变量
- 2.Apifox
- 3.swagger(斯瓦格)
- 4.Jmeter
一、基础知识
1.HTTP/1.0 和 HTTP/1.1 的主要区别
-
HTTP/1.0每个请求和响应都需要建立一个新的 TCP 连接,并且在请求完成后关闭连接;HTTP/1.1,默认是持久连接,除非明确指定关闭连接。
-
HTTP/1.0不强制要求
Host
头;HTTP/1.1强制要求每个请求都包含一个Host
头 -
HTTP/1.0主要支持
GET
和POST
方法。HTTP/1.1支持更多的请求方法,如PUT
、DELETE
、HEAD
、OPTIONS
和TRACE
,从而提供了更丰富的 HTTP 功能。
2.Jsonpath
$:表示根路径;.:表示下一级
$.numbers[1].number
二、接口测试工具
批量查询关注多参
1.Postman
1>Postman断言
// 状态码断言;Status code: Code is 200
pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});
// 通过响应内容,包含的字符串断言;Response body: Contains string
pm.test("断言", function () {pm.expect(pm.response.text()).to.include("\"status\":0");
});
// 通过Json值断言;Response body: JSON value check
// pm.expect(jsonData.msg).to.eql("密码错误");其中jsonData表示json的根路径
pm.test("通过jsonData.msg的值断言", function () {var jsonData = pm.response.json();pm.expect(jsonData.msg).to.eql("密码错误");
});
2>postman参数化
postman本地参数化文件要求:
1、有表头
2、一组数据占一行,一个参数占一列,列与列之间用英文逗号间隔
3、如果有空行,只能有一个,且要放在文件结尾
3>获取token值,存为全局变量
通过Jsonpath获取
//新版本中:responseBody已弃用
//可以使用pm.response.json()或pm.response.text()
// var jsonData = pm.response.json();
var jsonData = JSON.parse(responseBody)
pm.globals.set("token1", jsonData.data.token);
通过正则表达式获取
//最新版:
//reponseBody已弃用
//有,pm.response.text();或 pm.response.json(); var data = pm.response.text();
//var token = responseBody.match(new RegExp('左边界(.+?)右边界'))[1]
var token = data.match(new RegExp('左边界(.+?)右边界'))[1]
pm.globals.set ("token",token);
2.Apifox
界面现代化,操作与Postman大同小异
3.swagger(斯瓦格)
只需要了解即可,只有Java中有
开发人员将api接口写入这个网址,也就不会写接口文档了
4.Jmeter
使用方法参考Jmeter使用教程