接口测试工具Postman(五)运行集合、监控和模拟服务器

一、运行集合

集合是一组请求,可以作为一系列请求一起运行,以对应相应的环境。

当我们想要自动化API测试时,运行集合非常有用。 运行集合时,会一个接一个地发送集合中的所有请求。

使用脚本时,我们可以构建集成测试套件,在API请求之间传递数据,以及构建镜像API的实际用例的工作流。
在这里插入图片描述

1、各项配置集合运行参数
在这里插入图片描述

  • Collection/Folder

  这是要运行的集合或文件夹。运行集合时,集合中的所有请求都按照它们在主应用程序中显示的顺序发送。这意味着运行每个文件夹时会顺序执行文件夹内的每个请求。选择文件夹时,仅执行该文件夹,并且仅发送文件夹内的请求。但是,我们可以在使用setNextRequest()方法时更改顺序以更接近镜像工作流。

  • Environment

  集合运行时使用的环境。

  • Iterations

  该参数配置我们的集合将被运行的次数。通常通过使用不同的测试数据运行多次,从而来确保API的稳定性。

  • Delay
    集合运行中每个请求之间的间隔(以毫秒为单位)。

  • Log Responses
    限制集合运行时的响应日志记录。默认情况下,会记录所有响应以进行调试。对于大型集合,可以更改此设置以提高性能。

  • Data
    提供用于集合运行的数据文件。

  • Persist variables
    默认情况下,集合运行器中的任何环境更改都不会反映在请求构建器中。

2、在集合中使用变量
在这里插入图片描述

  • 默认情况下,首次打开Collection Runner时会检查Keep variable values值,如果不希望在运行期间更新变量,要取消选中“Keep variable values”复选框。在这种情况下,在Collection Runner中修改的任何变量都不会影响Postman主应用中对应的环境变量值,在Collection Runner中做的任何修改都会在运行完成后恢复它原始的值。
  • 在选项中选中了Keep variable values,在Collection Runner环境(或全局变量)中的任何变量变化都将反映在Postman主应用程序窗口中。如果我们再次运行该集合,会发现它现在会失败。

3、使用数据文件
使用数据文件是在各种情况下测试具有不同数据的API行为的有效方法。 我们可以将数据文件视为集合运行的每次测试的参数。
(1)导入集合文件

集合中有一个请求,请求有两个变量,分别是请求URL中的path和请求体中的value。
在这里插入图片描述
(2)构建数据文件

数据文件内容如下:

[{
  "path": "post",
  "value": "1"
}, {
  "path": "post",
  "value": "2"
}, {
  "path": "post",
  "value": "3"
}, {
  "path": "post",
  "value": "4"
}]

这是一个对象数组。每个对象表示一次迭代的变量值。这个对象的每个成员都代表一个变量。这样,在第一次迭代中,路径的变量将被赋值为post,并且请求体中的value将被赋值为1。同样,在第二次迭代中,路径的变量将被赋值为post,并且请求体中的value将被赋值为2。

(3)运行集合
在这里插入图片描述(4)查看运行结果
在这里插入图片描述4、构建工作流
构建工作流可以在运行集合时,执行请求的顺序按照自己设置的来,而不是依次执行。

当开始收集运行时,所有请求都按照在主应用程序中看到的顺序运行。 因此,首先按文件夹的顺序执行所有请求,然后执行集合根目录中的所有请求。可以使用名为postman.setNextRequest()的内置函数覆盖此行为。 顾名思义,此函数允许指定下一个要运行的请求。

postman.setNextRequest()是一个带有一个参数的函数,它是接下来要运行的请求的名称或ID。
【实例】
集合中有4个请求,在第一个请求的“Tests”标签页中包含以下代码:

// Some code here

postman.setNextRequest('Request 4')

// Some code here

运行结合时,会发现执行完第一个请求后,跳转到执行第四个请求
在这里插入图片描述注意:

  • postman.setNextRequest()始终在当前脚本的末尾执行。如果将此函数放在其他代码块之前,这些块仍将执行。
  • postman.setNextRequest()有一个范围,它是集合运行的源。如果您运行集合,则可以跳转到集合中的任何请求(甚至是文件夹内的请求,使用相同的语法)。但是,如果运行文件夹,则postman.setNextRequest()的范围仅限于该文件夹。因此,您可以跳转到此文件夹中的任何请求,但不能跳转到文件夹之外的任何请求。它包括其他文件夹中的请求,以及集合中的根级请求。

二、监控

定期运行集合以检查其性能和响应,以检查收集中的所有请求是否正常且运行正常。

1、在监视器中运行集合

  • Variables:无法导入现有的全局变量,可以在监视器运行期间创建新的变量。全局和环境变量不会持久存在
  • Console Output:默认情况下,请求和响应正文不会记录到控制台。这是出于安全和隐私的原因。对于潜在敏感的标头也是如此,例如cookie和授权密钥。
  • Time Limits: 监控目前可以安排为每5分钟一次,或每周一次。每次运行限制为5分钟,包括所有HTTP请求,响应以及预请求和测试脚本。
  • File Uploads:无法将文件附加到请求,但是可以将数据作为原始请求体上传。
  • Multiple Iterations:监视器默认只运行1次迭代,但是可以使用setNextRequest()进行多次迭代。
  • Multi-region Monitoring: 监视器允许在指定的地理区域中运行集合,只能从监控页面指定多区域监控。
  • Data Files:无法在一次迭代中附加数据文件。
  • Accessible APIs: 与Postman应用程序一样,监控要求所有URL在Internet上公开可用。将来,还可以监控私有API。监视器无法直接访问localhost,并且可能会遇到防火墙,因为监视在Postman云中运行。

