📜  测试脚本

📅  最后修改于: 2021-01-08 01:40:32             🧑  作者: Mango

测试脚本

服务器收到响应后,将执行测试脚本。在邮递员中,我们可以编写测试脚本来测试Javascript中的API请求。测试脚本用于测试您的API是否正在相应地工作,确定服务之间的集成是否正常运行以及检查新的开发是否不影响现有请求的任何功能。测试脚本也称为请求后脚本。

我们可以使用测试代码来调试您的API项目的过程。例如,您可以使用测试脚本通过提交不完整的数据请求来验证API的错误处理。

我们可以对单个请求,文件夹或集合运行测试脚本。让我们看一个简单的示例,将测试脚本添加到请求中:

  • 打开邮递员控制台。要打开邮递员控制台,请从窗口底部选择“邮递员控制台”图标,或按ctrl + alt + c。

从控制台清除旧日志。

  • 现在,在URL文本字段中输入URL。

  • 转到“测试”选项卡并编写以下脚本:
console.log ("This is a tests script")
  • 按下发送按钮并检查邮递员控制台。

在这里,您可以看到请求执行后测试脚本正在运行。

使用测试脚本创建变量

在这里,我们将使用环境变量。

  • 转到“环境”快速查看按钮,该按钮在构建器部分的右上角显示为眼睛图标。

  • 从下拉列表中选择您的环境。在这里,我们将使用在学习“邮递员中的变量”时已经创建的Development API。

  • 现在,在URL文本字段中输入给定的URL。 {{url}} /实用程序/ weatherfull / city / Bengaluru

  • 转到测试在编辑器中编写以下代码:
pm.environment.set("u", "Hello");

这将在“开发”环境中创建一个名称为“ u”且值为“ Hello”的变量。

  • 选择“发送”按钮,然后通过选择“环境”快速查看按钮(以眼睛图标显示)来查看当前变量。

在这里,我们可以看到创建的“ u”变量在环境中可用。

编写测试脚本

我们可以手动输入脚本,也可以使用代码片段的右侧的代码段。


我们还可以在Postman中编写自定义测试脚本。邮递员提供了一个“ pm ” API(称为pm。* API),用于编写测试。

pm.test()

此函数将测试条件写入邮递员测试沙箱中。使用此功能编写测试可以帮助您正确命名测试,并确保脚本的其余部分在发生任何错误时不会中断。

此函数有两个参数,第一个是测试名称(作为字符串),第二个是返回布尔值的函数。

让我们来看一个例子:

  • 在URL文本字段中输入任何URL。

  • 在“测试”选项卡中输入以下脚本:
// example using pm.response.to.have
pm.test("response is ok", function () {
    pm.response.to.have.status(200);
});

单击发送按钮以测试您的请求,然后在响应部分中选择测试结果。这将显示通过了多少测试,总共运行了多少。

在上面的示例中,如果请求返回了200状态代码,则测试将通过;否则,测试将失败。否则,它将失败。尝试更改测试的状态码,然后再次运行相同的请求。

pm.test("Status Fail", function () {
    pm.response.to.have.status(404);
});

您将收到以下响应:

pm.except()

pm.except()函数用于以其他格式print测试结果消息。此函数使测试易于阅读,甚至我们也可以通过变量或响应来管理数据断言。

// example using pm.expect()
pm.test("Status", function () { 
    pm.expect(pm.response.code).to.equal(404); 
});

单击发送按钮,然后从响应部分查看测试结果:

通过此函数,我们可以测试请求环境,如下所示:

pm.test("environment to be production", function () {
    pm.expect(pm.environment.get("env")).to.equal("production");
});

另一个示例是:

// example using response assertions
pm.test("Status Ok", function () { 
    pm.response.to.not.be.error; 
    pm.response.to.have.jsonBody(""); 
    pm.response.to.not.have.jsonBody("error"); 
});

pm.to.be. *

这是一个对象,为基于常用响应的测试提供了捷径。

// example using pm.response.to.be*
pm.test("Response", function () {
     // assert that the status code is 200
     pm.response.to.be.ok; 
    
     pm.response.to.be.withBody;
     pm.response.to.be.json; 
});

试验结果

测试笔试是否通过;我们使用测试结果。对测试运行请求后,请从响应窗口中选择“测试结果”选项卡。在这里,您将获得测试结果列表,无论测试通过还是失败。布尔值为true的测试表示通过测试,而false表示测试失败。