postman接⼝测试和压⼒测试
postman接⼝测试和压⼒测试
KS
Knowledge Sharing
知识分享
现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本⽂能学到知识,请把知识与别⼈分享。
前⾔
现在很多公司写后端代码和前端代码已经分⼯很明确了,前后端把接⼝定义好,然后各⾃写各⾃的代码就可以了。那么对于服务端的开发⼈员来说,写好了代码后,对外提供了API,这时候没有页⾯可以调⽤调试,如果等着客户端写完代码再测试的话,那样⼯作的效率是及其低下的。那么服务端要学会模拟客户端的调⽤,来调试⾃⼰的代码,提早发现问题,这样后续跟客户端进⾏联调的时候,就⼤⼤提⾼了效率。
我们今天讲讲Postman模拟客户端调试⼯具,这是我平时⼯作中最常⽤的⼯具之⼀。
Postman是⼀款功能强⼤的⽹页调试与发送⽹页HTTP请求的Chrome插件。它只要在Chrome⾥安装⼀个插件即可完成强⼤的功能。
但是由于2018年初chrome停⽌对chrome应⽤程序的⽀持,你的postman可能⽆法正常使⽤了。⽬前chrome应⽤商店能使⽤的就是chrome 扩展程序和主题背景。
根据⾃⼰的操作系统,下载不同的版本即可。
官⽹需要FQ才能下载,所以我提前下载下来,⼩伙伴们直接在回复“postman”即可获取下载地址。包括windows版本和mac版本。如果有需要linux版本的话,可以给我留⾔,我帮你下载。
Postman介绍
下⾯是在⽹上随便抓了⼀个请求地址来做演⽰,把请求地址填⼊地址栏,此请求为GET请求。点击Send发送请求,请求结果将会在下⽅显⽰出来。每次的请求历史数据,会被记录下来,但是经常使⽤的请求,还是保存⼀下,这么每次⽤的时候,选择就⾏了,及其⽅便。
另外,最好创建⼀个账号,这样数据将会永久保存下来,不⾄于重装了系统或者换了台电脑数据都没了的尴尬。
保存的时候起个好听的名字
Header会传输⼀些我们需要的⼀些通⽤的数据,定义好之后,每个接⼝⼏乎都是⼀样的。所以,把这些数据进⾏预置,这样就不⽤每新建⼀个请求,都要重复的添加Header了。
请求的时候,会把请求状态,请求的时间,以及返回的数据⼤⼩返回回来。这样⼀⽬了然。最常见的status就是200表⽰成功,400表⽰未到资源。500开头的基本都是服务端异常等等。我之前写了⼀篇很详细的状态说明,请参见“”
点击params可以把url⾥的参数以列表的形式展现出来,⽅便编写
还有⼀种更⽅便的编辑⽅式,点击Bulk Edit ,直接修改字符串的⽅式修改,⽽且可以复制粘贴,⽅便迁移到其它地⽅。⽽且这个功能在其它参数编辑的地⽅都适⽤。
我们来看看如何发送POST接⼝
form-data、x-www-form-urlencoded、raw、binary的区别
x-www-form-urlencoded
当⽤户通过form表单提交数据的时候,例如:
<form method="post"action="st/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: st
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="st/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: st
我们看到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("添加成功")
}
});
binary
只能上传⼀个⽂件,也不能添加参数。
压⼒测试
当你需要验证你的接⼝的抗压能⼒的时候,可以点击Runner,进⾏压⼒测试
注意:压⼒测试只能以⽂件夹的⽅式执⾏多个接⼝,不能单独执⾏,如果想要测试某⼀个接⼝,就创⼀个⽂件夹,这个⽂件夹⾥只有⼀个要测试的接⼝。
点击执⾏,并发执⾏了500次。每次再100毫秒内返回结果。
由于篇幅问题,还有其他功能等下次再讲解吧。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论