Postman 测试脚本,用于匹配每个项目内的 2 个键值

问题描述 投票:0回答:1

以下是测试响应的样子:

[
    {
        "label": "Summer '14",
        "url": "/services/data/v31.0",
        "version": "31.0"
    },
    {
        "label": "Winter '15",
        "url": "/services/data/v32.0",
        "version": "32.0"
    },
    {
        "label": "Spring '15",
        "url": "/services/data/v33.0",
        "version": "33.0"
    }
]

现在,我想测试以确保每个项目的每个 URL 键都包含与以下值匹配的值:

"/services/data/v"
+ 它后面的版本号必须与为相同项目给出的版本号完全相同作为版本键的值。

我实际上创建了一段正在接收传递结果的脚本:

pm.test("URL matches the format and version matches the version key", function () {
    const response = pm.response.json();
    
    response.forEach(item => {
        // Extract version from the URL
        const urlPattern = /^\/services\/data\/v(\d{2}\.\d)$/;
        const match = item.url.match(urlPattern);

        // Verify the URL follows the expected format
        pm.expect(match).to.not.be.null; // Ensure the URL matches the pattern

        // Extract the version from the URL if the pattern matched
        const urlVersion = match ? match[1] : null;

        // Verify the extracted version matches the version key
        pm.expect(urlVersion).to.eql(item.version); 
    });
});

现在,我实际上需要的是具有 Postman 测试经验或一般 JavaScript 测试经验的人的确认。这个脚本实际上正在做我期望它做的事情吗?

javascript postman web-api-testing
1个回答
0
投票

是的,您创建的正则表达式与 /services/data/v 匹配,并且您正在正确检查版本。

© www.soinside.com 2019 - 2024. All rights reserved.