标签: postman-testcase

邮递员脚本:如何解码令牌

我正在使用邮递员编写脚本。

  1. 首先,我执行检索oauth 令牌的请求。

  2. 然后,在“测试”选项卡中,我使用邮递员脚本来使用收到的令牌来设置全局(邮递员)变量。

此外,我想解码令牌,因为我想使用令牌内的信息将它们设置为变量。令牌有效负载是 base 64 url编码的。

我怎么做?

在此处输入图片说明

在此处输入图片说明

javascript postman postman-pre-request-script postman-testcase

9
推荐指数
1
解决办法
5276
查看次数

邮递员:如何断言所有数组元素存在于其他数组中?

我断言 array1 中的元素是否存在于 array2 中,下面是数组示例,

var array1 = [
        {
            "name": "appe",
            "loc": "war",
            "order": 5,
            "neck": "NO",
            "end": false
        },
        {
            "name": "con",
            "loc": "conve",
            "order": 15,
            "neck": "NO",
            "end": true
        }]

var array2 = [{"neck":"NO"
"end":true,
"loc":"conve",
"name":"con",
"order":15
}]
Run Code Online (Sandbox Code Playgroud)

我尝试过的代码 -

const lodash = require("lodash");
    for(var i = 0; i < array2.length; i++ )
    {
            tests['response json contain Data'] = lodash._.has(points, array2[i]);
            //pm.expect(array2[i]).to.be.oneOf(array1);

    }
Run Code Online (Sandbox Code Playgroud)

我得到的错误 -

response json contain Data | AssertionError: expected false to be truthy …
Run Code Online (Sandbox Code Playgroud)

javascript arrays json postman postman-testcase

9
推荐指数
1
解决办法
8798
查看次数

为什么环境变量在邮递员流程中没有更新?

当我在邮递员中使用普通 api 调用并运行测试脚本并设置环境值来调用 api 时,它正在工作,但是当我在邮递员流程中使用该 api 时,环境不会改变。

我的测试中的脚本: pm.environment.set('email', body.email)

postman postman-testcase

7
推荐指数
1
解决办法
9586
查看次数

邮差在预请求脚本中获取随机用户名

我想在每次运行请求时生成一个使用 API 创建的随机用户。

我有一个电子邮件环境变量,每次发送用户创建请求时我希望将其设置为随机电子邮件。

我目前有:

pm.environment.set("Email", pm.globals.get("$randomUserName") + "@myDomain.co.uk");
Run Code Online (Sandbox Code Playgroud)

我想从中获取一个随机用户名$randomUserName

但是,我似乎无法找到如何从“预请求脚本”部分中的 $randomUserName 获取值。

javascript api postman postman-pre-request-script postman-testcase

6
推荐指数
1
解决办法
1万
查看次数

邮递员 pm 设置环境变量

我将获得 JWT 令牌作为响应,我需要将该 JWT 令牌设置为邮递员中的环境变量,这是我的代码

pm.test("access_token is working", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.access_token).to.exist;
});

pm.environment.set("jwt_token", pm.test);
Run Code Online (Sandbox Code Playgroud)

当 JWT 令牌发生更改时,邮递员环境变量应设置为新值

javascript postman postman-testcase

6
推荐指数
2
解决办法
1万
查看次数

Postman 测试在响应数组中查找关键字

我正在邮递员中创建一个测试,以检查 JSON 中每个“名称”字段中的关键字“怀孕”。如果 JSON 中的每个“名称”字段都包含关键字,则通过测试,否则失败。

找到下面我尝试使用的脚本

var jsonData = pm.response.json(); 

var resultCount = jsonData.length;
for (i=0;i<resultCount;i++){
    var modelString = jsonData[i].name;
    if(modelString.indexOf("Pregnancy") > 0)
    {
       tests["Each organisation name field " +i+ " contains   \"Pregnancy\""] = modelString.has("Pregnancy");
    }
    else
    {
       pm.expect.fail("failed");
    }
}
console.log("")

