在线咨询
QQ咨询
服务热线
服务热线:13125520620
TOP

程序猿必备调试工具postman

发布时间:2018-5-26 浏览:3442

现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。
 
前言
 
 
 
现在很多公司写后端代码和前端代码已经分工很明确了,前后端把接口定义好,然后各自写各自的代码就可以了。那么对于服务端的开发人员来说,写好了代码后,对外提供了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发送请求,请求结果将会在下方显示出来。每次的请求历史数据,会被记录下来,但是经常使用的请求,还是保存一下,这么每次用的时候,选择就行了,及其方便。
 
 
 
另外,最好创建一个账号,这样数据将会永久保存下来,不至于重装了系统或者换了台电脑数据都没了的尴尬。
 
 
 
 
 
保存的时候起个好听的名字
 
 
 
 
 
Header会传输一些我们需要的一些通用的数据,定义好之后,每个接口几乎都是一样的。所以,把这些数据进行预置,这样就不用每新建一个请求,都要重复的添加Header了。
 
 
 
请求的时候,会把请求状态,请求的时间,以及返回的数据大小返回回来。这样一目了然。最常见的status就是200表示成功,400表示未找到资源。500开头的基本都是服务端异常等等。我之前写了一篇很详细的状态说明,请参见“HTTP状态码大全”
 
 
 
 
 
 
 
点击params可以把url里的参数以列表的形式展现出来,方便编写
 
 
 
 
 
还有一种更方便的编辑方式,点击Bulk Edit ,直接修改字符串的方式修改,而且可以复制粘贴,方便迁移到其它地方。而且这个功能在其它参数编辑的地方都适用。
 
 
 
 
 
我们来看看如何发送POST接口
 
 
 
 
 
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("添加成功")
 
    }‍
 
});
 
 
 
 
 
 
 
 
 
 
binary
 
 
 
只能上传一个文件,也不能添加参数。
 
 
 
 
 
压力测试
 
 
 
当你需要验证你的接口的抗压能力的时候,可以点击Runner,进行压力测试
 
 
 
 
 
注意:压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个文件夹,这个文件夹里只有一个要测试的接口。
 
 
 
 
 
点击执行,并发执行了500次。每次再100毫秒内返回结果。
 
 
 
 
 
由于篇幅问题,还有其他功能等下次再讲解吧。
 
 
 
 
 
 
 

TAG
软件定制,软件开发,瀚森HANSEN,辽宁,沈阳,抚顺
0
该内容对我有帮助