csv Postman:使用不同的输入数据集多次运行请求,并根据输入形成请求主体

7xllpg7q  于 11个月前  发布在  Postman
关注(0)|答案(2)|浏览(142)

我有一个登录API请求,在请求体中有3个参数(比如userName,password & remember)。在这2个参数中(userName和password是必填的,remember参数是可选的)。在运行时从CSV文件中读取输入,文件中的数据如下。


的数据
现在我想对给定的输入使用相同的请求,并根据输入形成请求体。请求:POST https://gateway.com/v1/login例如,对于不同的迭代,请求体应该如下所示。

迭代1,

{
    "userName": "{{userName}}",
    "password": "{{password}}"
}

字符串

迭代2,

{
    "userName": "{{userName}}",
    "password": "{{password}}",
    "remember": {{remember}}
}

迭代3,

{
    "userName": "{{userName}}",
    "password": "{{password}}",
    "remember": {{remember}}
}


并且Assert应该基于返回的响应而特定于每个迭代。有人能帮助如何实现这一点吗?

pkbketx9

pkbketx91#

CSV中每一行的迭代数据在特殊的“data”变量中可用。
这将创建一个JSON对象(几乎符合您请求的格式)。

{userName: "test1", password: "test@123", remember: ""}

字符串
问题是它读取CSV的头,所以你总是把头作为对象中的键,不管它们是否包含数据。
因此,您需要在将其用作请求的主体之前对其进行清理。

let iterationData = data;
// console.log(iterationData);

for (var key in iterationData) {
    if (iterationData[key] === "") {
        delete iterationData[key];
    }
}

// console.log(iterationData);

pm.request.body.raw = JSON.stringify(iterationData);


如果您将body设置为raw/JSON,但将内容留空,那么如果您在pre-request脚本中有此代码,它将为您创建body。
x1c 0d1x的数据

jc3wubiy

jc3wubiy2#

你可以在postman中使用Prerequest scriptsVariables来存储你的csv内容,然后循环访问它。(你可以使用set variables in prerequest scripts
使用setNextRequest应该允许你循环你的请求(示例在这里)
最后,一定要阅读这篇似乎能回答你问题的内容:)
https://community.postman.com/t/running-a-request-multiple-times-with-different-data-sets/1064https://community.postman.com/t/how-to-loop-through-array-and-use-its-values-in-a-request/6771

相关问题