精华内容
下载资源
问答
  • postman 压力测试

    2021-05-28 11:12:12
    postman接口压力测试,串行。 首先 :将接口写好,test里写参数提取扭转。。。。不细说了 运行找的入口: iterations配置循环之行计划次数。。。。

    postman接口压力测试,串行。

    首先	:将接口写好,test里写参数提取扭转。。。。不细说了
    

    运行找的入口:

    在这里插入图片描述

    在这里插入图片描述

    iterations配置循环之行计划次数。。。。

    展开全文
  • postman压力测试

    万次阅读 2019-04-25 20:32:55
    今天公司的门锁设备可能需要压力测试,提供的接口API接口需要压力测试。 一、postman准备 其实也没有什么好准备的,唯一就是有些变量不能写死了,需要随机一个,然后再请求。 {{}}包裹的都是要随机的参数,...

    序:

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

    一、postman准备

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

    {{}}包裹的都是要随机的参数,前面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");
    });

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

    特别说明:

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

    三、压力测试方法

    特别说明:

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

    Environment输入一个名字

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

    Delay间隔时间

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

    四、效果

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

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

     

     


     

    展开全文
  • postman接口测试和压力测试

    万次阅读 多人点赞 2018-06-26 17:33:27
    KSKnowledge Sharing知识分享 现在是资源共享的时代...那么对于服务端的开发人员来说,写好了代码后,对外提供了API,这时候没有页面可以调用调试,如果等着客户端写完代码再测试的话,那样工作的效率是及其低下的...
    KS

    Knowledge Sharing

    知识分享

        现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。

    前言


    现在很多公司写后端代码和前端代码已经分工很明确了,前后端把接口定义好,然后各自写各自的代码就可以了。那么对于服务端的开发人员来说,写好了代码后,对外提供了API,这时候没有页面可以调用调试,如果等着客户端写完代码再测试的话,那样工作的效率是及其低下的。那么服务端要学会模拟客户端的调用,来调试自己的代码,提早发现问题,这样后续跟客户端进行联调的时候,就大大提高了效率。


    我们今天讲讲Postman模拟客户端调试工具,这是我平时工作中最常用的工具之一。


    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它只要在Chrome里安装一个插件即可完成强大的功能。


    但是由于2018年初chrome停止对chrome应用程序的支持,你的postman可能无法正常使用了。目前chrome应用商店能使用的就是chrome扩展程序和主题背景。


    不过Postman也提供了应用程序的下载。https://www.getpostman.com/apps

    根据自己的操作系统,下载不同的版本即可。


    官网需要翻墙才能下载,所以我提前下载下来,小伙伴们直接在公众号回复“postman”即可获取下载地址。包括windows版本和mac版本。如果有需要linux版本的话,可以给我留言,我帮你下载。


    Postman介绍


    下面是在网上随便抓了一个请求地址来做演示,把请求地址填入地址栏,此请求为GET请求。点击Send发送请求,请求结果将会在下方显示出来。每次的请求历史数据,会被记录下来,但是经常使用的请求,还是保存一下,这么每次用的时候,选择就行了,及其方便。


    另外,最好创建一个账号,这样数据将会永久保存下来,不至于重装了系统或者换了台电脑数据都没了的尴尬。


    640?wx_fmt=png


    保存的时候起个好听的名字


    640?wx_fmt=png


    Header会传输一些我们需要的一些通用的数据,定义好之后,每个接口几乎都是一样的。所以,把这些数据进行预置,这样就不用每新建一个请求,都要重复的添加Header了。


    请求的时候,会把请求状态,请求的时间,以及返回的数据大小返回回来。这样一目了然。最常见的status就是200表示成功,400表示未找到资源。500开头的基本都是服务端异常等等。我之前写了一篇很详细的状态说明,请参见“HTTP状态码大全


    640?wx_fmt=png


    640?wx_fmt=png


    点击params可以把url里的参数以列表的形式展现出来,方便编写


    640?wx_fmt=png


    还有一种更方便的编辑方式,点击Bulk Edit ,直接修改字符串的方式修改,而且可以复制粘贴,方便迁移到其它地方。而且这个功能在其它参数编辑的地方都适用。


    640?wx_fmt=png


    我们来看看如何发送POST接口


    640?wx_fmt=png


    form-data、x-www-form-urlencoded、raw、binary的区别


    x-www-form-urlencoded


    当用户通过form表单提交数据的时候,例如:


    <form method="post"action="http://api.test.com/user" >

       <inputtype="text" name="name">

       <inputtype="text" name="age">

    </form>


    提交时会向服务器端发出这样的数据(已经去除部分不相关的头信息),数据如下:


    POST /user HTTP/1.1

    Content-Type:application/x-www-form-urlencoded

    Accept-Encoding: gzip, deflate

    Host: api.test.com

    Content-Length: 21

    Connection: Keep-Alive

    Cache-Control: no-cache

    name=互扯程序&age=18


    它的Content-Type是application/x-www-form-urlencoded,这表示消息内容会经过URL编码


    form-data


    当需要上传文件(可以上传多个文件),并且有参数同时传递的时候,选择这个选项可以上传文件。

    举个例子


    <form method="post"action="http://api.test.com/user/upload.do" enctype=”multipart/form-data”>

       <inputtype="text" name="desc">

       <inputtype="file" name="pic">

    </form>


    浏览器将会发送以下数据:


    POST /user/upload.do HTTP/1.1

    Accept-Language: zh-cn,zh;q=0.5

    Accept-Charset: GBK,utf-8;q=0.7,*;q=0.7

    Connection: keep-alive

    Content-Length: 60408

    Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC

    Host: api.test.com


    我们看到Content-Type:multipart/form-data;


    当需要上传数据的时候,必须设置enctype=“multipart/form-data”,


    enctype:规定在发送到服务器之前应该如何对表单数据进行编码,他有如下的三个值:


    1. application/x-www-form-urlencoded。默认的编码方式。所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。

    2. multipart/form-data 。 指定传输数据为二进制类型,比如图片、mp3、文件。 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

    3. text/plain。纯文体的传输。空格转换为 “+” 加号,但不对特殊字符编码。


    其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x- www-form-urlencoded",所以上面注册用户的时候虽然没写,其实默认加上了。


    raw


    当需要给服务端传递json,xml等数据的时候选择raw,当选择了raw的时候,header里会自动加上

    Content-Type: application/json


    例如:


    $.ajax({

       url:"/user/",

       data:JSON.stringify(user),

       method:"POST",

       contentType:"application/json",

       success: function(res){

           console.info("添加成功")

       }

    });





    640?wx_fmt=png


    binary


    只能上传一个文件,也不能添加参数。


    640?wx_fmt=png


    压力测试


    当你需要验证你的接口的抗压能力的时候,可以点击Runner,进行压力测试


    640?wx_fmt=png


    注意:压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个文件夹,这个文件夹里只有一个要测试的接口。


    640?wx_fmt=png


    点击执行,并发执行了500次。每次再100毫秒内返回结果。


    640?wx_fmt=png


    由于篇幅问题,还有其他功能等下次再讲解吧。

    展开全文
  • Postman接口与压力测试实例 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。 1、环境变量和全局变量设置 环境变量可以使用在以下地方: ...

    下载地址:http://getpostman.com

    Postman接口与压力测试实例

     Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。

    1、环境变量和全局变量设置

    环境变量可以使用在以下地方:

    • URL
    • URL params
    • Header values
    • form-data/url-encoded values
    • Raw body content
    • Helper fields

    先设置好变量名及数值后,接下来就可以调用环境变量名,例如:

    key对应的values,填写{{address}},注意需要用双花括号引用。

    全局变量设置方法跟环境变量一样,点击"Globals" 后就会出现添加环境变量类似的页面,进行变量和值的设置。

     

    全局变量设置应用于整个(Collection)中的请求。

    GET 和POST 的区别:

    • GET 使用URL 或Cookie 传参,而POST将数据放在Body 中。
    • GET的URL 在长度上会有限制,而POST没有。
    • POST比GET相对安全,因为在地址栏不可见。
    • 一般POST请求用来获取数据,POST请求用来发送数据。

    2、Get请求:

     

    参考开发提供的接口设计文档,提供传参数据录入。

    3、post请求:

    如常见基本认证的登录用的较多,用户名和密码也可以通过设置的环境变量获取。Postman支持不同的认证机制如: Basic、Digest、OAuth等),支持收到响应语法高亮(HTML\JSON\XML等)。

     

    下面举一个添加发布会接口例子开展:

    选择form-data方式传参发送。

    一、Body:

    1. form-data
      就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
    2.x-www-form-urlencoded
      就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对
    3.raw
      可以上传任意格式的文本, 可以上传text、 json、 xml、 html等
     4.binary
       相当于Content-Type:application/octet-stream 只可以上传二进制数据,通常用来上传文件,由于没有键值,所以, 一次只能上传一个文件。

     二、Pre-requestScript 的使用

     对于环境变量和全局变量的使用,除了上面所讲的方法外,也可以用Pre-requestScript 方法。

    以login接口为例,在"Pre-requestScript"中设置环境变量 "username", "password",在Body 中选取"form-data" 格式,输入所需的key-value, value即为变量{{username}}, {{password}}。
     
    三、Tests使用(断言)
    所谓断言,主要用于测试返回的数据结果进行匹配判断,匹配成功返回PASS,失败返回FAIL。
    下图方法一,直接点击右侧例子函数,会自动生成出现在左侧窗口脚本,只需修改数据即可。
    方法二:直接自己写脚本,如下图所示:
    复制代码
     常用tests用法如下:
    
    1.检查response body中是否包含某个string
    tests["Body matches string"] = responseBody.has("string_you_want_to_search");
    
    注意:"Body matches string" 需唯一。
    
    2.检测JSON中的某个值是否等于预期的值
    var data = JSON.parse(responseBody);
    tests["Your test name"] = data.value === 100;
    
    JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。 
    
    如:检查json中某个数组元素的个数(这里检测programs的长度)
    var data = JSON.parse(responseBody);
    tests["program's lenght"] = data.programs.length === 5;
    
    3.检查response body是否与某个string相等
    4.转换XML body为JSON对象
    var jsonObject = xml2Json(responseBody);
    
    tests["Body is correct"] = responseBody === "response_body_string";
    
    5.测试response Headers中的某个元素是否存在(如:Content-Type)
    tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); 
    //getResponseHeader()方法会返回header的值,如果该值存在
    
    或者: 
    
    tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
    上面的方法,不区分大小写。下面的方法,要区分大小写。
    
    6.验证Status code的值
    
    tests["Status code is 200"] = responseCode.code === 200;
    
    7.验证Response time是否小于某个值
    tests["Response time is less than 200ms"] = responseTime < 200;
    
    8.name是否包含某个值
    tests["Status code name has string"] = responseCode.name.has("Created");
    
    9.POST 请求的状态响应码是否是某个值
    tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
    
    10.很小的JSON数据验证器
    
    var schema = {
    
    "items": {
    
    "type": "boolean"
    
    }
    
    };
    
    var data1 = [true, false];
    
    var data2 = [true, 123];
    
    console.log(tv4.error);
    
    tests["Valid Data1"] = tv4.validate(data1, schema);
    
    tests["Valid Data2"] = tv4.validate(data2, schema);
    复制代码

    4、传参场景(比如测试登录接口需要不的账号,密码)

    在接口测试过程中,有的时候需要构建多组同类型数据测试(正常数据,异常数据),当然没必要写多条测试用例,可使用CSV格式传参
    举个例子,在测试用户登录接口的时候,需要用户输入相应的手机号和密码
    那么,需要构建的测试数据有:手机号&密码正确,手机号正确&密码错误,手机号错误&密码正确,手机号为空&密码不为空,手机号正确&密码为空,手机&密码均为空。
    如post请求:/api/login?phone={{phone}}&password={{password}}
    a、可本地创建一个txt文档,并编辑数据,数据的头部必须参数名称保持一致,也就是phone和password,数据如下:

    b、然后选择批量运行,即collection runner,操作如下:

    数据预览图,如下:

    c、最后点击运行就OK,可以在collection runner->Run Results查看运行结果。

    5、压力测试

    压力测试只能以文件夹的方式执行多个接口,不能单独执行。

     

    设置并发10次。执行后结果:

     以上是postman基本操作总结。具体详细可参考官方样例:https://learning.getpostman.com/docs/postman/scripts/test_examples/

     

    作者:YinJia
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    转载于:https://www.cnblogs.com/yangguanghuayu/p/10968753.html

    展开全文
  • 通过Postman实现压力测试

    千次阅读 2020-10-31 15:01:58
    通过Postman实现压力测试前言步骤建立分组编写脚本配置参数执行 前言 基于联调测试中存在相关接口的并发访问,会导致接口性能急速降低。为方便定位问题以及后序建立相关测试方案。需要开发相关并发测试的用例。 ...
  • postman压力测试

    2019-05-05 18:57:00
    压力测试 当你需要验证你的接口的抗压能力的时候,可以点击Runner,进行压力测试 注意:压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个文件夹,这个文件夹里...
  • 1.打开postMan新建测试接口 2.点击右边保存,选择一个文件集合,如果没有就创建,然后保存 3.在这里可以看到保存的方法 4.这 5.点击运行 出现该界面 勾选需要测试的接口即可
  • Postman 接口压力测试一、准备二、压力测试步骤三、导出csv文件 一、准备 1.1 下载Postman 软件 postman下载https://www.postman.com/ 1.2 首先把要进行压力测试的接口,进行测试,显示没有问题,状态为200 二、...
  • postman 进行压力测试

    2019-06-11 17:56:00
    https://www.cnblogs.com/yinjia/p/10122178.html 转载于:https://www.cnblogs.com/liangb/p/11005112.html
  • Postman接口&压力测试

    2019-09-29 21:58:43
    Postman接口与压力测试实例 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。 1、环境变量和全局变量设置 环境变量可以使用在以下地方: URL URL...
  • 使用Postman进行简单压力测试

    千次阅读 2019-10-22 11:15:41
    使用Postman可以对服务端接口进行简单的压力测试
  • 在有些时候,我们需要对接口进行压力测试,下面简单介绍下postman和jmeter在这两方面的应用。 postman postman是支持压力测试的,下面列举一个简单的最佳实践: postman压力测试是基于collection的,不多说,...
  • Postman下载安装后 下面是在网上随便抓了一个请求地址来做演示,把请求地址填入地址栏,此请求为GET请求。点击Send发送请求,请求结果将会在下方显示出来。每次的请求历史数据,会被记录下来,但是经常使用的请求,...
  • postman进行简单压力测试 下面是压测数据源,支持json和csv两个格式,如果包含有中文,请将文件编码改为UTF-8(否则请求中文会乱码) csv格式数据如下(txt文件): json格式如下: [ { ...
  • 注意:压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个文件夹,这个文件夹里只有一个要测试的接口。 二、点击执行,并发执行100次 三、运行结果如下,可以点击run ...
  • 对于系分的项目,我使用了postman做接口测试,用jmeter做压力测试。下面来谈谈这两个工具的使用方法。 Postman postman是一款很方便的接口测试工具,有app也有chrome插件,它可以模拟用户发起的各类HTTP请求,...
  • 注意:postman可以做接口的性能测试和压力测试。 当你需要验证你的接口的抗压能力的时候,可以点击Runner,进行压力测试压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 204
精华内容 81
关键字:

postman压力测试