当前位置:   article > 正文

postman—接口自动化测试_接口测试恐惧

接口测试恐惧

以江阴农商行跳一跳——p1d069cc5为例

一、查看触发排行榜,该活动需要哪些接口

1、免登地址生成:http://activity.m.duibatest.com.cn/test/generateSign

2、进入活动页面:http://activity.m.duibatest.com.cn/autoLogin/autologin

3、刷新首页:http://activity.m.duibatest.com.cn/projectx/p1d069cc5/dump/index.do

4、开始游戏:http://activity.m.duibatest.com.cn/projectx/p1d069cc5/dump/start.do

5、提交游戏:http://activity.m.duibatest.com.cn/projectx/p1d069cc5/dump/submit.do

罗列好接口,传参

可以观察到,免登访问活动排行榜目前无数据

postman的安装使用流程可借鉴:https://www.cnblogs.com/yinjia/p/10122178.html

二、在postman中设置URL、请求方式、参数、参数前置处理机器

  1. 设置URL、请求方式、参数

2、参数的前置处理:可以看到用户uid是随机生成的,所以我们用前置js方法写一个前置处理脚本,生成随机参数

其中用到了随机参数和环境变量的保存,如下图

function random(lower, upper) {

return Math.floor(Math.random() * (upper - lower)) + lower;

}

var nums = random(0,999999)//在前置脚本中编写生成随机数

console.log(nums);

pm.environment.set('num',nums);//将这个值保存成环境变量

3、参数的后置处理:断言、下一个接口的传参;同样使用js方法写一个后置处理脚本,其中后置处理器用到了断言和值的生成、值的传递、环境变量的保存,如下图

//校验响应状态码

pm.test("Status code is 200", function () {

pm.response.to.have.status(200);

});

//值的生成&获取

var jsonData = pm.response.json();

var urls = jsonData.url

console.log(urls)

//值的传递

pm.globals.set("input_url",urls);

后置处理器中处理了进入活动页面的Url

  1. 开始游戏中要加入我们兑吧常用的token

5、开始游戏接口中,又需要用js方法写一个后置处理脚本,使得该接口中的响应值作为提交接口的参数

pm.test("Status code is 200", function () {

pm.response.to.have.status(200);

});

//值的生成&获取

var jsonData = pm.response.json();

var start_id = jsonData.data.startId

console.log(start_id)

//值的传递

pm.globals.set("startId",start_id);

6、提交游戏接口用到了签名的验证过程,所以会比较复杂一些

同样用参数前置处理器对参数进行处理,用前置js方法写一个前置处理脚本,其中用到了生成随机参数、值的传递、md5加密处理方法

//在前置脚本中编写生成随机数

function random(lower, upper) {

return Math.floor(Math.random() * (upper - lower)) + lower;

}

var nums = random(0,500)

console.log(nums);

//将这个值保存成环境变量

pm.globals.set('num',nums);

//获取2个全部变量

score = pm.globals.get("num");

startId = pm.globals.get("startId");

//使用md5加密方式

var md5String =String("score=")+String(score)+String("&startId=")+String(startId)+String("&key=")+String("dui88jynshtyt")

console.log(md5String)

var md5 = CryptoJS.MD5(md5String).toString()

console.log(md5)

pm.globals.set('sign',md5);

三、将测试接口放在一个用例集里,运行这个用例集

  1. 设置用例集运行次数

  1. 点击run、运行测试集、这个时候可以多写入一些用户、实现压测或者多用户模拟的场景

  1. 查看跳一跳页面就有10个用户玩了游戏,并在排行榜列表中了

四、生成测试报告

1、打开终端,安装newman

sudo npm install -g newman

2、检查是否安装成功

newman -v

3、通过Newman跑用例集

newman run ///Users/shemin/Desktop/jiangsu.postman_collection.json

4、安装newman 的 reporter-html生成器,生成测试报告

sudo npm install -g newman-reporter-html

5、用newman 的 reporter-html生成器生成测试报告

newman run ///Users/shemin/Desktop/jiangsu.postman_collection.json -r html

  1. 打开生成的测试报告查看报告

五、实现多用户生成和压力测试

  1. 设置用户数和间隔时间,这里我设置的500用户

  1. 查看用例压测执行情况,更多数据可通过命令查看测试报告

打开活动可以看到页面可以见到200个用户了,但是数据库可查到500多个用户

六、参数化

如果你想使用我们八卦台对应的ID去造数据的话,可以用参数化的方法去实现

  1. 准备好csv文件

APPID_csv.csv 打开就是这样的

  1. 然后设置入参

  1. 选中入参文件

  1. 预览一下自己导入的参数和你写的是否一致

5、执行后查看

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/631868
推荐阅读
相关标签
  

闽ICP备14008679号