postman提取响应的列表参数,并传入下一个接口中

1.如何将接口中的同一个字段的数据循环取出来?

 接口返回的数据结构如图,取出图中的所有的id,在接口请求的tests里放入如下代码


// new 一个对象接收响应信息
var jsonData = pm.response.json();

// new 一个对象接收 count 列表字段的长度(循环遍历次数)
var count = jsonData.data.list.length

// new 一个空列表(一会接收并存储id)
var list = []

// 开始 for 循环遍历 num 列表
for(var i=0; i < count; i++ ){
    // 使用变量 ids 接收所有id的信息
    ids = jsonData.data.list[i].id
    
    // 使用空列表 list 存储遍历的id
    list.push(ids)
};

// 控制台打印formid列表
console.log("查看当前页id:",list)



 2.如何循环入参?

如何将上一个接口获取到的接口参数多次循环入参,没有查找到别的好办法,目前先用下面的方法代替。

2.1 放在一个text.json文件里面,结构如下

 2.2 创建一个collection,下面创建一个request

 2.3 runcollection        

 3.全局变量的设置

//设置当前时间戳
postman.setGlobalVariable("time",Math.round(new Date().getTime()/1000));
time = postman.getGlobalVariable('time')

//设置KEY_WORD为全局变量
postman.setGlobalVariable("Key","xxxx")
KEY_WORD = postman.getGlobalVariable("Key");

//字符串进行md5加密
var str = KEY_WORD+time;
var strmd5= CryptoJS.MD5(str).toString();
postman.setGlobalVariable("sign",strmd5)

//获取随机字符串
postman.setGlobalVariable("random_num", ("0000" + (Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4));

//随机数
var test = parseInt(Math.random()*9);
//打印出生成的随机数,便于调试
console.info("随机生成test为",test)
//将生成的随机数设置为全局变量
postman.setGlobalVariable("Num", test);

3.断言

3.1判断响应status是2or0,均为通过

pm.test("Status是否等于0", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.status).to.be.oneOf([0,2]) 
});

在C语言,由于其本身并不支持直接解析HTTP请求或处理POSTMAN这样的高级功能,我们通常需要借助外部库如`libcurl`来发送网络请求,并通过字符串操作来处理返回的数据。不过,如果你想简单地从命令行参数获取URL并分析其的查询参数(GET请求参数),你可以设计一个简单的函数来分割URL。 以下是一个示例函数,它接收一个URL作为输入,假设URL查询参数部分是以"?"字符分隔的: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char *key; char *value; } Parameter; // 函数用于分割URL并提取查询参数 Parameter* parse_url_params(char* url) { if (!url || !strlen(url)) { printf("Invalid URL provided.\n"); return NULL; } char *query_start = strchr(url, '?'); if (!query_start) { // 如果没有查询参数 return NULL; } query_start++; // 跳过问号 Parameter *params = (Parameter*)malloc(sizeof(Parameter)); params->key = malloc(strlen(query_start) + 1); strncpy(params->key, query_start, strlen(query_start)); params->value = ""; size_t i = 0; while (true) { char *equals_pos = strchr(query_start + i, '='); if (!equals_pos) { // 如果遇到最后一个参数 break; } *equals_pos++ = '\0'; // 将等号替换为终止符 params->value = realloc(params->value, strlen(equals_pos) + 1); strncat(params->value, equals_pos, strlen(equals_pos)); i = equals_pos - query_start + 1; // 更新索引到下一个参数开始位置 } params->value = realloc(params->value, strlen(params->value) + 1); // 添加终止符 params->value[strlen(params->value)-1] = '\0'; // 确保结尾没有'\0' return params; } // 使用示例 int main(int argc, char** argv) { if (argc != 2) { printf("Usage: %s <url>\n", argv[0]); return 1; } char *url = argv[1]; Parameter *params = parse_url_params(url); if (params) { printf("Key: %s, Value: %s\n", params->key, params->value); free(params->key); free(params->value); free(params); } else { return 1; } return 0; } ``` 这个函数仅适用于简单的GET请求参数提取。如果你需要更复杂的网络请求或POST数据处理,你需要引入网络库并编写更多的代码来解析JSON响应或其他格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值