接口测试 接口测试工具 postman

鱼肚白 · April 29, 2016 · Last by Test44 replied at January 31, 2018 · 8728 hits

开始研究使用postman源于在一个测试群里一位大牛说postman在数据包的拦截处理方面很优秀,正好我有个工具是拦截http请求转化为robotframe的自动化用例的,所有就开始了对它的研究使用,实践后发现postman这个工具设计思路非常好,使用起来也很方便,作为接口测试工具甚至可以完成部分自动化工作,所以纪录一下使用心得。

postman安装:
postman的安装就在谷歌应用商店中直接搜索postman,如下图一,然后进行安装,安装后在chrome右上角会出现如图二所示图标

图一


图二

在地址栏中输入chrome://apps后出现如图三所示,点击postman打开postman

图三

postman使用:
首先打开图二中所示图标,打开拦截功能并且填写filter规则,打开postman,开始访问被测对象

postman主题的功能如图四所示

图四
collections区域如图五所示

图五

postman设计最精髓的地方就在于对于接口的持久化保存,它可以根据模块来保存这些接口并且可以保存这些接口在不同入参情况下的响应,这些持久化的接口其实就是另外一种测试用例,postman将它们运用在了接口执行方便

postman runner使用:
1.在接口详情的tests区域编写一些校验条件,如图六所示,编辑完成后保存

图六

2.点击runner打开接口运行区域,如图七所示,选择好要运行的模块或者接口后点击start test,结果如图八所示

图七


图八

实践中的一些问题:
Q.在发送一些请求cookie总是带不上去?

A:经过抓包发现,postman发送出去的请求headers中最多携带8个字段,当cookies所处位置大于8时,就不会被发送,所以这个时候需要删除一些无关紧要的字段如Origin等。应该属于postman的一个bug,具体原因未知,得阅读源码

Q:很多请求是需要登陆的,也就是需要携带cookie的,总不能每个请求都手动去修改cookie吧?
A:postman提供了environments功能,可以把cookie设置成如图九所示,把cookie变量化,而用例中已图十中的参数化后的{{cookie}}来代替,但是现在tests中暂时不能实现变量化

图九


图十

postman用户手册:
http://www.getpostman.com/docs/

共收到 46 条回复 时间 点赞

不错, 期待介绍更多postman的细节

鱼肚白 #2 · May 03, 2016 作者

#1楼 @seveniruby 嗯.postman简单易用,但是设计理念很好。

想问下runner 楼主是花9.99刀自己购买的吗~

学习了

鱼肚白 #5 · May 05, 2016 作者

#3楼 @yiyusixing 不是的,不花钱,免费的功能。图四的左上角,点击就可以

很好奇,曾经玩过chrome的插件开发,是否可以基于postman之上二次开发一套接口测试框架?

太实用了

—— 来自TesterHome官方 安卓客户端

楼主,postman的接口数据的正确性是否与校验呢,还是我只是需要验证接口返回参数,不必验证接口返回参数的值是否正确呢?

#8楼 @allanwendy 你可以验证所有response内容

#9楼 @oscar 因为数据的变化,所以reponse写死的话,不太现实,我跟开发沟通了,现在我们暂时校验接口返回的数据结构即可,不用验证接口返回数据

赞,重新学习的postman

#11楼 @_test 更多功能,等你来体验

#10楼 @allanwendy 我的意思,如果你想验证也是可以的,有些接口返回的数据是固定的,比如搜索接口,返回的结果数据数组长度不能为0

鱼肚白 #14 · May 25, 2016 作者

#6楼 @lose 可以,你安装以后可以在C:\Documents and Settings<$你登陆系统的这个用户名>\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions下面找到并且修改源码,打包安装

鱼肚白 #15 · May 25, 2016 作者

#7楼 @mendeta 谢谢

鱼肚白 #16 · May 25, 2016 作者

#8楼 @allanwendy 接口数据当然可以校验了,postman本身提供了对于返回格式和返回值的校验,包括是否包含,如果是json的话可以精确匹配

鱼肚白 #17 · May 25, 2016 作者

#11楼 @_test 谢谢

鱼肚白 #18 · May 25, 2016 作者

#10楼 @allanwendy postman有个环境变量的概念,但是我试了一下,环境变量只在request和response中生效,在test中没用,不然可以做参数化的

挺详细的

介绍地非常详细

鱼肚白 #22 · June 01, 2016 作者

#21楼 @cesc 谢谢。。

提醒下楼主,postman有两种变量,环境变量和全局变量。
前者针对整个环境起作用,后者只针对某个独立的collection起作用,而且两者都是可以写在tests中做参数化的。
另外的话,像简单的loop循环调用几个request也是支持的,像这种postman.setNextRequest("请求名")

鱼肚白 #24 · June 07, 2016 作者

#23楼 @yusufchang 感谢,学习到了。。在tests中做参数化开始是参照{{param}}的方式引入的,结果无效。。你提供的方式试验了一下是可以的,赞

有代码能力的,可以用httpclient包,上网搜下,对付接口简直如,探囊取物

—— 来自TesterHome官方 安卓客户端

鱼肚白 #26 · June 07, 2016 作者

#25楼 @lamianxiaodian 有。。我们使用的是python的requests

#26楼 @1875884881 啊 谢谢,我一开始版本太老了,那个版本RUNNER好像要9.99刀~~~现在好了,正在努力把所有的接口填上,然后看一下test中参数化的内容,然后看到下面回复你们使用requests。也是在做接口吗?还是在做别的~

鱼肚白 #28 · June 29, 2016 作者

#27楼 @yiyusixing 做接口的,robotframe+jenkins+python做的接口,发包是用的requests做二次封装的关键字。

移动应用的接口能搞么

鱼肚白 #30 · June 29, 2016 作者

#29楼 @kesha0 可以,mac和windows上都可以作为代理,配置相应的IP和port就可以。

楼主,我想请问下,interceptor拦截器功能你是点开就能用了吗?我已经安装了interceptor并开启了,在postman中打开仍一直提示让我先去安装扩展。

鱼肚白 #32 · July 08, 2016 作者

#31楼 @cyy 是的,我是ok的,你的安装方式是什么,我是直接去商店里下载的这两个

#32楼 @1875884881
我是下载了插件,在Google浏览器中通过“加载已解压的扩展程序”加进来的。
是不是一定要从商店下啊,商店进不去😥

#33楼 @cyy 可以不用商店的下载,postman的官网去下载也行,需要***

#34楼 @allanwendy
问题是不会***😂
我先去试试,感谢~

#36楼 @allanwendy
恩恩,可以了,谢谢~😊

我想问一下你那个什么工具怎么把拦截到到http请求直接转化为robotframework的case的

#24楼 @1875884881 求个Q私会,加我下QQ49875183

#38楼 @wanxi3 你好,自己用python写的,集成到ride界面里面的

#40楼 @1875884881 能不能开一贴,讲讲

Keith Mo Postman 做接口自动化测试-1. 入门篇 中提及了此贴 05 Dec 09:58

求加大神qq微信

45Floor has been deleted

提个问:Rre request Script里面请求的返回值怎么取到

Yusufchang 回复

谢谢你,给了我一个思路

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up