postman变量,断言,参数化

环境变量

1.创建环境变量

正式环境是错误的,方便验证环境变化

2.在请求中添加变量

3.运行前选择环境变量

全局变量

能够在任何接口访问的变量

console中打印日志

复制代码
console.log(responseBody);

//将数据解析为json格式
var data = JSON.parse(responseBody);
console.log(data.access_token);

手动关联接口

方式一:json提取器

复制代码
在第一个接口提取变量

//获取access_token的值
var access_token = data.access_token;
//这个变量保存到环境变量中,这样大家都能用了
pm.environment.set("access_token", access_token);


在第二个接口使用变量

{{access_token}}

设为环境变量

复制代码
//将数据解析为json格式
var data = JSON.parse(responseBody);
console.log(data.access_token);
//获取access_token的值
var access_token = data.access_token;
//这个变量保存到环境变量中,这样大家都能用了
pm.environment.set("access_token", access_token);

设为全局变量

方式二:正则表达式提取

复制代码
第一个接口提取:
var result = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log(result[1]);
pm.globals.set("token",result[1]);

第二个接口:
{{token}}

postman内置动态参数

{{$timestamp}} 时间戳

{{$randomInt}} 随机0-1000

{{$gui}} 随机guid

自定义动态参数

script->pre-request

复制代码
var times= Date.now();
pm.globals.set("times",times)

使用时
{{times}}

断言

断言一般包括

  1. 状态断言
  2. 业务断言

常用断言

复制代码
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

自定义动态参数的断言

create-tag请求中

将动态参数在pre-request

复制代码
var tagname = "tag"+Math.random().toString(36).substring(2,15)
pm.globals.set("tagname", tagname);

body中使用tagname

复制代码
{
    "tag": {
        "name": "{{tagname}}" //标签名   } 
        } 
}

在断言中

添加方式

复制代码
pm.globals.get("tagname")
globals.tagname
globals["tagname"]

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

console.log(responseBody)
var tagid = responseBody.match(new RegExp('"id":(.*?),'));
console.log(tagid[1])

//设置标签为全局变量
pm.globals.set("tagid", tagid[1]);
设置变量 tagname
tagname = pm.globals.get("tagname");
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.tag.name).to.eql(tagname);
});

全局断言

数据驱动

1.先写参数csv

2.在请求中设置对应参数

3.修改断言

4.执行测试用例时上传参数csv文件

相关推荐
EVE จุ๊บ18 小时前
playwright和selenium的区别是什么
selenium·测试工具
Meta Luo2 天前
页面改版后自动化用例大量失败,应该怎么维护?
运维·功能测试·测试工具·自动化
释槐鸟~3 天前
还不知道RIDE工具怎么装吗
测试工具·自动化
有技巧搬砖3 天前
为什么锂电池组的电池老化测试很重要?
测试工具·锂电池·电池老化
蒲公英内测分发4 天前
智能手表卖出去后,包装、说明书和官网里的 App 下载入口怎么统一?
前端·人工智能·测试工具·智能家居·智能硬件·智能手表
蒲公英内测分发4 天前
智能手环出海测试,海外合作方分散在不同国家,Android 测试包怎么持续分发和更新?
android·前端·人工智能·测试工具·智能手表
无语的小歪歪4 天前
ATF 智测 1.0
python·测试工具·集成测试
SHENGWEI胜为4 天前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
xie881018025 天前
长表格跨页重复表头:排版上的做法
测试工具
老孟说禅5 天前
测试工具示波器的使用
测试工具