postman

发布时间 2023-03-23 14:50:34作者: winnie_B612

1.postman基础用法

1)请求中常见的数据传递格式

数据类型

样例数据

请求方式

请求头(Content-Type

字符串

URL?

username=huluwa&pass=123

 

GET

 

/

表单

见下图

 

POST

application/x-www-form- urlencoded

 

json

{

"username":"huluwa", "pass":"123"

}

 

POST

 

application/json

form表单数据示意图:

 

2.postman高级用法

2.1)用例管理

实现步骤:

1.创建集合---项目(如IHRM、tpshop)

2.创建文件夹---模块(如:登录、员工管理)

创建请求---测试用例(如:登录成功)

2.2)Postman的断言

使用JavaScript语言编写的,写在Postman的【Tests】 标签中

Tests】中的脚本在发送请求之后执行,它会把断言的结果(PASS/FAIL)最终在【TestResults】 标签页中

Postman的常用断言

  断言响应状态码是否为200(Status code is 200)

  断言响应体JSON数据校验(Response body:JSON value check)

  断言响应体是否包含指定字符串(Response body: Contains string)

   断言响应体是否等于指定字符串(Response body:Is equal to a string)

  断言响应头是否包含指定的头信息(Response headers: Content-Type header check)

2.3)断言响应状态码

样例代码:

pm.test("Status code is 200", function () { pm.response.to.have.status(200);});

说明:

pm.test是postman内置对象pm对外提供的一种名称为test的方法,他的功能是使用pm.test来编写测试脚  本时,即使方法内部处理内容出现错误也不会影响后续自动化脚本的运行。

案例:

1.请求IHRM项目的登录接口,请求数据({"mobile":"13800000002","password":"123456"})

2.登录接口地址URL:http://ihrm-test.itheima.net/api/sys/login

3.请设置断言自动判定服务器响应状态码为200

 

 

 

2.4)断言JSON数据(重点)

示例代码:

pm.test("Your test name", function () {

  var jsonData = pm.response.json();

   pm.expect(jsonData.value).to.eql(100);

});

说明:var是用来声明javascript的变量,上面的代码等价于下面的代码。

pm.test("Your test name", function () {

pm.expect(pm.response.json().value).to.eql(100);

});

案例:

1.请求IHRM项目的登录接口,请求数据({"mobile":"13800000002","password":"123456"})

2.登录接口地址URL:http://ihrm-test.itheima.net/api/sys/login

3.请设置断言自动判定服务器响应体数据中success=true,code=10000,message=操作成功!

 

 

 

 

排错说明:

  检查断言代码片段是否选错了

  检查断言代码是否设置错了 预期结果或者是判断实际结果的字段选择错误

  先点击发送,基于响应中的body数据做初步预判

  检查请求相关参数(请求方式、请求头、请求体)

2.5)断言包含指定的字符串内容

样例代码:

pm.test("Body matches string", function ()

  { pm.expect(pm.response.text()).to.include("string_you_want_to_search");

});

案例:

1.请求IHRM项目的登录接口,请求数据({"mobile":"13800000002","password":"123456"})

2.登录接口地址URL:http://ihrm-test.itheima.net/api/sys/login

3.请设置断言自动判定服务器响应体数据中包含【操作成功】

 

2.6)断言等于指定的字符串

样例代码:

pm.test("Body is correct", function ()

  { pm.response.to.have.body("response_body_string");

});

案例:

1.请求IHRM项目的登录接口,请求数据({"mobile":"13800000002","password":"123456"})

2.登录接口地址URL:http://ihrm-test.itheima.net/api/sys/login

3.请设置断言自动判定服务器响应体数据等于【操作成功】

 

3.环境变量与全局变量

3.1)概念

全局变量:作用范围是针对postman下面所有测试集均生效

环境变量:只对选择了对应环境的测试集生效(如:选择了测试环境的测试集IHRM0720) 开发环境、测试环境、生产/线上环境一套环境中变量不能重复、但是可以定义多个不重复的变量

3.2)设置变量

a:全局变量

  代码设置   // 设置全局变量   pm.globals.set("var_name", "value");

  手动设置

b:环境变量

  代码设置   // 设置环境变量   pm.enviroment.set("var_name", "value");

  手动设置

3.3)获取变量值

a:全局变量

  代码中获取   var_value= pm.globals.get("var_name");

  请求参数中获取:{{var_name}}

b:环境变量

  代码中获取   var_value= pm.enviroment.get("var_name");

  请求参数中获取:{{var_name}}

pm.environment.get("variable_key");

pm.globals.get("variable_key");

// 获取环境变量的值 mobile2和password2

var mobile = pm.environment.get("mobile2"); 

var password = pm.environment.get("password2");

console.log("测试环境中的mobile是:" + mobile)

console.log("测试环境中的password是:" + password)

4.请求前置脚本

1)定义:请求前置脚本就是在“Pre-request Script”标签中所编写的脚本,是在请求发送之前要执行的代码片段。

应用场景:

  请求参数中包含一个随机数或者时间戳

  请求之前需要对请求参数做进一步处理(如:对敏感参数进行加密)

 

 

 

5.关联

1)如何实现?

要获取某个请求的响应结果数据,可以通过在‘Tests’标签页中编写JavaScript脚本来实现

// 获取JSON格式的响应数据

var jsonData = pm.response.json();

多个请求之间可以使用全局变量或环境变量来传递数据

// 把数据保存到全局变量中

pm.globals.set("city", city);

获取某个全局变量的值:{{var_name}}

6.批量执行测试用例

操作步骤

1).点击测试集中的“Run”按钮,批量运行测试用例

 

 

 2).弹出Collection Runner窗口,点击运行按钮

3).查看测试结果如上图

 

7.读取外部文件实现参数化

应用场景: 针对于某个接口,如果有大量的测试数据需要批量验证,可以把测试数据保存到数据文件中,通过参数化的方式来实现。

案例:

需求:批量查询手机号归属地和所属运营商信息,并校验运营商数据是否正确

接口地址: http://cx.shouji.360.cn/phonearea.php?number=13012345678

部分测试数据:

 

 

 

定义数据文件

csv格式:

  phone,sp

  13012345678,联通

  13800001111,移动

  18966778899,电信

Json格式:

[

  {"phone":"13041092162", "sp":"联通"},

  {"phone":"13820003536", "sp":"移动"},

  {"phone":"18911236688", "sp":"电信"}

]

实现步骤如上

 

 

8.newman

Newman是一款基于nodejs开发的可以运行Postman脚本的工具,并可以生成测试报告

使用newman命令,运行导出的测试集脚本,打开cmd输入:

newman run 测试脚本文件 -e 环境变量文件 -d 测试数据文件 -r html --reporter-html-export report.html

eg:

newman run demo.postman_collection.json -r html

newman run demo.postman_collection.json -r html --reporter-html-export report.html

命令说明

run xxx.json:表示要执行的postman脚本,即导出的测试集数据

-e source:用来指定环境变量文件的路径

-d source:用来指定测试数据文件的路径

-r html:用来指定生成的数据结果的类型,如json、html等

--reporter-html-export source:指定html报告生成的路径;如果不设置该参数,则会在当前目录下生成一个名字为newman的文件夹