3天精通Postman---动态参数;断言;CSV数据驱动;Mock Server

DAY2课题:Postman接口关联&动态参数&断言&CSV数据驱动

一、接口关联,接口依赖,多接口串联,组合API

第一个接口的返回值作为第二个接口的参数。
javascript通用语法:
1.所有的符号都必须是英文状态下的符号
2.每一句代码后都必须有;结束。有if或for除外。
3.变量通过var定义。
第一种接口关联方式:json提取器的方式实现接口关联,只能针对Josn数据
//打印
console.log(responseBody);
//把返回的json字符串转换成对象。
var jsonObj = JSON.parse(responseBody);
//从对象中取出access_token的值并设置全局变量
pm.globals.set("access_token",jsonObj.access_token);
第二种接口关联方式:正则表达式提取器的方式实现接口关联,所有数据都可以。
//通过返回的结果匹配一个正则表达式去得到需要的值
var datas = responseBody.match(new RegExp('"access_token":"(.*?)"'));
//从变量中取出access_token的值并设置全局变量
pm.globals.set("access_token",datas[1]);
其他的方法:
1.获取响应头的值
var content_type = postman.getResponseHeader("Content‐Type");
console.log(content_type);
2.获取响应的Cookie的值
var csrf_token = postman.getResponseCookie("csrf_token");
console.log(csrf_token.value);
3.如果返回的是xml的值,那么可以转化成对象
var jsonObject = xml2Json(responseBody);

二、Postman的动态参数(随机数)

1.内置的动态参数: 有局限。局限在于无法断言。
{{$timestamp}}  生成当前时间的时间戳
{{$randomInt}}   生成0-1000的随机数
{{$guid}}             生成一个很长的GUID的随机字符串
2.自定义的动态参数或函数。
自定义时间戳参数
//自定义动态参数时间戳
var times = Date.now();
console.log(times)
//设置为全局变量
pm.globals.set("times", times);

随机整数

//随机数
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) +min; 
//打印 
console.log(randomMobile(100000000,999999999));
随机手机号
//随机数
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) +min; 
//随机手机号
var randomMobile = `18${randomInt(100000000,999999999)}`; 
//打印 
console.log(randomMobile);
等待N秒实现:有些接口有调用时间限制,5秒之内只能调用1次。
const sleep = (milliseconds) => {
    const start = Date.now();
    while (Date.now() <= start + milliseconds) {}
    };
    //等待5秒
    sleep(5000)
    console.log("---------结束----------");

三、Postman的环境变量和全局变量

全局变量:在所有环境所有接口都可以访问的变量。
环境变量:在当前环境所有接口都可以访问的变量。

四、Postman断言

断言是判断预期结果和实际结果是否一致。
1.状态断言:断言返回码为200,一般只有一个。
2.业务断言:判断最核心的业务关键字。可以有多个。
断言状态码为200 (必用)
断言返回的结果中包含有一个字符串。 (常用)
断言检查返回的json对象中的字段值。 (一般用于当返回是json对象时)
断言返回的body等于一个字符串。 (一般用于当返回的结果很少时)
检查是否包含有Content-type的响应头
检查请求耗时少于200ms
检查post请求的响应码是否是一个值
检查返回的信息是否是一个字符串
//状态断言:检查返回的状态码为200 
pm.test("检查返回的状态码为200", function () {
    pm.response.to.have.status(200);
    });
//业务断言:检查返回的结果中包含有access_token字符串
pm.test("检查返回的结果中包含有access_token字符串", function () {
    pm.expect(pm.response.text()).to.include("access_token");
});
//检查返回的结果中的json里面的expires_in的值为7200
pm.test("检查expires_in的值为7200", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.expires_in).to.eql(7200);
});
//检查返回的body等于一个字符串
// pm.test("Body is correct", function () {
//     pm.response.to.have.body("response_body_string");
// });
//断言响应头中有Content‐Type
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});
//断言时间少于200ms
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
//断言状态码在一个区间
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([200, 202]);
});
//断言返回信息
pm.test("Status code name has string", function () {
    pm.response.to.have.status("OK");
});
在断言中不能通过{{}}获取全局变量:可以通过以下方式获取:
pm.globals.get("times")
全局断言

五、其他接口类型

1.文件上传接口。

2.必须带请求头的接口。
1.抓包工具中复制请求头

2.Bulk Edit编辑请求头

3.Key-Value Edit转化成

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Postman中,可以使用CSV文件来进行数据驱动的接口测试。首先,你需要将接口中的一些固定值改为变量,并从CSV文件中获取这些变量的值。确保CSV文件的列名与你在接口文档中定义的字段名称一致。然后,你可以使用Postman的预请求脚本来读取CSV文件并将变量的值设置为CSV文件中对应列的值。接下来,你可以在测试用例中使用这些变量来发送请求,并进行断言验证。 以下是一个示例的预请求脚本,用于从CSV文件中读取变量的值并设置为全局变量: ``` // 读取CSV文件 const csvData = pm.iterationData.toObject(); // 设置变量的值 pm.globals.set("username", csvData.username); pm.globals.set("password", csvData.password); ``` 在测试用例中,你可以使用这些全局变量来构建请求,并进行断言验证。例如,你可以在请求的Body中使用`{{username}}`和`{{password}}`来代替实际的值。 通过这种方式,你可以使用CSV文件中的不同数据来执行相同的接口测试用例,实现数据驱动的测试。 引用\[2\]中提到了Postman的其他功能,如保存测试用例、响应数据比较、批量执行等,这些功能可以帮助你更方便地进行接口测试。 引用\[3\]中提到了断言设置,你可以根据接口返回的响应数据进行断言验证,确保接口的预期结果与实际结果一致。 希望这些信息对你有帮助! #### 引用[.reference_title] - *1* *2* [如何使用postman进行参数传递以及csv数据驱动](https://blog.csdn.net/Chen_798/article/details/123312938)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [PostmanCSV或JOSN文件实现数据驱动参数化)](https://blog.csdn.net/weixin_37600187/article/details/128115648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天草柑橘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值