• 15
  • 16
分享
  • postman压力测试——软件测试圈
  • 北极 2021-10-09 11:35:58 字数 2396 阅读 1882 收藏 16

今天公司的门锁设备可能需要压力测试,提供的接口API接口需要压力测试。

一、postman准备

其实也没有什么好准备的,唯一就是有些变量不能写死了,需要随机一个,然后再请求。

1.jpg

{{}}包裹的都是要随机的参数,前面headers的设置今天就不讲了,要知道的可以看之前的文章。

然后这块因为随机东阿u是有规则的,所以还是一样直接在Pre-requestScript这个Tab里写

postman.clearGlobalVariable("permissionBegin");
postman.clearGlobalVariable("permissionEnd");
postman.clearGlobalVariable("Authorization");
postman.clearGlobalVariable("timestamp");
var heads = request.headers;
//console.log(heads);
var clientId = heads.clientid;
//console.log("---clientId:"+clientId);
var secret = "xxxxx";
var ts = Math.round(new Date().getTime());
//console.log("---ts:"+ts)
postman.setGlobalVariable("timestamp",ts);
var signParm = xxxxxxxxxxxxxxxxxxx;  //要加密的串,按照大家自己公司的加密规则算
var sign = CryptoJS.SHA1(signParm).toString();
//console.log("------------Authorization:"+sign);
postman.setGlobalVariable("Authorization",sign);
var permissionBegin = ts;
var permissionEnd = ts + 1000*60*60*24;
console.log("------------permissionBegin:"+permissionBegin);
console.log("------------permissionEnd:"+permissionEnd);
var userNo = Math.floor(Math.random()*99) + 1;
if(userNo < 10){
    userNo = "0" + userNo;
}
var passwordNo = "0" + (Math.floor(Math.random()*8) + 1);
var password = "";
for(var i = 0;i < 6;i++){
    var tmpPwd = Math.floor(Math.random()*10);
    password += tmpPwd;
}
console.log("userNo:"+userNo+"--passwordNo:"+passwordNo+"--password:"+password);
postman.setGlobalVariable("userNo",userNo);
postman.setGlobalVariable("passwordNo",passwordNo);
postman.setGlobalVariable("password",password);
postman.setGlobalVariable("permissionBegin",permissionBegin);
postman.setGlobalVariable("permissionEnd",permissionEnd);

二、断言(Tests这个Tab)

这里所谓的断言,其实就是用来判断接口是否请求成功的。我们这个code返回为20000就表示请求成功。所以断言如下:

pm.test('测试接口请求是否成功',function(){
    var resStr = pm.response.text();
    console.log(resStr);
    var resJson = JSON.parse(resStr);
    var reCode = resJson.CODE;
    console.log(reCode);
    pm.expect(reCode).to.include("20000");
});

要知道更多的断言写法可以看官方文档。

特别说明:

如果不写断言,那接口请求可能就会报错,如图:

2.jpg

三、压力测试方法

3.jpg

特别说明:

压测的接口必须放在collection里,或者选择一个文件夹,里面放collection导出的文件

Environment输入一个名字

Iterations压测次数(接口请求次数)

Delay间隔时间

下面2个默认就好,然后点击StartRun

四、效果

4.jpg

成功失败次数都可以看到,这个失败次数就是基于你写的断言判断的。有人说那随机的参数我看不到啊,ok,可以告诉你此种情况下postman的console是依然可以打印你console.log的日志的。你可以从这里看到你的参数,甚至可以复制出来分析。

ok,到这里就分享完成了,唯一要说的是,我这里打印了时间戳,发现就算我把间隔时间设置为0,也做不到多线程方式的压力测试,所以如果对并发有要求的话,可以多找几个人一起跑postman,或者用jmater。也许postman也有我还没发现,那就下次用到了再告诉大家吧。


作者:肥仔哥哥1930

原文链接:https://blog.csdn.net/zwrlj527/article/details/89524356

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   前言  我们在做自动化时,当自动化测试用例编写完成后,都会想着将其自动执行程序,或者说通过定时的形式进行执行我们的自动化测试程序,这样才能真正意义上实现自动化测试。哪么大家知道都有哪些方法可以帮助我们实现这个功能吗?接下来小编就简单介绍下集中如何定时执行我们的自动化测试用例程序。  Jenkins  说到定时任务,肯定有人想到jenkins,没错,jenkins是一款持续集成的工具,其中里面就有一个小功能构建定时器,可以很好的帮助我们实现这个功能。  使用方法  1.通过进入到对应的测试项目内中,然后点击configure(配置)进入其页面中。  2.配置页面中的Build Trigger...
            0 0 1334
            分享
          •   据泄密者 Majin Bu 称,苹果将于明天推出第11代基础款iPad。Majin Bu 声称,新款 iPad 将采用与第 10 代机型相同的设计,而且配件"将完全兼容"。上周,同一位泄密者声称苹果将首次推出带有可互换磁性笔尖的第三代 Apple Pencil,而今天的传言是在有关苹果明天可能推出的产品的相互矛盾的报道之后出现的。  彭博社的马克-格尔曼(Mark Gurman)周日表示,虽然新款 iPad正在开发中,但预计本月不会推出新机型,而 9to5Mac 和 Supercharged News 的报道则称,苹果计划最快于周二推出新款 iPad mini、iPad...
            0 0 923
            分享
          • 如今许多公司都拥有面向全球受众的软件产品(网站或APP)。其中最棘手的部分就是提供吸引目标市场地区用户的使用体验。在为这个目标进行产品设计时,会遇到国际化和本地化。显然国际化测试和本地化测试之间存在差异,因为测试人员看问题的角度是会因为不同地区发生变化的。国际化和本地化的目标是相同的,很多做法听起来很相似,但实际上,它们之间有很多区别。应该有效地使用测试自动化来确保产品开发得到万无一失的质量保障。作为Selenium自动化测试的一部分,国际化测试和本地化测试执行策略也有很大不同。在本文中,我们还将关注国际化和本地化,从中学习相关基础知识,进一步帮助规划和制定与目标市场相一致的自动浏览器测试策略...
            0 0 470
            分享
          •   冒烟测试,刚进公司就接触到了。只是刚开始一直没有体会到冒烟的含义和精髓,一直以为是冒烟测试就是把待测产品的主要功能测试一下就行了。后面回想一下,不是那么回事的。  冒烟测试源自硬件行业,对一个硬件或者硬件组件改动后,直接给设备加电,看看设备会不会冒烟,没冒烟,就表示待测组件是通过了测试。  在软件开发过程中,一直有高内聚,低耦合这样的说法,各个功能模块之间的耦合还是存在的,因此一个功能的改动,还是会影响到其他功能模块。  因此在开发人员修复了先前测试中发现的bug后,想知道这个bug的修复是否会影响到其他功能模块,需要做的就是冒烟测试。  搞清楚冒烟测试的起源,冒烟测试的目的后,不难想到,...
            0 0 2118
            分享
      • 51testing软件测试圈微信