Postman学习(压力测试)

Stella981
• 阅读 1077

Postman下载安装后

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

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

Postman学习(压力测试)

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

Postman学习(压力测试)

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

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

Postman学习(压力测试)

Postman学习(压力测试)

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

Postman学习(压力测试)

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

Postman学习(压力测试)

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

Postman学习(压力测试)

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.1Content-Type:application/x-www-form-urlencodedAccept-Encoding: gzip, deflateHost: api.test.comContent-Length: 21Connection: Keep-AliveCache-Control: no-cachename=互扯程序&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.1Accept-Language: zh-cn,zh;q=0.5Accept-Charset: GBK,utf-8;q=0.7,*;q=0.7Connection: keep-aliveContent-Length: 60408Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXCHost: 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("添加成功")    }‍});

Postman学习(压力测试)

binary(注意了这个格式这里可以上传你的压测数据文件)

PS:压测文件可以是csv格式跟json格式的

这里还可以在Pre-requestScript"中设置环境变量 "username", "password",在Body 中选取"form-data" 格式,输入所需的key-value, value即为变量{{username}}, {{password}}。

postman.setEnvironmentVariable("username",data["username"]);
postman.setEnvironmentVariable("password",data["password"]);

然后再Tests里添加断言

tests["Status code is 200"] = responseCode.code === 200;
tests["Response time is less than 10000ms"] = responseTime < 10000;
console.log(responseTime);

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

Postman学习(压力测试)

压力测试

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

Postman学习(压力测试)

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

Postman学习(压力测试)

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

Postman学习(压力测试)

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这