2、设置监视器

Postman允许监控共享或私有集合。 如果选择监控共享集合,团队可以看到监视器。 如果在非共享集合上创建监视器,则监视器是私有的,只有自己可以看到。
可以从以下位置创建监视器:

  • Sidebar
  • New button
  • Launch screen
  • Postman web

以下以Sidebar创建为例
(1)在Postman应用程序中,单击要监视的集合旁边的省略号(…),选择"Monitor Collection"。
在这里插入图片描述(2)输入显示器的名称,选择一个环境(可选),设置监控运行的频率,选择世界上的一个或多个地区。 还可以选择高级监视器选项,以接收运行失败和错误的电子邮件通知、请求超时、请求延迟、不遵循重定向以及禁用SSL验证。设置完成后点击创建。
在这里插入图片描述3、查看监视器结果

(1)单击创建的监视器以查看有关其性能和故障排除的更多详细信息
在这里插入图片描述(2)进入“监视器性能”页面。 主时间轴显示监视器的所有过去运行。 每个条形表示一次监视器运行。红色表示测试失败。 蓝色表示所有请求的总响应时间。
在这里插入图片描述(3)结果部分显示了请求级别的详细信息:测试结果,响应代码,响应时间和响应大小。 此外,如果在多个区域中设置监视器,则可以按区域进行过滤。
在这里插入图片描述(4)单击“Console Log”选项卡时,还可以查看日志。
在这里插入图片描述4、监控API和网站

(1)监控API

  • 监控特定端点:在不同请求中创建具有相同端点的不同变体的集合。这里是测试每个变体的响应,以便完全覆盖端点。
  • 监控整个API:具有将公共API主机存储在环境变量中的细微差别,使得跨不同API端点的请求在其路径中以及其他请求参数之间不同。这样的序列还可以跨请求链接数据,这允许整个API测试整个API。
  • 运行API测试套件:在各种端点相互关联的API中,关于其功能的准确知识至关重要。如果数据从一个请求传递到另一个请求,则整个响应或其中的一部分可以保存为环境变量。在设置非原子值(对象,数组等)时应特别小心,因为原始值将丢失。相反,可以通过以下方式处理此类复杂对象和数组:
// set the value 
postman.setEnvironmentVariable('complexObj', JSON.stringify(myComplexObjOrArray, null, 2));

// Fetch the value 
var foo; 
try { 
	foo = JSON.parse(postman.getEnvironmentVariable('complexObj')); 
} 
catch (e) { 
	console.error(e); 
	foo = { __parseError: true }; 
} 
if (foo.__parseError) { 
	// handle parse errors here
}

使用字符串化的嵌套值,可以将其传递给后续请求,例如,作为请求主体。

(2)监控网站

  • 监控HTTP响应代码
    可以通过检查测试脚本中的responseCode.code值来完成响应代码测试。
tests['Request resulted in 200 OK'] = responseCode.code === 200;
  • 监控延迟

作为请求超时的替代方法,可以通过比较测试脚本中的responseTime变量的值来监视网站响应延迟。

tests['Response latency is acceptable'] = responseTime < 1000; 
// responseTime is in milliseconds

三、模拟服务器

前端或后端的延迟使依赖团队难以有效地完成工作。 Postman的模拟服务器可以减轻开发过程中的延迟。

在发送实际请求之前,前端开发人员可以创建模拟服务器来模拟Postman集合中的每个端点及其相应的响应。开发人员可以查看潜在的响应,而无需启动后端。

Postman允许创建两种类型的模拟服务器:私有和公共。

1、设置模拟服务器
(1)在标题工具栏中,单击“New”按钮,选择Mock Server。
在这里插入图片描述
(2)选择是否要模拟新API或现有或团队集合。 如果要创建要模拟的新API,则必须选择请求方法并输入请求路径,响应代码和响应正文。 如果使用现有或团队集合进行模拟,则必须从现有集合或团队集合列表中选择集合。在这里我们选择集合。
在这里插入图片描述(3)选中集合后会自动跳转到配置模拟服务器选项卡页面: 输入模拟的名称、 选择一个环境(可选)、指示是否要将此模拟服务器设为私有。
在这里插入图片描述2、模拟服务器和示例
(1)发送请求
GET:https://postman-echo.com/get?test=123
在这里插入图片描述(2)将请求保存到集合
在这里插入图片描述(3) 保存请求R1的响应为例
在这里插入图片描述在这里插入图片描述(4) 为集合创建模拟
在这里插入图片描述(5)使用模拟服务器发送请求
在这里插入图片描述(6)为了进一步说明模拟服务的响应完全取决于您保存的示例,让我们尝试在此集合中添加另一个示例。 我们将重复以上步骤,将请求保存到集合并保存响应作为示例,使用新URL https://postman-echo.com/test。
在这里插入图片描述在这里插入图片描述

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值