接口测试工具(postman)

本文介绍了Postman接口测试工具的使用,包括请求中常见的数据传递格式如URL请求字符串、表单、JSON等,以及案例分析。重点讲解了用例管理中的创建测试集,断言的定义和Postman特有的断言方法,如响应状态码、响应数据的JSON验证、包含特定字符串等。此外,还详细阐述了Postman中的全局变量和环境变量的定义、设置、获取及其优先级规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.0 使用界面以及步骤

 

 

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

1.1.1 URL中请求字符串

数据类型:字符串

https://tieba.baidu.com/f?ie=utf-8&kw=%E7%BE%8E%E9%A3%9F&fr=search

请求方式:get

请求头:/(没有改)

1.1.2 表单

数据类型:表单

样例数据:

请求方式:post

请求头:

Content-Type:application/x-www-form-urlencoded

1.1.3  json

数据类型:json

样例数据:

````
{
    "username":"xx",
    "password":"asd123"
}
````

请求方式:post

请求头:

content-type:application/json

1.1.4 表单与json区别

类型说明
表单(form)最常见的post数据提交方式,默认浏览器数据提交方式
post目前最流行的数据传递方式

2.0 案例

2.1 查询参数案例

2.2 form表单

 

3.0 用例管理

3.1 创建测试集 

 

 标记:可以调整顺序

4.0 断言

4.1 定义

让程序代替人判断测试用例执行的结果是否符合预期的过程

4.2 postman断言

'小王'
'小王'去吃饭
'小王'去洗碗
'小王'去睡觉
​
'小王'
'小王'去吃饭
'小王'去洗碗
'小王'去睡觉
username = input('请输入用户名')
username去吃饭
username去洗碗
username去睡觉

4.3 常见的断言

4.3.1 断言响应状态码

样例代码:
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test是postman对外提供的一种方法,名字是test

pm.test的功能是,编写cesium脚本时,如果方法内部处理内容出现错误也不影响后续自动化脚本的运行

4.3.2 断言响应数据是json

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

var 关键字,用来申明一个变量

pm.test("Your test name", function () {
    pm.expect(pm.response.json().value).to.eql(100);
});

4.3.3 断言包含指定的字符串

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

4.3.4 断言等于指定的字符串

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});


具体的应用:判断是否返回指定的json响应,例如判断是否登录成功

pm.test("判断用户名或者密码错误", function () {
    pm.response.to.have.body('{"status":-2,"msg":"密码错误!"}');
});

注意点:引号的问题

4.3.5 断言响应头信息

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

4.3.6 断言请求成功

pm.test("断言请求成功", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 202,200]);
});

5.0 变量

5.1 映射在Python中

LEGB

5.2 postman中的全局变量

5.2.1 定义

全局变量是全局唯一的,不可以重复定义的变量,存在多个环境,例如开发环境,生产环境,测试环境。

5.2.1 设置

手动设置

注意:不允许重复定义变量变量

代码设置

pm.globals.set("全局变量的变量名", "全局变量的值");

在tests中设置完成,全局变量没有生效,请求发送之后,全局变量设置生效

5.2.2 获取

手动实现

{{全局变量名}}

代码实现

// 获取全局变量name对应的值
var name = pm.globals.get('name');
console.log(name)

5.3 postman中的环境变量

5.3.1 定义

环境和环境之间,可以定义重复的变量;一个环境可以包含多个环境变量;在当前环境中,不允许重复定义变量

5.3.2 设置(set)

手动设置

 代码设置

pm.environment.set("subject", "测试");

5.3.3 获取(get)

手动实现

{{环境变量的变量名}}

代码实现

//  获取环境变量
var subject = pm.environment.get("subject");
console.log(subject)

5.3.4 注意点

类似python的LEGB原则,环境变量的优先级高于全局变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值