一、下载与安装
1、postman 下载安装,如果之前没有注册过,则创建一个新的用户,注册。如果之前有账户,则sign in登录即可。
2、安装postman插件newman
? ? ? ? (1)安装node.js:
????????????????打开cmd终端,输入命令:npm -v 如果能够显示版本号,可以跳过这一步
????????????????下载https://nodejs.org/
????????????????双击安装,一路next即可
???????????????安装完成后关掉第一步打开的cmd终端,重新打开一个cmd终端,再次输入命令:npm -v
? ? ? ? (2)在线安装命令:npm install -g newman。注意安装过程中不要用鼠标点cmd的页面,点击会导致安装暂停。
? ? ? ? (3)验证安装是否成功:newman -v,能看到版本号即可
? ? ? ? (4)给newman再安装一个插件:newman-reporter-html,
????????????????命令为npm install -g newman-reporter-html
二、创建请求
点击右侧加号,添加一个请求,或在用例集右键——add request 添加一个请求。
选择请求方法:
填写URL:注意填URL时不要有空格、换行符(太长自动换行不算,不要在复制的时候多复制一个换行就行)
填写请求头数据:
填写请求体:只有Post或put方法有请求体,其他方法没有,请求体的数据格式一定要与请求头的Content-type规定的类型一致。
如果请求体数据是json原始数据:
至此已经可以做一个独立的请求了,点击Send按钮即可发送。
如果需要前置条件或需要对请求得到的数据进行断言或二次利用,继续往下。
添加前置操作:
添加后置操作——断言:
三、管理用例集
新建用例集:
导出用例集:
导入用例集:
四、用例关联
A依赖B接口的数据,先执行B,将结果保存值全局或环境变量,在A 中获取全局或环境变量值
1、全局变量与环境变量
????????全局变量:Postman全局都能生效,全局唯一的,不可以重复定义
????????环境变量:一个变量只能属于某个环境,在某个环境中不可以重复定义。环境与环境之间可以重复定义。一个环境可以包含多个环境变量。
????????环境分类:开发环境、测试环境、生产环境。设置变量前要将环境提前设置好
2、设置变量:
? ? ? ? (1)设置全局变量:
? ? ? ? ? ? 当变量值已知且不变时(例如项目域名,在整个测试过程中都可能用到,而且在测试前就已知,且不会改变),可以将其手动设置为全局变量、
? ??
? ? ? ? 当变量名需要使用某个操作的结果数据时,使用代码设置:在Tests模块编写代码如下:????????pm.globals.set("变量名","变量值")
? ? ? ? (2)环境变量:
? ? ? ? ? ? ? ? 手动设置(同样适用于已知且不变的数据):
? ? ? ? ? ? ? ? 代码设置:?pm.environment.set("变量名","变量值")
3、使用变量:
(1)在请求参数中获取(即在Postman页面中使用):{{变量名}}
(2)在代码中获取:
????????var value = pm.globals.get("变量名");
????????var value = pm.environment.get("变量名");
4、查看变量设置情况:
案例:获取天气信息,将响应中的城市名给百度搜索
? ? ? ? (1)创建用例集,分别创建获取天气、百度搜索的request
? ? ? ? (2)根据第②步的响应数据,知道了响应回来的JSON具体内容,根据这个内容取出city的值。在Tests标签中获取JSON数据,再逐层取出city的值,将city的值设置为全局变量供百度搜索接口使用。
? ? ? ? (3)获取天气:填写请求方法、URL,先send一波。查看接口是否能正常访问,同时也能获取响应示例。
如果想要把city设置成环境变量,在Tests将它设置成environment变量a后,后续使用环境变量时使用的是环境变量a,需要注意的是这个环境变量,只在当前环境有效,切换环境后就失效了。全局变量则不受环境切换影响
? ? ? ? (4)百度搜索:填写请求方法、URL,根据百度URL的特点可以知道,搜索关键字通常放在URL查询参数wd的值中,所以将全局变量city的值传递给wd,作为查询参数传递给百度查询接口。send可以在返回内容栏的Preview标签中预览返回内容
五、批量执行
1、执行前确认每一个request都能执行无误。
2、点击用例集,点击run按钮,在Runner的设置页面中选中需要执行的request,然后点击批量执行测试用例即可。
六、参数化
1、什么是参数化:当http请求有较高相似度时,考虑使用参数化。将变量、测试数据组织在数据文件中,读取外部文件实现参数化
2、数据文件:
????????CSV:
????????????????缺点:
????????????????????????不支持复杂数据类型(嵌套字典、列表等)
????????????????????????不支持多参、少参、无参、错误参数的接口测试
????????????????????????不支持bool类型,数据被Postman读取后自动添加
????????????????优点:数据组织形式简单,适用于大量数据的场合
????????JSON:
????????????????优点:
????????????????????????支持复杂数据类型(嵌套字典、列表等)
????????????????????????支持参、少参、无参、错误参数的接口测试
????????????????????????支持bool类型
????????????????缺点:相同数据量,JSON文件大小远大于CSV
3、使用文件:
? ? ? ? (1)创建文件XXX.csv
? ? ? ? (2)将数据写入到CSV文件中,第一行是字段名称,从第二行往后是数据值,一行中数据用逗号隔开,一行为1条用例数据,有中文一定要确认编码是UTF-8
注意:Postman要求JSON格式的数据文件,数据内容的最外层必须是[ ],[]内部的所有数据用{}存储。
? ? ? ? (3)导入文件:
????????????????????????
5、使用:
????????在请求参数中使用:{{key}}。例如{{username}}
????????在代码中使用:借助Postman提供的关键字data.key。例如data.password
使用文件中的参数后就不能再使用send发送请求,需要批量执行。
七、生成报告
1、Postman生成测试报告
(1)装newman及其插件newman-reporter-html插件成功(参考1章.)
(2)将用例集批量执行1次(参考6章),无误后导出用例集(参考3章)
(3)打开找到文件保存目录,在目录地址栏输入cmd在此打开命令行,使用newman命令运行导出的测试集脚本:
newman run 测试脚本文件名(必填)-e 环境变量文件(可选) -d 测试数据文件(可选) -r html ?--reporter-html-export report.html
命令解析:
run执行
测试脚本文件名:即导出的测试用例集文件名称。中文也可以识别。
注意:如果没有在测试脚本文件的目录下打开cmd,则这个文件与命令行 的执行目录下不一致,此时要加上文件路径才能找到文件。
-e 环境变量文件名:导出的环境变量文件(该文件也是Postman批量执行的引入外部文件),同样,不在命令行的执行目录时,需要加文件路径。中文也可以识别。
-d 测试数据文件名:导出的测试数据文件,同样是Postman批量执行的引入外部文件。不在命令行的执行目录时,需要加文件路径。中文也可以识别。
-r html
--reporter-html-export ?
report.html:测试报告名称,后缀.html不可以更改。中文也可以识别。
查看报告:到终端的执行目录下,找到测试报告report.html,双击打开。