【问题标题】:How to store data in an array that is stored in a variable?如何将数据存储在存储在变量中的数组中?
【发布时间】:2018-02-08 03:08:21
【问题描述】:

以下是我的问题:

我现在正在测试一个系统,它在每个请求中都有多个 ID。我想将 2 个 ID 存储在一个数组中,然后让它们再次运行响应。

以下是我收到的身体

{
"id" = 1234;
"Name" = "Meier"
}

所以,我通常将 ID 存储为

var body = JSON.parse(responseBody);
postman.setEnvironmentVariable("ID", body.id);

我可以在变量中存储 1 个 ID,但不能在其中放入第二个 ID。为此,我必须复制请求,设置第二个变量,每次更改所需案例时更改代码。

我现在想知道的是:如何将多个 ID 存储在环境变量中,以便将它们与集合结束时的响应进行比较?

【问题讨论】:

    标签: javascript arrays testing postman


    【解决方案1】:

    我对邮递员并不完全熟悉,但如果我理解正确并且您想存储响应中的 ID,那么您可以使用类似 -

    var body = JSON.parse(responseBody);
    var storedIds = postman.getEnvironmentVariable("ID");
    
    if(storedIds) {
        storedIds.push(body.id)
    } else {
        storedIds = [body.id]
    }
    
    postman.setEnvironmentVariable("ID", storedIds);
    

    编辑

    从我自己的谷歌搜索来看,您似乎无法将数组存储在邮递员的环境变量中。因此,您可以尝试做这样的事情 -

    var body = JSON.parse(responseBody);
    var storedIds = postman.getEnvironmentVariable("ID");
    
    if (storedIds) {
        storedIds = storedIds.concat(',' + body.id)
    } else {
        storedIds = body.id
    }
    
    postman.setEnvironmentVariable("ID", storedIds);
    

    然后当你想读回它以循环它或你想做的任何事情时,你可以使用

    var idsArray = postman.getEnvironmentVariable("ID").split(',')
    

    这会将字符串拆分成一个数组。

    【讨论】:

    • 这是一个不错的方法。如果我第一次运行这段代码,一切都运行良好。但如果我第二次运行它,我会收到错误“storeIDs.push 不是函数”
    • 我做了一些谷歌搜索,看起来你不能直接在邮递员环境变量中存储数组。请查看更新的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多