[
    {
        "id": "1-116992830",
        "name": "British Pregnancy Advisory Service      (BPAS)",
        "numberOfLocations": 78
    },
    {
        "id": "1-1560082724",
        "name": "PAMS Pregnancy Ultrasound Centre      (PAMS 3D &     4D Baby Imaging)",
        "numberOfLocations": 1
    },
    {
        "id": "1-2458518720",
        "name": "Pregnancy Ultrasound Ltd      (Babyface4d)", …
Run Code Online (Sandbox Code Playgroud)

javascript postman postman-collection-runner postman-testcase

5
推荐指数
1
解决办法
1万
查看次数

有没有办法从邮递员响应中检索重定向的 url?

我正在尝试在 Postman 中提交一个表单,然后重定向到另一个 url。重定向的 url 查询字符串包含一些我想在下次调用中使用的信息。这甚至可能吗,如果是,如何?

我在 Postman 文档中找不到任何关于此的内容。

postman postman-testcase

5
推荐指数
1
解决办法
5985
查看次数

Postman 条件测试 json 主体数组是否为空 = 跳过测试

我想将 Postman/Newman API 测试集成到 CICD 中,因此测试结果应该始终通过(或跳过)。因此,我想使用条件测试,取决于响应的数据。

我尝试了GitHub上描述的方法,但我的情况有很大不同。

因此,如果响应的 json 正文包含空数组,则应跳过测试。如果没有,请执行测试...

空数据

{
    "data": []
}
Run Code Online (Sandbox Code Playgroud)

可测试数据

{
    "data": [
        {
            "key1": "value1",
            "key2": {
                "amount": 1357,
                "unit": "units"
            },
            "from": "2019-08-01",
            "to": "2019-08-31",
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

测试脚本

let response = JSON.parse(responseBody);

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

(pm.expect(pm.response.json().data).to.be.empty === true ? pm.test.skip : pm.test)('Body is empty', function () {
    pm.environment.set("key2Amount", response.data[0].key2.amount);
    var key2Amount = pm.environment.get("key2Amount");

    pm.test("Response includes corresponding amount", function () {
       pm.expect(pm.response.json().data[0].key2.amount).to.eql(key2Amount);
    });
});
Run Code Online (Sandbox Code Playgroud)

空数据:TypeError: …

javascript postman postman-testcase

5
推荐指数
1
解决办法
1万
查看次数

PostMan UI 在测试后显示带有删除线文本的变量

我运行 PostMan 查询并收到不记名令牌。BearerToken该测试设置了如下命名的全局变量:

if (responseBody !== "undefined")
{
     tests["Bearer Token = " + responseBody] = true; 
     pm.globals.set("BearerToken", responseBody);  
}
Run Code Online (Sandbox Code Playgroud)

当我查看眼睛按钮中的值时,它会显示Current Value带有删除线的文本:

在此输入图像描述

在下一个使用 的查询中BearerToken,它起作用了。

删除线的含义是什么?

postman postman-testcase

4
推荐指数
1
解决办法
1426
查看次数

检查 Postman 测试用例中的空值 .not.eql() 或 .not.equal() 不起作用

我正在处理一个 API 项目并使用 Postman 来测试 API。我写了几个测试用例来检查 null 如下,

//user id is present
pm.test("user id is present", function() {
    pm.expect(jsonData.data[0].userId).not.eql(null);
});
Run Code Online (Sandbox Code Playgroud)

.not.equal()按照这个答案中的描述尝试过。

//user id is present
pm.test("user id is present", function() {
    pm.expect(jsonData.data[0].userId).not.equal(null);
});
Run Code Online (Sandbox Code Playgroud)

但是,即使 userId 是null. 有没有想过在 Postman 测试用例中检查空值?

chai postman postman-testcase

3
推荐指数
1
解决办法
1万
查看次数

使用 TV4 进行 Postman 模式验证

我在测试选项卡中使用 tv4 验证 Postman 中的架构时遇到问题 - 无论我提供什么,它总是返回一个真实的测试。我完全不知所措,真的需要帮忙 - 这是我的示例 JSON 响应和我的测试:

我已经尝试了我能找到的每个 Stack Overflow/教程的大量变体,但没有任何效果 - 它总是返回 true。

//Test Example 

var jsonData = JSON.parse(responseBody);
const schema = {
"required" : ["categories"],
"properties": {
"categories": {
    "required" : ["aStringOne", "aStringTwo", "aStringThree" ],
    "type": "array",
    "properties" : {
        "aStringOne": {"type": "string" },
        "aStringTwo": {"type": "null" },
        "aStringThree": {"type": "boolean" }
    }
}
}
};

pm.test('Schema is present and accurate', () => {
var result=tv4.validateMultiple(jsonData, schema);
console.log(result);
pm.expect(result.valid).to.be.true;
});

//Response Example

{
"categories": [ …
Run Code Online (Sandbox Code Playgroud)

automated-tests postman web-api-testing postman-testcase

2
推荐指数
1
解决办法
3392
查看次数

如何在 Postman Tests 选项卡中获取请求正文参数?

我正在为端点编写测试集合,我希望测试检查响应参数estadoAula是否与请求参数estadoAula具有相同的值,以便我可以测试一切是否按预期进行。参数需要在正文中发送,而不是在 URL 中发送

\n\n
Request Body\n{\n    "estadoAula": "1"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n
Response Body\n{\n    "idAula": "8d4cf346-cda0-47ca-acae-33981738b4b6",\n    "estadoAula": "1"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n
Test\n\npm.test("Estado modificado correctamente",function(){\n    var data = pm.response.json();\n    let estadoAula = pm.request.body.estadoAula; <--- this doesn\xc2\xb4t work, I need to get request param \'estadoAula\' \n    pm.expect(data.estadoAula).to.eql(estadoAula);\n});\n
Run Code Online (Sandbox Code Playgroud)\n

postman postman-testcase

0
推荐指数
1
解决办法
6897
查看次数