Postman官网上这样介绍它:"Manage all of your organization's APIs in Postman, with the industry's most complete API development environment."看的出来Postman是功能强大的API测试的工具
Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它可以发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE...),而且能附带任何数量的参数和 Headers。不只如此,它还提供测试数据和环境配置数据的导入导出,付费的 Post Cloud 用户还可以建立本身的 Team Library 用来团队协做式的测试,并可以将本身的测试收藏夹和用例数据分享给团队。
less
Postman有2种安装方式,一种是做为Chrome的插件,另外一种是客户端形式,建议使用客户端安装dom
1. Postman下载
官网下载地址:https://www.getpostman.com/downloads/函数
2. 安装过程
默认安装便可,安装完成后,注册登陆
工具
详细功能能够参考Postman官方 文档,
打开软件,就能够看到Postman主界面,以下图所示:
post
1. Collections:在Postman中,Collection相似文件夹,能够把同一个项目的请求放在一个Collection里方便管理和分享,Collection里面也能够再建文件夹。若是作API文档的话,能够每一个API对应一条请求,若是要把各类输入都测到的话,就须要每条测试一条请求了。测试
2. 上面的黑字注册是请求的名字,若是有Request description的话会显示在这下面。下面的蓝字是保存起来的请求结果,点击能够载入某次请求的参数和返回值。我会用这个功能给作客户端的同事展现不一样状况下的各类返回值。保存请求的按钮在15.url
3. 选择HTTP Method的地方,各类常见的不常见的很是全。插件
4. 请求URL,两层大括号表示这是一个环境变量,能够在16的位置选择当前的environment,环境变量就会被替换成该environment里variable的值。3d
5. 点击能够设置URL参数的key和value
6. 点击发送请求
7. 点击保存请求到Collection,若是要另存为的话,能够点击右边的下箭头
8. 设置鉴权参数,能够用OAuth之类的
9. 自定义HTTP Header,有些由于Chrome缘由不能自定义的须要另外装一个插件Interceptor,在16上面一行的卫星那里
10. 设置Request body,13那里显示的就是body的内容
11. 在发起请求以前执行的脚本,例如request body里的那两个random变量,就是每次请求以前临时生成的。
12. 在收到response以后执行的测试,测试的结果会显示在17的位置
13. 有四种形式能够选择,form-data主要用于上传文件。x-www-form-urlencoded是表单经常使用的格式。raw能够用来上传JSON数据
14. 返回数据的格式,Pretty能够看到格式化后的JSON,Raw就是未经处理的数据,Preview能够预览HTML页面
15. 点击这里把请求保存到2的位置
16. 设置environment variables和global variables,点击右边的x能够快速查看当前的变量。
17. 测试执行的结果,一共几个测试,经过几个。
测试工具主要包括三部分,在发起请求以前运行的Pre-request,在收到应答以后运行的Test,和一次运行全部请求的Collection Runner
1. Pre-request
预请求脚本是与在发送请求以前执行的收集请求相关联的代码片断。
Pre-request和Test用的语言都是JavaScript,Postman在一个沙盒里执行代码,提供给用户的库和函数能够在这里查看。而经常使用的功能均可以经过右边的Code Snippets实现,点击就能够插入到代码区域。
2. Test
使用Postman,您可使用JavaScript语言为每一个请求编写和运行测试.
测试例子
设置环境变量
pm.environment.set("variable_key", "variable_value");
获取环境变量
pm.environment.get("variable_key");
获取环境变量(其值是字符串化对象)
var array = JSON.parse(pm.environment.get("array")); var obj = JSON.parse(pm.environment.get("obj"));
清除环境变量
pm.environment.unset("variable_key");
设置全局变量
pm.globals.set("variable_key", "variable_value");
获取全局变量
pm.globals.get("variable_key");
清除全局变量
pm.globals.unset("variable_key");
获得一个变量
此函数在全局变量和活动环境中搜索变量。
pm.variables.get("variable_key");
检查响应主体是否包含字符串
pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });
检查响应主体是否等于字符串
pm.test("Body is correct", function () { pm.response.to.have.body("response_body_string"); });
检查JSON值
pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); }); //var jsonData = JSON.parse(responseBody); //tests["list"] = jsonData["lists"][0] == "11";
内容类型存在
pm.test("Content-Type is present", function () { pm.response.to.have.header("Content-Type"); });
响应时间小于200毫秒
pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); });
代码名称包含一个字符串
pm.test("Status code name has string", function () { pm.response.to.have.status("Created"); });
成功的POST请求状态代码
pm.test("Successful POST request", function () { pm.expect(pm.response.code).to.be.oneOf([201,202]); });
将XML主体转换为JSON对象
var jsonObject = xml2Json(responseBody);
获取HTML并取出其中的值
//获取HTML const $ = cheerio.load(responseBody); //获取input标签中name属性值为SignValue的数据中属性为value的值 var signvalue=$('input[name=SignValue]').attr('value'); // //获取textarea标签中name值为SignValue的数据中文本属性text的值 var signvalue=$('textarea[name=SignValue]').text();
3. Collection Runner
当编写了不少测试以后,就可使用Collection Runner来自动运行整个Collection了,入口就在主界面最上面一行的Runner。选好Collection、Environment,若是有须要还能够载入JSON和CSV做为数据源。点击Start Run,就能够看到结果了。
1. 使用变量
如今使用参数都是写死的, 那么若是想要测试帐号密码参数使用其它值有没有异常怎么办呢?
这里就须要使用变量
引用变量的语法:{{变量名}}
Pre-request Script 和 Tests均可以设置变量,区别在于:Pre-request Script 中的脚本是在执行请求以前运行,而Tests 中的脚本则是在请求完成以后执行。
2. 测试数据集
在执行Collection Runner时能够选择CSV或json格式的文件做为测试数据集
CSV文件格式:
JSON文件格式:
在执行Collection Runner时使用CSV/JSON文件
3. 按期任务
Postman 提供了一个 Monitors (监视器)功能,支持咱们提交一个测试任务,按照设置的定时器进行运行,如每小时测试一次,具体操做以下:
1. 接口执行顺序
首先,说明一下,接下来讲的接口都是默认属于同一个集合 (Collections) 中的。
接口的执行顺序其实就是按照这边目录中的顺序(从上到下);因此有了这个默认的执行顺序后,那么咱们即可以把须要优先执行的接口放前面便可,好比把“登陆接口”放在第一个。
2. 自定义执行顺序
固然,若是只有默认的一个执行顺序的话,一般无法知足咱们复杂的业务需求,因此 Postman 为咱们提供了一个函数:postman.setNextRequest("填写你要跳转的接口名")
咱们能够在接口的 Tests 功能区中执行跳转代码,如:
这里须要注意几点:
3. 解决依赖的思路
以上是Postman基础功能,仅供参考。