从接口测试到Newman+postman实现持续集成测试
接口测试
请求方式一般分为:post,get,put,delete等,其中post和get应用较多,因此,应用postman分别对这两个请求方式进行接口测试。
请求类型
get请求
测试前,需认真阅读接口文档,在图中可以发现,该参数为必填,并且为字符串类型
用于获取数据,传参时会将参数代入URL,但不能容纳过多参数。
get传参方式有以下几种:
1、Params参数传递:【输入对应的key及value,即键值对】输入后,会相应的在URL上添加对应的值
2、Body–>raw传递请求体
3、Body–>Form-data:可以隐藏在传参的同时,URL上也不会出现对应的键值对
当接口类型为get,如果参数为必填时,只能用params方式传参
post请求
提交数据,传参类型多样,并且较为安全。
post传参方式大多为–>Body-raw常规传参方式:json方式
常用参数类型:
int,
string,
long,
array[](数组):array[int](数组里面套int) array[string](数组里面套string)
Object{}对象
样例:|
参数名 是否必填 类型
friend 是 object
Friend参数:
Name 是 string
Age 是 int
样例:
"friend": {
"name": "瑶瑶",
"age": 6
}
Object[]:数组
postman接口参数依赖
含义:获取参数作为后续接口使用的参数。
以下方的接口文档为例:
运行后结果
现想要后续的接口可以使用“sign”这个参数,后续接口获取时,需要一级一级的剥开返回报文也就是login_info–>sign
进入该接口下的Tests页面输入:
var data = JSON.parse(responseBody);
//定义data 解析接口返回结果;
var sign = data.login_info.sign;
//定义一个变量并且赋值如果参数在login_info数组中 则需要把data.login_info.sign替换成data.login_info[参数所在位置,如0,1,2,]
pm.globals.set("sign", sign);
//定义一个全局变量,命名为sign,值为上一行取出来的
var name = "小黑";
pm.globals.set("name",name);
编辑后,进入之前的get接口下的Params,填写参数,填写时,value的格式为:{{参数名字}}
加入检查点
在get接口中维护Tests
插入检查点方法有两种:
1、通过字符串匹配,检查是否存在字段,采用的是模糊匹配,返回中包含这个内容即代表检查通过
2、通过jsonpath获取到具体的值来检查与预期结果是否一致,采用的是完全匹配
其中的eql为全等模式
或
var jsonData = pm.response.json();
tests[“stu_info的第一条数据id为30”] = jsonData.stu_info[0].id === 30;
tests[“stu_info的第2条数据id为20”] = jsonData.stu_info[1].id === 20
运行
添加相应的name文件,运行里面的测试数据
数据:name
小黑
小白
小安
运行结果如下
接口测试用例
编写接口测试用例时,需要从以下几个方向进行编写
方向 | 内容 |
---|---|
功能 | 功能是否正常 |
功能是否按照接口文档实现 | |
逻辑 | 是否是依赖业务(如支付的前提是需要先登录) |
异常 | 参数异常 |
数据异常 | |
安全 | cookie |
header | |
唯一识别码(移动端接口测试使用) | |
Newman+postman持续集成测试
安装Newman
安装前,需要先安装node.js,如果电脑是win7系统,则安装时候,需要安装node13版本以下的,我的电脑是win7,安装的是node v12.16.1
【 链接:https://pan.baidu.com/s/1EEvJOz2lKu2wD6Bl0NGL5w 提取码:9780】
安装后即可安装Newman
安装过程参考:https://blog.csdn.net/Gchen00/article/details/88823253
Newman执行脚本
由于windows系统没办法直接执行Linux命令,因此需要安装git来作为辅助
安装git后,进入git.cmd
输入命令:下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
newman run 导出的json文件所在位置
运行结果