geek的技术日志,记录每一次技术思考的闪光点。

使用postman对restful API接口进行自动化测试

前置条件

本文的读者需要有以下知识基础,如果没有,请先了解相关基础知识。

  1. 对http协议有基础的了解,懂得HTTP协议里面的基本POST、GET等操作。
  2. 懂得postman的基础操作,会使用postman对restful接口进行简单的手工测试。
  3. 懂得javascript的基本语法,能看懂基本的javascript脚本代码。

 

主要概念

Collection 

Collection 是 requests的集合,在做完一個测试的時候, 你可以把這次的 request 存到特定的 Collection 里面,如此一來,下次要做同样的测试时,就不需要重新输入。而且一个collection可以包含多条request,如果我们把一个request当成一个test case,那collection就可以看成是一个test suite。通过collection的归类,我们可以良好的分类测试软件所提供的API.而且 Collection 还可以 Import 或是 Share 出來,让团队里面的所有人共享你建立起來的 Collection。

collection本质上就是一个folder,只不过postman里把最顶层的那个folder才叫collection。

Folder

collection下面可以添加folder,folder下面可以继续再增加folder。postman里自动化测试的最小单位是一个folder。

Environment

顾名思义就是环境,一般可以根据需要配置local 、dev、qa、prod等。不同环境下可配置不同参数配置,执行testcase时,一键切换环境即可,不用重新配置写入不同环境的不同参数。

Variables

顾名思义就是参数。主要有Global variable和Environment variable。Global的参数什么时候都能用。Environment的参数 在对应的环境下才生效。

 

实践

step 1 新建一个collection。如下图,打开postman之后,点击箭头1处的图标,便弹出输入框2,输入对应的collection名称,点create保存即可。

step 2 新建一个folder。对着创建的collection,右键-“add folder”,在弹出的对话框输入文件夹名称,点create即可。

step 3 创建一项reqeuset测试。如下图,点箭头1处的加号,在新开的tab里,在箭头2处填上请求的URL地址,箭头3处选择post还是GET请求,在headers 、body里输入对应的HTTP请求参数。最后点击send,即可把请求发出去。如果服务器和你的请求参数都正常,你会在response下面看到服务器返回的结果。

step 4 保存testcase。执行完step3之后,点击send按钮后面的那个save按钮,postman会弹出保存对话框,输入箭头1对应的request Name,选择箭头2对应的collection or folder,再点击save保存即可。保存成功后,点击打开左边collection列表对应的collection,就会看到你刚刚保存的那个testcase。

step 5 批量执行testcase,进行自动化测试。当你保存了多个testcase到一个collection or folder里面之后,便可使用postman的内置功能一次性跑完这些case。方法如下。

首先,把鼠标放到collection上,对应的collection就会出来隐藏的按钮,点击下图箭头1对应的按钮。

第二,点击了箭头1处的按钮之后,弹出如下图所示的页面,点击箭头2处的run,就会打开批量执行testcase的界面(即是collection runner)。

第三,在collection runner界面,如下图,箭头1所指的地方可以选择你需要执行的case的文件夹。选好之后,点击箭头2处的“run xx”。我们选择的那批testcase就会跑起来了。

最后,执行结果如下图。

step 6 通过environment和variable的配置,使得你的testcase “write once, run anywhere”.

step 6.1 environment的配置。同样的一个接口,但是local、dev、qa这些不同环境的url、用户密码这些参数都是不一样的。我们需要通过配置一个叫做环境变量的东西来解决这个问题。如下图,点击1、2打开管理环境变量的界面。

环境的管理界面如下图所示,点击add可以添加一个环境。

点击环境名称(如上图的local),可以编辑不同环境下的不同参数值,编辑界面如下图:

配置好环境变量之后,通过 {{name}} 的格式即可调用相应的环境变量参数。在Headers、Body、Pre-request Script、Tests里都可以使用。常见用法见下图

 

step 6.2 使用脚本配置环境变量。通过6.1中配置的环境变量,已经满足了大部分的接口testcase需求了。但是有些情况的testcase,是需要使用上一个testcase在response中返回的结果来进行测试的。如上图中的token,就需要在测试脚本中获取的了,其配置方式如下:

上图中的脚本使用javascript编写。line 1是获取服务器返回的内容并转换成Json格式。line 5就是把token的值set到环境变量“token”中(设置了之后,在该testcase之后执行的testcase都可以使用该变量)。line 4和line 8则定义了testcase执行结果的成功和失败。

step 6.3 使用随机数。在一些testcase中,某些参数的值是不可重复的,如实名信息不可添加重复的实名名称,需要每次请求都使用不同的值。这个时候,我们可以在Pre-request Script里面使用脚本生成一些随机值给他。如下图所示(生成的值也是set到环境变量里再调用的)。

请求中对参数的调用方式如下图:

 

step 7 规划好你的testcase。一串好的testcase,应该是执行完之后,不会给系统留下任何痕迹的。这就需要我们好好规划好我们的testcase执行顺序了。系统中增删改查这几个功能接口的排序应该是先增(注册、新增相关接口),后改查(列表查询、单个查询、资料编辑、审核等相关功能),最后删。按照这个顺序,全部case完成之后,最后执行删除case,把测试数据删掉。不影响系统的现有数据。

 

至此,使用postman进行自动化测试的主要关键技术点都介绍完了。当然,postman还有其他很多很炫的功能,有兴趣的可以自行了解。

参考资料:

http://www.bayescafe.com/tools/use-postman-to-test-api-automatically.html

https://segmentfault.com/a/1190000005055899

Postman软件安装
Postman使用手册1——导入导出和发送请求查看响应
Postman使用手册2——管理收藏
Postman使用手册3——环境变量
Postman使用手册4——API test

打赏作者

未经允许不得转载:极客技术 » 使用postman对restful API接口进行自动化测试

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址