接口测试 4. 使用 postman 做接口测试 (一)

solochen84 · 2017年07月25日 · 最后由 solochen84 回复于 2017年08月01日 · 5090 次阅读

经过三篇文章的预热,大家对接口测试和HTTP协议有了一个初步了解,今天咱们切入正题:如何执行HTTP接口测试。包括如下三步:

  1. 构造一条符合要求的HTTP请求消息;
  2. 发给我,我给你回响应;
  3. 你读取HTTP响应,检查响应内容是否正确。

今天我们就讲,如何使用postman发送符合要求的HTTP请求。

how-如何安装postman

postman是chrome浏览器的一个插件,这里不讲如何安装,各位自己百度解决。

how-如何使用postman发送符合要求的HTTP消息

还是用之前的例子:
我提供加法计算的接口,你要给我传递2个数(a和b),我给你返回一个结果。

请求报文可能是:

POST http://192.168.27.184:8081/add HTTP/1.1

Host: 192.168.98.178:8081
Connection: keep-alive
Host: 192.168.98.178:8081
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip,deflate

a=1&b=1

响应报文可能是:

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1
Cache-Control: no-cache
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked

{"sum":2}


使用postman构造这个请求的步骤如下:

  1. 选择请求方法
  2. 输入请求URL
  3. 输入请求参数值
  4. 发送

image

从图中我们可以看到,服务器返回了正确的响应。至此,你已经完成了接口测试的第一条用例。bingo!就是这么简单。

如果你想测试更多的用例,也很简单,a和b传不同的值就好。

补充说明

HTTP请求传参数最常见的有4种方式:

  • get方式,参数值放到url中,如http://192.168.27.184:8081/add?a=1&b=1
  • 表单方式,示例中的“a=1&b=1”放在body中,头部的Content-Type是application/x-www-form-urlencoded
  • json传值,body是:{"a":1,"b":1},头部的Content-Type是application/json
  • xml传值,头部的Content-Type是application/xml

当接口定义用的是不同的传值方式时,只需在postman上做相应修改就好。

总结

今天讲了postman的最简单使用,也补充了一点HTTP请求传参的知识。这里抛出2个问题:

  • 如果没有接口文档,你如何做接口测试?
  • 如果有接口文档,你按照接口文档的定义,使用postman发送了请求,得不到服务器的正常响应,怎么办?

欢迎大家留言讨论。

欢迎关注我公众号“鹿爷聊测试”。

共收到 6 条回复 时间 点赞

平时我也经常用,超级方便~

第一点,没有接口文档那叫攻击,哈哈。
第二点,在确定你发的请求,地址正确、参数正确、加密算法正确、文件正确、服务在线的前提下。拿着你的证据跟开发先沟通,后提bug。

没有接口文档?F12看Network
得不到正确响应,看下服务器返回的状态码,再查自己的URL、参数、方法。

(1)没有接口文档,感觉无法测试呢。各位大神们,会怎么处理呢?
(2)如果自己的url、method, 参数等都是正确的, 那需要找开发聊下,哪里出了问题,是否是bug

  1. 没有接口文档,我一般通过抓消息来解决;
  2. 如果使用postman发送请求得不到正确响应,将postman发的消息抓到,然后将正常是的消息抓到,可以采用消息对比的方式找到差异。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册