一、Postman简介
Postman是一种常用的接口测试工具,可以发送几乎所有类型的HTTP请求。Postman适用于不同的操作系统,PostmanMac、WindowsX32、WindowsX64、Linux系统,还支持Postman浏览器扩展程序、PostmanChrome应用程序等。
二、为什么选择Postman?
如今,Postman的开发者已超过千万,选择使用Postman的原因如下:
简单易用-要使用Postman,我们只需登录自己的账户,在电脑上安装了Postman应用程序,就可以方便地随时随地访问文件。
使用集合-Postman允许用户为他们的API调用创建集合。每个集合可以创建子文件夹和多个请求。这有助于组织测试结构。
多人协作-可以导入或导出集合和环境,从而方便共享文件。直接使用链接还可以用于共享集合。
创建环境-创建多个环境有助于减少测试重复(DEV/QA/STG/UAT/PROD),因为可以为不同的环境使用相同的集合。这是参数化发生的地方,将在后续介绍。
创建测试-测试检查点(如验证HTTP响应状态是否成功)可以添加到每个API调用中,这有助于确保测试覆盖率。
自动化测试-通过使用集合Runner或Newman,可以在多个迭代中运行测试,节省了重复测试的时间。
调试-Postman控制台有助于检查已检索到的数据,从而易于调试测试。
持续集成-通过其支持持续集成的能力,可以维护开发实践。
三、下载Postman
由于2018年初Chrome停止对Chrome应用程序的支持,Postman插件可能无法正常使用了。目前Chrome应用商店能使用的就是Chrome扩展程序和主题背景。
官网下载请联系本站客服
四、Postman工作界面参数解读
New-在这里创建新的请求、集合或环境;还可以创建更高级的文档、MockServer和Monitor以及API。
Import-这用于导入集合或环境。有一些选项,例如从文件,文件夹导入,链接或粘贴原始文本。
Runner-可以通过CollectionRunner执行自动化测试。后续介绍。
OpenNew-打开一个新的标签,Postman窗口或Runner窗口。
MyWorkspace-可以单独或以团队的形式创建新的工作区。
Invite-通过邀请团队成员在工作空间上进行协同工作。
History-所有秦秋的历史记录,这样可以很容易地跟踪你所做的操作。
Collections-通过创建集合来组织你的测试套件。每个集合可能有子文件夹和多个请求。请求或文件夹也可以被复制。
Requesttab-这将显示您正在处理的请求的标题。默认对于没有标题的请求会显示“UntitledRequest”。
HTTPRequest-单击它将显示不同请求的下拉列表,例如GET,POST,COPY,DELETE等.在测试中,最常用的请求是GET和POST。
RequestURL-也称为端点,显示API的URL。.
Save-如果对请求进行了更改,必须单击save,这样新更改才不会丢失或覆盖。
Params-在这里将编写请求所需的参数,比如Key-Value。
Authorization-为了访问api,需要适当的授权。它可以是Username、Password、Token等形式。
Headers-请求头信息
Body-请求体信息,一般在POST中才会使用到
Pre-requestScript-请求之前先执行脚本,使用设置环境的预请求脚本来确保在正确的环境中运行测试。
Tests-这些脚本是在请求期间执行的。进行测试非常重要,因为它设置检查点来验证响应状态是否正常、检索的数据是否符合预期以及其他测试。
Settings-最新版本的有设置,一般用不到。
五、如何发起GET请求?
Get请求用于从指定的URL获取信息,不会对端点进行任何更改。
在这里我们使用如下的URL(我的微信小程序首页数据接口)作为演示:
http://192.168.0.111:8082/wx/home/index
选择HTTP请求方式为GET
在URL区域输入链接
点击“Send”按钮
你将看到下方返回200状态码
在响应内容里接收到错误码(errno)为0,即请求测试成功。
六、如何发起POST请求?
Post请求与Get请求不同,因为存在用户向端点添加数据的数据操作。
在这里我们使用如下的URL(我的某程序账号登录数据接口)作为演示:
{{kmsv}}api/index/login
选择HTTP请求方式为POST
在URL区域输入链接
选中raw选项,选择请求体格式为JSON
输入请求体参数
点击Send
你将看到下方返回200状态码
在响应内容里接收到返回代号(code)为0,即请求测试成功。
七、如何将请求参数化?
数据参数化是Postman最有用的特征之一。我们可以将使用到的变量进行参数化,而不是使用不同的数据创建相同的请求,这样会事半功倍,简洁明了。
这些数据可以来自数据文件或环境变量。参数化有助于避免重复相同的测试,可用于自动化迭代测试。
假如在我的小程序接口中,有首页数据接口、分类目录接口、微信登录接口、账号登录接口等等,它们请求的都是同一个域名路径,那么在请求地址中我们每次都得带上这个域名路径,又假设某一天我更换了域名,那么这几十个接口的地址都得重新修改,这势必会给我们测试带来巨大麻烦!
在坊间,本着“能少写,绝不多写的原则”,Postman引入了参数化的概念。例如上边介绍的小程序请求域名路径重复的问题,我们可以将域名路径改为全局参数:
点击右上角的“小眼睛“
在Globals栏点击Edit
在INITIALVALUE下输入域名路径
在VARIABLE下输入该域名的全局变量名称
点击Save保存
在请求地址栏中将域名路径替换为{{WxApiRoot}}(注意:格式为双大括号包裹上全局变量名称)
这样既解决了重复写入相同数据的问题,又给我们日后修改带来便利
八、如何创建PostmanTests?
PostmanTests在请求中添加JavaScript代码来协助验证结果,如:成功或失败状态、预期结果的比较等等。通常从pm.test开始。它可以验证其他工具中可用的命令。
8.1Statuscode:Codeis200
切换到Tests选项
选择右侧的Statuscode:Codeis200
点击Send
在TestResults可以看到PASSStatuscodeis200
8.2ResponseBody:Jsonvaluecheck
断言-自动判断是否成功
切换到Tests选项
选择右侧的ResponseBody:Jsonvaluecheck
点击Send
在TestResults可以看到PASS请求成功
8.3编写自定义脚本
在实际开发中我们会遇到这样一个场景:用户发起登录请求成功后,后台会返回一个token作为该用户的唯一标识,接下来的所有操作将必须带上token作为参数请求其它接口(即其它接口必须携带token作为参数),但是假如token失效了,那么我们请求接口的时候又要修改成新的token,为了减少不必要的麻烦,我们可以在Postman中自定义一个脚本。
实现功能:请求账号登录接口将接口返回的token保存在环境名称为kmsv的变量token中
这回我们新建一个环境,点击New
点击Environment
输入环境名称:kmsv,变量名称:token,点击Save
点击右上角选择环境为:kmsv
点击“小眼睛”,我们可以看到此时在kmsv环境下变量token是没有值的
在账号登录接口下,选择Tests选项,加入如下js代码,点击Send
此时我们再次打开小眼睛,可以看到成功拿到返回的token值!这时倘若其他接口需要携带token,则在参数栏里使用双大括号变量名法即可!
8.4简单的自动化测试
前提:将每个接口设置断言
选择Collections->选择接口集合kmsv->点击三个点->选择Runcollection
选择接口,拖动可以调整顺序->点击Runkmsv
我们可以看到测试的结果,由于只是简单演示步骤,代码未编写