Postman入门
postman 接口测试工具 ,网页调试和发送网页http请求的Chrome插件,适用于不同的操作系统
开发或调试网络程序,网页B/S模式的程序时,需要一些方法来跟踪网页请求。可使用一些网络的监视工具,如Firebug/Fiddler等网页调试工具。这款调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,还可以发送几乎所有类型的http请求。
下载地址:https://www.postman.com/downloads/
postman基础功能介绍
请求区域介绍
-
1 Authorization:身份验证
-
2 headers:请求的头部信息
-
3 body:post请求时必须要带的参数,里面放一些key-value键值对
-
4 Pre-request Script:这个运行在请求之前,语法使用JavaScript语句
-
5 tests:通常用来写测试
-
6 form-data:将表单数据处理为一条消息,以标签为单元
-
7 x-www-form-uriencoded:对应信息头-application/x-www-form-urlencoded,会将表单内的数据转换为键值对
-
8 raw:可以上传任意类型的文本,比如text、json、xml等,所有填写的text都会随着请求发送
-
9 binary:对应信息头-Content-Type:application/octet-stream,只能上传二进制文件,且设有键值对,一次只能上传一个文件,也不能保存历史,每次选择文件,提交
导入和导出接口集
导入
导出
环境变量设置
Global :全局
Enviroment :环境变量
Local :局部
Data :数据
优先级由高到低:Data>Local>Enviroment>Global
1、添加环境变量
2、查看当前环境中的变量和全局变量的值
3、一键切换环境变量
将返回值的某个数据设置为环境变量
有时候,我们获取到一个变量需要将它保存下来,之后可能会使用到,例如token、sign等信息,就会用到tests区域。
-
定义一个 data,获取body中返回的所有参数,并转化为JSON格式
- var data = JSON.parse(responseBody); //将字符串转化为对象,parse()会进行json格式检查是一个安全函数,如检查json中某个数组元素的个数(长度)
- var data = JSON.parse(responseBody);
- tests[“proect’s length”] = data.project.length === 3;
-
将返回中的值设置为一个环境变量
- pm.environment.set(“key”,xxx.data.value);
- postman.setEnvironmentVariable(“key”,“value”);
-
将返回中的值设置为一个全局变量
- pm.globals.set(“key”,xxx.data.value);
- postman.setGlobalVariable(“key”,“value”)
- 注:Global后面不能加S,value值一定要指定到某个具体节点
-
测试response Headers中的某个元素是否存在
- tests[“元素Content-type是否存在”] =postman.getResponseHeader(“Content-Type”);
- getResponseHeader()方法会返回header的值
-
定义一个obj ,获取headers值
- var obj = postman.getResponseHeader(“key”);
-
将Headers中的值设置为一个环境变量
- postman.setEnvironmentVariable(“key”,xxx);
- pm.environment.set(“key”,xxx)
-
j检查response的code值是否为200
- tests[“Status code is 200”] = responseCode.code === 200;
- tests[“Status code is 200”]中的tests是一个内置对象
- responseCode.code === 200中的responseCode是内置对象,responseCode对象中有个属性是code,是指HTTP状态码的code,判断code是否为200
-
检查response的body中是否包含字符串
- tests[“Body matches string”] = responseBody.has(“type”);
- tests[“Body matches string”]中的tests是一个内置对象,type无论是key或者value,只要匹配就可以。多个类型可用“,”分割。
-
检查Response Body是否等于字符串
- tests[“测试点”] = responseBody === “Response Body返回的内容”
- 可以用在接口返回内容为纯字符串时,直接检查整个返回结果的正确性
-
检查Response time是否小于200ms
- tests[“Response time 小于200毫秒”] = responseTime < 200;
-
检查Response time是否大于200ms
- tests[“Response time 大于200毫秒”] = responseTime > 200;
-
设置一个随机数变量
- pm.globals.set( " type",parseInt(4*Math.random())+1);
- 针对不同类型的课程类型,设置一个1-4的随机函数,字段名是type,parsInt时强制转换为整数
-
校验接口是否返回有数据
- tests[“获取第一个结果”] = xxx.content.result[0];
-
postman.setNextRequest('Request4")
- postman.setNextRequest()是一个带有一个参数的函数,是接下来要运行的请求的名称或ID,通常用来跳转至某个接口,只在运行该集合时有用,单独使用无效。
-
var jsonObject = xml2Json(responseBody)
在设置过变量之后,调用变量的时候,在postman里,可以直接使用{{变量名}}
使用postman进行接口自动化测试
在接口测试上,大体上两个思路:
-
判断请求返回的code是否符合预期
-
判断请求返回的内容中是否包含预期的内容
若是想每次都要运行不一样的数据,我们还需要其他的方法,比如使用pro-requestScript功能,导入或生成随机数据进行测试。
postman参数化的过程
针对某一个接口,有大量的测试数据需要批量验证,就要用到数据的参数化。
例如有批量的手机号需要进行查询
- 先创建一个data.txt格式的文件,文件名不能是汉字,放置的第一行是变量名,后面每一行都是该变量的一个数据(若是有多条变量和数据,可使用","分割)
- 再在postman里面创建一个环境变量,名字和上面的变量名保持一致即可,postman里面的环境变量的值,可以随便填写(因为调用的时候会调用txt文本里面的数据,而不会用到postman里面设置的数据)
- 在tests里面写一个检测脚本,检测该手机号是否为移动手机号
- 以集合的形式运行还接口
- 查看运行结果,完成参数化设置。
每个接口的访问地址都一样,只是里面的请求参数不一样。