本文主要对接口测试的常用工具PostMan的基础使用,作一个简单的总结

PostMan的下载和安装

1. 下载:https://www.postman.com/downloads/
  • 注:下载和安装均无需注册

postman应用AES加密 postman密码_json

2. 安装:一键安装即可,界面如下:

postman应用AES加密 postman密码_软件测试_02

3. 汉化

汉化包链接:https://share.weiyun.com/SvbUaXnT

密码:8mvqek

用法:直接解压文件,将解压后的文件复制到postman安装目录下的resources文件夹下;重启软件即可

postman应用AES加密 postman密码_json_03


汉化结果如下:

postman应用AES加密 postman密码_数据_04

动态关联

1. 创建Collection

点击左上角新建,选择Collection选项卡;

postman应用AES加密 postman密码_数据_05


postman应用AES加密 postman密码_数据_06


输入Collection名称和描述信息(可选),点击创建即可;

postman应用AES加密 postman密码_postman应用AES加密_07


创建结果如下:

postman应用AES加密 postman密码_Data_08


注:由于后面对PostMan进行汉化了,所以后面的界面和语言都变为了中文,请悉知!

2. 创建Request

postman应用AES加密 postman密码_json_09


输入请求名称和描述(可选),选择对应的Collection文件夹,保存即可;

postman应用AES加密 postman密码_软件测试_10


创建的请求显示在左侧列表,对应的集合中:

postman应用AES加密 postman密码_软件测试_11

3. 选择一个被测的API(接口),一般我们做训练时都选择第三方网站的API,这里笔者选择的是一个名叫“作文大全”的API;

附上接口地址https://www.juhe.cn/docs/api/id/187

其API原理是:

  1. 传入一个id的值选择作文查询的类型(1为年级,2为题材,3为字数,4为等级),查询出对应类型下的全部数据;
  2. 在数据里随机获取一个type_id,此时确定了类型和type_id后,即可获取符合对应条件的作文的全部信息
  3. 对应条件的作文信息里包含了作文id,随机获取一个作文id,通过作文id即可查找到对应的作文

postman应用AES加密 postman密码_数据_12


其中我们重点需要关注的是API的接口地址、数据返回格式、请求方式和参数说明;

postman应用AES加密 postman密码_数据_13


回到我们创建的请求,根据上面的接口填写对应的数据,在此之前我们先创建环境变量:

注:由于某些字段很长并且很常用,我们引入环境变量,用于记录频繁使用或者频繁变更的变量;

postman应用AES加密 postman密码_软件测试_14


postman应用AES加密 postman密码_数据_15

填写变量的对应数据:

postman应用AES加密 postman密码_软件测试_16


我们暂时添加这么一些环境变量:

postman应用AES加密 postman密码_postman应用AES加密_17

使用方法如下(其中键key的值也是使用这种原理,不过是API提供的网站生成的(相当于激活码类似的东西),键id的值预请求脚本生成的):

postman应用AES加密 postman密码_数据_18

  1. 第一步:确定随机id、type和tid;预请求脚本如下,其目的是获取键id的值:
//floor()向下取整函数;radom() * a,表示取0-a的随机数
var radom = Math.floor(Math.random() * 4);
//定义一个数组
var Num = [1,2,3,4];
//随机取一个1-4的整数赋值给字段id
pm.globals.set("id",Num[radom]);

postman应用AES加密 postman密码_Data_19

测试脚本如下(其中type用于下一个请求的键的值,tid为键对应的value值):

//创建一个json对象,用于获取json格式的数据
jsonData = pm.response.json();
//获取josn数据里的result的长度
var length = jsonData.result.length;
//随机获取0-length间的一个整数
radom_len = Math.floor(Math.random()*length);
//根据传入的id值获取对应type的值
switch(pm.globals.get("id")){
    case 1:pm.globals.set("type","gradeId");
        //设置type对应的tid的值为全局环境变量
        pm.globals.set("tid",jsonData.result[radom_len].id);break;
    case 2:pm.globals.set("type","typeId");
        pm.globals.set("tid",jsonData.result[radom_len].id);break;
    case 3:pm.globals.set("type","wordId");
        pm.globals.set("tid",jsonData.result[radom_len].id);break;
    case 4:pm.globals.set("type","level");
        pm.globals.set("tid",jsonData.result[radom_len].id);break;
}

选择测试环境为刚才添加的“作文接口Test”环境,之后点击发送;

postman应用AES加密 postman密码_软件测试_20


在下方的中下方的响应框显示获取的数据(一般为json格式):

postman应用AES加密 postman密码_postman应用AES加密_21


2. 根据获取的type、tid获取作文id(zuoid);参数设置如下:

postman应用AES加密 postman密码_postman应用AES加密_22


测试脚本代码如下,目的是为了获取到作文id(zuoid):

//创建json对象
var jsonData = pm.response.json();
//获取list长度,用于随机
var length = jsonData.result.list.length;
var radom_len = Math.floor(Math.random()*length);
//随机选取一个list里的数据的id,即作文id,将其设置为全局变量
pm.globals.set("zuoid",jsonData.result.list[radom_len].id);

发送后的响应结果如下:

postman应用AES加密 postman密码_数据_23


3. 根据上一个请求获取并设置的作文id(zuoid)查找对应的作文:

postman应用AES加密 postman密码_postman应用AES加密_24


点击发送,其响应结果如下:

postman应用AES加密 postman密码_json_25


到这里基本就完成了简单的动态关联测试过程,下面总结一下总体流程:

postman应用AES加密 postman密码_Data_26


就先到这儿,后续学习的成果再分享;