我正在使用邮递员编写脚本。
首先,我执行检索oauth 令牌的请求。
然后,在“测试”选项卡中,我使用邮递员脚本来使用收到的令牌来设置全局(邮递员)变量。
此外,我想解码令牌,因为我想使用令牌内的信息将它们设置为变量。令牌有效负载是 base 64 url编码的。
我怎么做?
javascript postman postman-pre-request-script postman-testcase
我断言 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
}]
我尝试过的代码 -
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);
    }
我得到的错误 -
response json contain Data | AssertionError: expected false to be truthy …当我在邮递员中使用普通 api 调用并运行测试脚本并设置环境值来调用 api 时,它正在工作,但是当我在邮递员流程中使用该 api 时,环境不会改变。
我的测试中的脚本: pm.environment.set('email', body.email)
我想在每次运行请求时生成一个使用 API 创建的随机用户。
我有一个电子邮件环境变量,每次发送用户创建请求时我希望将其设置为随机电子邮件。
我目前有:
pm.environment.set("Email", pm.globals.get("$randomUserName") + "@myDomain.co.uk");
我想从中获取一个随机用户名$randomUserName
但是,我似乎无法找到如何从“预请求脚本”部分中的 $randomUserName 获取值。
javascript api postman postman-pre-request-script postman-testcase
我将获得 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);
当 JWT 令牌发生更改时,邮递员环境变量应设置为新值
我正在邮递员中创建一个测试,以检查 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)", …javascript postman postman-collection-runner postman-testcase
我正在尝试在 Postman 中提交一个表单,然后重定向到另一个 url。重定向的 url 查询字符串包含一些我想在下次调用中使用的信息。这甚至可能吗,如果是,如何?
我在 Postman 文档中找不到任何关于此的内容。
我想将 Postman/Newman API 测试集成到 CICD 中,因此测试结果应该始终通过(或跳过)。因此,我想使用条件测试,取决于响应的数据。
我尝试了GitHub上描述的方法,但我的情况有很大不同。
因此,如果响应的 json 正文包含空数组,则应跳过测试。如果没有,请执行测试...
空数据
{
    "data": []
}
可测试数据
{
    "data": [
        {
            "key1": "value1",
            "key2": {
                "amount": 1357,
                "unit": "units"
            },
            "from": "2019-08-01",
            "to": "2019-08-31",
        }
    ]
}
测试脚本
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);
    });
});
空数据:TypeError: …
我运行 PostMan 查询并收到不记名令牌。BearerToken该测试设置了如下命名的全局变量:
if (responseBody !== "undefined")
{
     tests["Bearer Token = " + responseBody] = true; 
     pm.globals.set("BearerToken", responseBody);  
}
当我查看眼睛按钮中的值时,它会显示Current Value带有删除线的文本:
在下一个使用 的查询中BearerToken,它起作用了。
删除线的含义是什么?
我正在处理一个 API 项目并使用 Postman 来测试 API。我写了几个测试用例来检查 null 如下,
//user id is present
pm.test("user id is present", function() {
    pm.expect(jsonData.data[0].userId).not.eql(null);
});
也.not.equal()按照这个答案中的描述尝试过。
//user id is present
pm.test("user id is present", function() {
    pm.expect(jsonData.data[0].userId).not.equal(null);
});
但是,即使 userId 是null. 有没有想过在 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": [ …我正在为端点编写测试集合,我希望测试检查响应参数estadoAula是否与请求参数estadoAula具有相同的值,以便我可以测试一切是否按预期进行。参数需要在正文中发送,而不是在 URL 中发送
\n\nRequest Body\n{\n    "estadoAula": "1"\n}\nResponse Body\n{\n    "idAula": "8d4cf346-cda0-47ca-acae-33981738b4b6",\n    "estadoAula": "1"\n}\nTest\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