PostMan接口测试分享

一、postman软件功能

1、模拟各种HTTPrequests:( 创建测试用例

 

2Collection功能(测试集合):(创建测试用例集合

通过collection的归类,我们可以良好的分类测试软件所提供的API. 例如把同一个项目的请求放在一个Collection里,Collection里面也可以再建文件夹。 Collection里面也可以再建文件夹。而且Collection还可以Import或是Share出来,让团队里面的所有人共享你建立起来的Collection

 

3、内置测试脚本语言:

支持编写测试脚本,可以快速的检查request的结果,并返回测试结果

 

4、设定变量与环境:

Postman可以自由设定变量与Environment,一般我们在编辑request,校验response的时候,总会需要重复输入某些字符,比如url,允许我们设定变量来保存这些值。并且把变量保存在不同的环境中。

二、变量设置:

把若干处出现多次的数值用一个变量表示,达到一次修改、多处生效的效果,便于修改和管理。

  1. 环境变量最常见的是将测试 URL 进行定义成变量的形式,这样随着你的域名怎么,变URL 就不用变更。除此之外,也可以将一些敏感的测试值定义为环境变量,比如密码。

注意:使用{{variableName}}这样的形式访问变量,一个请求只能应用一个环境变量。

  1. 全局变量用法与环境变量类似,只是对于 Postman 来说,Globals 仅有一组。
  2. Collection变量在一个集合以及集合下面的目录中的请求都可以使用。
  3. 数据变量 CSVJSON文件。

 

三、postman中的script

postman集成了一个强大的,基于nodejsscript引擎,借助它可以为requestscollections添加动态的行为。可以在流程中的pre-request scripttest script中添加要执行的JavaScript代码,引用变量:
在发送request之前,编写pre-request script,定制化request
收到response之后,用test script,处理返回的数据。

  • Pre-request Script 可以设置变量,并且会修改current value 值。

 

环境变量操作:

 

pm.environment.get("variable_key");

pm.environment.set("variable_key", "variable_value");

 

集合变量操作:

 

pm.collectionVariables.get("variable_key");

pm.collectionVariables.set("variable_key", "variable_value");

 

全局变量操作:

 

pm.globals.get("variable_key");

pm.globals.set("variable_key", "variable_value");

 

普通变量操作:

 

pm.variables.get("variable_key");

pm.variables.set("variable_key", "variable_value");

 

 

  • tests:对结果进行校验

1.检查response body中是否包含某个string
tests["Body matches string"] = responseBody.has("string_you_want_to_search");

注意:"Body matches string" 需唯一。

2.检测JSON中的某个值是否等于预期的值

var data = JSON.parse(responseBody);

tests["Your test name"] = data.value === 100;

JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。 

如:检查json中某个数组元素的个数(这里检测programs的长度)

var data = JSON.parse(responseBody);

tests["program's lenght"] = data.programs.length === 5;

3.检查response body是否与某个string相等
4.转换XML bodyJSON对象
var jsonObject = xml2Json(responseBody);

tests["Body is correct"] = responseBody === "response_body_string";

5.测试response Headers中的某个元素是否存在(:Content-Type)

tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); 

//getResponseHeader()方法会返回header的值,如果该值存在

或者: 

tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
上面的方法,不区分大小写。下面的方法,要区分大小写。 

https://images2017.cnblogs.com/blog/412654/201712/412654-20171213163841207-758879610.png

6.验证Status code的值

tests["Status code is 200"] = responseCode.code === 200;

7.验证Response time是否小于某个值
tests["Response time is less than 200ms"] = responseTime < 200;

8.name是否包含某个值
tests["Status code name has string"] = responseCode.name.has("Created");

9.POST 请求的状态响应码是否是某个值
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

10.设置下一个运行的请求

postman.setNextRequest()

三、data文件编辑

1.csv

第一行输入变量名称,(注意与request中引用的名称一致);

第二行输入对应的变量值,如下图

2.json

需要注意json的转义与压缩,jsonkey一定要与变量名一致,json的格式是数组形式 json文件如下图所示:

三、Collection runner

点击collection右边的run按钮,打开Collection Runner

  1. 选择一个环境变量;
  2. 选择data文件;
  3. 选择要执行的request

点击run就会开始执行测试,并输出测试结果。

  • Collection/Folder

这是我们要运行的集合或文件夹。运行集合时,集合中的所有请求都按它们在主应用中出现的顺序发送。这意味着每个文件夹都会运行,并且该文件夹内的每个请求都会被顺序执行。但是,我们可以通过使用setNextRequest()方法更改此顺序,以更贴近我们的工作流程。

  • Environment

此处选择运行集合中的请求时对应使用的环境。

  • Iterations

该参数配置我们的集合将被运行的次数。通常通过使用不同的测试数据运行多次,从而来确保API的稳定性。

  • Delay

该参数配置依次运行每个请求,每个请求之间间隔侧时间,单位为毫秒。

 

  • Log Responses

这用于限制集合运行时的响应日志记录。默认情况下,一般调试目的,所有响应都会记录,但对于大型集合,可以更改此设置以提高性能。

  • Data

提供集合运行时需要的数据文件。

  • Persist variables

默认情况下,集合运行器中的任何环境更改都不会反映回请求构建器中。

四、Collection导出、执行测试

1.点击选择export,将当前collection导出成json文件;

2.导出环境变量;

3.导出全局变量

4.执行

newman run 文件地址

–e 环境变量文件地址

–g全局变量文件地址

-d 数据文件地址

–r html 输出html报告

-n 设置迭代次数

--timeout (ms) 设置整个集合运行完成执行的时间

5.同时执行多个collection         ??

五、postman plan comparison

Postman免费版与付费版之分,参考链接:https://www.postman.com/pricing

Features

Free

Team

Business

Enterprise

团队规模

1

1-19

20-99

100+

合作

无限工作区和 25 个共享请求

无限工作区和共享请求

无限工作区和共享请求

无限工作区和共享请求

单点登录

×

×

角色和权限

×

×

专用工作区

×

×

不限

不限

APIs最大数量

3

10

50

100

最大集成数量

有限

10

50

100

API可调用最大次数(每月)

1000

10000

100000

1000000

公共 API 文档(每月页面浏览次数)

1000

10000

100000

1000000

模拟服务器调用次数(每月)

1000

10000

10000

10000

监视API调用次数(每月)

1000

10000

10000

10000

恢复已删除集合

不支持

30天内

90天内

90天内

自定义域

不支持

1

5

25

静态ip地址

×

×

审核日志

×

×

报告

×

×

×

培训和入职

免费资源

免费资源

客户成功入职

客户成功入职和定制培训

支持选项

社区

电子邮件

优先电子邮件(SLA2 个工作日)

优先电子邮件和电话(SLA1 个工作日)

支付选项

仅限信用卡

信用卡或开票(仅限年)

信用卡、开票、自定义付款条款

条款

Standard EULA

Standard EULA

 

Standard EULA

 

Standard EULA

 

感谢 yimi

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值