Postman是一个可扩展的API开发和测试协同平台工具,能够快速集成到CI/CD管道中。旨在简化测试和开发中的API工做流。node
Postman 工具备 Chrome 扩展和独立客户端,推荐安装独立客户端。web
Postman 有个 workspace 的概念,workspace 分 personal 和 team 类型。Personal workspace 只能本身查看的 API,Team workspace 可添加成员和设置成员权限,成员之间可共同管理 API。npm
固然我我的使用通常是不登陆的,由于登陆以后会自动将你的测试历史数据保存到帐户里,你能够登录网页端进行查看。
由于API的不少数据是很敏感的,有的含有Token,或者就是一些私密信息,虽然Postman本身也强调说这样很安全,不会私下窥探用户的信息之类的,可是呢仍是至少作一点有效的防范吧,本身不上传,由于网络并无绝对的安全。
因此我每次测试以后会将数据(Case)保存在本地,下次使用或者换设备的状况下将数据拷贝过来又能够继续使用了。json
下面正式开始介绍如何使用Postman吧。api
现在,Postman的开发者已超过1000万(来自官网),选择使用Postman的缘由以下:
简单易用 - 要使用Postman,你只需登陆本身的帐户,只要在电脑上安装了Postman应用程序,就能够方便地随时随地访问文件。
使用集合 - Postman容许用户为他们的API调用建立集合。每一个集合能够建立子文件夹和多个请求。这有助于组织测试结构。
多人协做 - 能够导入或导出集合和环境,从而方便共享文件。直接使用连接还能够用于共享集合。
建立环境 - 建立多个环境有助于减小测试重复(DEV/QA/STG/UAT/PROD),由于能够为不一样的环境使用相同的集合。这是参数化发生的地方,将在后续介绍。
建立测试 - 测试检查点(如验证HTTP响应状态是否成功)能够添加到每一个API调用中,这有助于确保测试覆盖率。
自动化测试 - 经过使用集合Runner或Newman,能够在多个迭代中运行测试,节省了重复测试的时间。
调试 - Postman控制台有助于检查已检索到的数据,从而易于调试测试。
持续集成——经过其支持持续集成的能力,能够维护开发实践。安全
Step 1) 官网主页:https://www.postman.com/downloads/, 下载所需版本进行安装便可。
Step2)安装完成以后会要求你必须登陆才能使用,没有帐号能够进行注册,注册是免费的。(也可以使用Google帐号,不过基本不能登陆,你懂的)bash
Step3)在Workspace选择你要使用的工具并点击“Save My Preferences”保存。
Step4)你将看到启动后的页面以下
服务器
下图是Postman的工做区间,各个模块功能的介绍以下:网络
一、New,在这里建立新的请求、集合或环境;还能够建立更高级的文档、Mock Server 和 Monitor以及API。
二、Import,这用于导入集合或环境。有一些选项,例如从文件,文件夹导入,连接或粘贴原始文本。
三、Runner,能够经过Collection Runner执行自动化测试。后续介绍。
四、Open New,打开一个新的标签,Postman窗口或Runner窗口。
五、My Workspace - 能够单独或以团队的形式建立新的工做区。
六、Invite - 经过邀请团队成员在工做空间上进行协同工做。
七、History - 全部秦秋的历史记录,这样能够很容易地跟踪你所作的操做。
八、Collections - 经过建立集合来组织你的测试套件。每一个集合可能有子文件夹和多个请求。请求或文件夹也能够被复制。
九、Request tab - 这将显示您正在处理的请求的标题。默认对于没有标题的请求会显示“Untitled Request”。
十、HTTP Request - 单击它将显示不一样请求的下拉列表,例如 GET, POST, COPY, DELETE, etc. 在测试中,最经常使用的请求是GET和POST。
十一、Request URL - 也称为端点,显示API的URL。.
十二、Save - 若是对请求进行了更改,必须单击save,这样新更改才不会丢失或覆盖。
1三、Params - 在这里将编写请求所需的参数,好比Key - Value。
1四、Authorization - 为了访问api,须要适当的受权。它能够是Username、Password、Token等形式。
1五、Headers - 请求头信息
1六、Body - 请求体信息,通常在POST中才会使用到
1七、Pre-request Script - 请求以前 先执行脚本,使用设置环境的预请求脚原本确保在正确的环境中运行测试。
1八、Tests - 这些脚本是在请求期间执行的。进行测试很是重要,由于它设置检查点来验证响应状态是否正常、检索的数据是否符合预期以及其余测试。
1九、Settings - 最新版本的有设置,通常用不到。
工具
Get请求用于从指定的URL获取信息,不会对端点进行任何更改。
在这里咱们使用以下的URL做为演示:
https://jsonplaceholder.typicode.com/users
在Postman的工做区中:
一、选择HTTP请求方式为GET
二、在URL区域输入 连接
三、点击 “Send”按钮
四、你将看到下方返回200状态码
五、在正文中应该有10个用户结果,代表您的测试已经成功运行。
注意:在某些状况下,Get请求失败可能因为URL无效或须要身份验证。
Post请求与Get请求不一样,由于存在用户向端点添加数据的数据操做。使用以前GET 请求中相同数据,如今添加咱们本身的用户。
Step 1)建立一个新请求
Step 2 )在新请求中
一、选择HTTP请求方式为GET
二、在URL区域输入 连接:https://jsonplaceholder.typicode.com/users
三、切换到Body选项
Step 3) Body选项
一、选中raw选项
二、选择JSON
Step 4) 复制前面GET请求返回的json内容的第一节
更改id为11,更改name以及uesrname和email
[ { "id": 11, "name": "Krishna Rungta", "username": "Bret", "email": "Sincere@april.biz ", "address": { "street": "Kulas Light", "suite": "Apt. 556", "city": "Gwenborough", "zipcode": "92998-3874", "geo": { "lat": "-37.3159", "lng": "81.1496" } }, "phone": "1-770-736-8031 x56442", "website": "hildegard.org", "company": { "name": "Romaguera-Crona", "catchPhrase": "Multi-layered client-server neural-net", "bs": "harness real-time e-markets" } } ]
注意: 检查Body里用到的JSON格式很重要,以确保数据正确。
检测的工具好比:https://jsonformatter.curiousconcept.com/
Step 5 )发送请求
一、完成上述的信息输入,点击Send按钮
二、Status:应该是201,显示为建立成功
三、在Body里返回数据
数据参数化是Postman最有用的特征之一。你能够将使用到的变量进行参数化,而不是使用不一样的数据建立相同的请求,这样会事半功倍,简洁明了。
这些数据能够来自数据文件或环境变量。参数化有助于避免重复相同的测试,可用于自动化迭代测试。
参数经过使用双花括号建立:{{sample}}。
好比下面的请求:
接下来建立一个参数化get请求:
Step 1) 建立一个参数化get请求
一、将HTTP请求设置为GET
二、输入URL: https://jsonplaceholder.typicode.com/users;将连接的域名部分替换为参数,例如{{url}}
。请求url如今应该是{{url}}/users。
三、点击Send按钮。
应该没有响应,由于咱们没有设置参数的源,以下图:
Step 2) 使用环境设置所需的参数
一、点击眼睛图标
二、单击Edit将该变量设置为可在全部集合中使用的全局环境。
Step 3) 变量--variable
一、将名称设置为url,该url为https://jsonplaceholder.typicode.com
二、点击保存按钮
Step 4) 若是看到下面截图的样式,请单击Close
Step 5 ) 回到你的Get请求页面,而后单击发送Send按钮,Get请求应该就会返回结果了,以下图:
注意:请确保全部的参数都有准确的源数据,无论是环境变量仍是数据文件,以免出错。
Postman Tests在请求中添加JavaScript代码来协助验证结果,如:成功或失败状态、预期结果的比较等等。
一般从pm.test开始。它能够与断言相比较,验证其余工具中可用的命令。
接下来建立一个包含Tests的请求:
Step 1) 建立一个Get请求
一、切换到Tests选项,右边是代码片断选项。
二、从右边的代码片断选项里面选中 “Status code: Code is 200”
三、JS代码就自动出如今窗口中
Step 2) 点击发送请求按钮。测试结果就显示出来了,以下图:
Step 3) 回到Tests选项卡,让咱们添加另外一个测试。此次咱们将比较预期结果和实际结果。
在右边的SNIPPETS区域选择"Response body:JSON value check"选项,咱们将检查Leanne Graham是否拥有userid 1。
Step 4)
一、将代码中的“Your Test Name”替换为“Check if user with id1 is Leanne Graham”,以便测试名称确切描述咱们想测试的内容。
二、使用jsonData[0].name代替jsonData.value; 获取路径,在获取结果以前检查Body。由于Leanne Graham是userid 1,因此jsonData在第一个结果中,这个结果应该从0开始。若是你想得到第二个结果,那么对后续结果使用jsonData[1] 便可。
三、在eql中,输入“Leanne Graham”
pm.test("Check if user with id1 is Leanne Graham", function () { var jsonData = pm.response.json(); pm.expect(jsonData[0].name).to.eql("Leanne Graham"); });
Step 5) 点击发送请求,能够看到你的请求以后测试结果中有两项显示测试经过。
注意:
有不一样种类的测试能够在Postman中建立。尝试探索这个工具,看看哪些测试适合你实际测试。
集合在组织测试套件中扮演着重要的角色。它能够被导入和导出,使得在团队之间共享集合变得很容易。在本教程中,咱们将学习如何建立和执行集合。
Step 1) 单击页面左上角的New按钮,以下图:
Step 2) 选择Collection(集合). 建立collection窗口弹出,以下图.
Step 3) 输入所需的集合名称和描述,而后单击create。
如今已经建立了一个集合。
Step 4 ) 和前面的Get请求同样,点击保存。
Step5 )
一、选择Postman 测试集合(Test Collection)。
二、点击保存Postman Test Collection
Step 6) Postman test collection如今应该包含了一个请求,以下图:
Step 7) 重复上述的Step4-5,继续建立请求,这样,测试集合就应该有2个请求了,以下图。
有两种方式来运行一个集合,即Collection Runner和Newman。
Collection Runner:
Step 1) 单击页面顶部导入按钮旁边的Runner按钮,以下图。
Step 2)Collection Runner页面应该出现以下所示。如下是对各个字段的描述
Step 3) 作以下设置,运行你的测试集合
一、一旦测试完成,你就能够看到测试状态是经过仍是失败,以及每一个迭代的结果。
二、你将看到Get请求的Pass状态;
三、因为咱们没有任何Post测试,因此应该会出现请求没有任何测试的消息。
能够出在请求中进行测试是多么重要,这样你就能够验证HTTP请求状态是否成功,以及是否建立或检索了数据。
运行集合的另外一种方式是经过Newman。Newman和Collection Runner之间的主要区别以下:
一、Newman是Postman的替代品,因此须要单独安装Newman;
二、Newman使用命令行,而Collection Runner使用UI界面;
三、Newman能够用于持续集成。
安装Newman并运行Collection,步骤以下:
Step 1) 下载并安装NodeJs: http://nodejs.org/download/
Step 2) 打开命令行窗口并输入下面命令:
npm install -g newman
安装后 以下图:
Step 3 )
Newman安装好以后,让咱们回到Postman的workspace。在Collections框中,单击三个点 ... 会出现新的选择选项,可看到Export选项,以下图:
Step 4 )
选择导出集合,默认使用推荐的集合版本,好比此处是v2.1,而后单击导出:
Step 5 ) 选择你想要保存的地址以后点击保存,这里建议专门新建一个文件夹来存放你的Postman tests。
Step 6 ) 另外还须要导出咱们的环境(enviroment)。单击全局环境下拉菜单旁边的eye图标,选择JSON格式下载。选择你想要的位置,而后单击Save。最好将环境放在与Step5 导出的集合相同的文件夹中。
Step 7 ) 导出Environment 到集合文件夹后,如今回到命令行,将目录更改成保存集合和环境的位置。
cd C:\Users\Asus\Desktop\Postman Tests
Step 8 ) 使用下面的命令运行你的测试集合:
newman run PostmanTestCollection.postman_collection.json -e Testing.postman_globals.json
运行的结果应该以下图:
关于Newman的一些基础指导以下:
一、只运行集合(若是没有环境或测试数据文件依赖关系,则可使用此选项。)
newman run <collection name>
二、运行集合和环境(参数-e 是environment)
newman run <collection name> -e <environment name>
三、使用所需的编号运行集合的迭代。
newman run <collection name> -n <no.of iterations>
四、运行数据文件
newman run <collection name> --data <file name> -n <no.of iterations> -e <environment name>
五、设置延迟时间。(这一点很重要,由于若是因为请求在后台服务器上,完成前一个请求时没有延迟时间直接启动下一个请求,测试可能会失败。)
newman run <collection name> -d <delay time>