使用Postman和Excel测试API

大家好,我是测试部门的负责人,最近出现了一项测试API的任务。 为了解决这个问题,我为我掌握了新的Postman和JavaScript工具。

最初,对于每个API,我都以JSON格式编写了集合并准备了测试数据。 这非常方便,但是通过大量测试和收集,维护变得无利可图。 而且,在JSON中验证数据并不方便。

为了解决这些问题,我为Excel编写了一个宏,并在Postman中编写了一个集合。 现在在Postman中,我有一个用于所有API的集合,以及一组标准函数,用于处理传入数据和验证返回的结果。 我设法将测试数据管理和查询执行顺序转移到Excel。

那是什么


1. JSON和数据


以前,测试套件以这种形式存储

2. 2.使用JS处理程序执行查询的顺序存储在Postman集合中。



变成了什么


1.测试套件移至Excel



所有数据都输入到Excel(控制键字符:R,H,I等,我将在下面编写),然后使用宏将它们转换为json格式:



2.在邮递员中



实验是在一组标准的CRUD操作上进行的,可以进一步扩展。

由于在Postman中所有操作仅在请求的框架内执行,因此我必须输入一个空的get请求,并在该末尾确定序列中的下一个请求。 在请求之前运行JS代码,并确定第一个没有空失败的请求。

在所有请求中,“预请求脚本”和“测试”部分为空,所有代码针对请求是统一的,并存储在“预请求脚本”和“ API集合”文件夹的“测试”的常规部分中。



在所有请求中,请务必注意POST和PUT请求中的url和Body部分,它们的值由变量确定,变量的值与数据一起从JSON输入。



现在介绍一下测试本身




如何阅读excel 。 第一个非空行是测试用例的编号,即测试用例是垂直存储的,在此页面上有9个测试用例。 在当前集中,在每个测试用例中,将首先执行POST请求,然后执行Delete。

如何从Excel启动Json生成 。 在Excel中,按F11并转到“ EtaBook”,然后运行宏。

关键词


R-请求,表示新请求的开始,在存储请求类型的行的第二个单元格中,第三个是您需要联系的地址。 请注意,您可以在url中指定Postman变量


来自变量的值将被拉出

H-标头中用于验证的数据,到目前为止仅输入了响应代码,邮递员仅在邮递员中检查它。 在Excel中,名称必须与“响应代码”相同,或在Postman中更正,这一点很重要



I,I2 ...-输入数据部分支持任何嵌套的数据模型的存储,I右边的数字负责嵌套级别。 下一个数据集像这样包装在JSON中。 如果存储数据的变量为空,则不会添加。 也就是说,如果inn变量中没有值,则将不会添加它,而将添加main变量,因为它存储了模型。 而且,如果整个模型为空,则也不会添加。


本节中的数据将在请求正文中提交。



O,O2 ...-输出参数的一部分,它们将与响应返回的参数进行比较。 像“输入”部分一样,它支持模型存储。


比较时,数据被转换为字符串,我还额外限制了递归级别,可以将其删除

PO-邮递员输出,此部分中的值将通过变量名称从请求的响应正文中获取,并写入邮递员变量中。


在Excel中,可以放置任何字符,将来自响应的值(不是excel)写入变量


需要此部分来存储脚本之间的数据,例如,删除具有上一个请求中创建的ID的对象

PC-邮递员命令,仅引入了一个“终止”命令,用于在执行当前请求后强制终止。 对于否定测试很有用,以免导致步骤删除创建的对象。


输入此命令允许将阳性和阴性测试同时存储在一张纸上



PI-邮递员输入,本节中的值将在URL定义之前写入邮递员变量


如果您需要覆盖请求url中指定的变量,它会很有用。

顺便说一下,您可以使用提供的数据中的Postman变量中的数据,为此,您需要使用特殊的设计



在情况1中,我们将获得的值输入一个变量,在情况2中,我们使用了它。 它不仅可以在下一种情况下使用,还可以在下一个请求的当前情况下使用。 例如,如果更改对象的定义不是遵循URL,而是根据请求中变量的值,则可能有必要。

准备运行


现在,运行,运行Postman运行程序,在其中选择所需的集合,然后上传包含测试数据的文件:



我们将提供以下服务:



这里描述了15个测试,其中步骤1-11、13、15为正,结果为POST请求为200;步骤12、14为否,结果为400。信息不会输入数据库,因此输出部分为空,并指示命令终止。 该命令将中断序列的执行,并且不会发送删除“ Delete”的请求。

在案例1-11、13、15之后,我们会记住分配给新对象的ID,然后将其删除。

我们启动



所有15个测试均成功,图片显示测试14,其中在POST之后未调用Delete

在POST之后的测试1-11、13、15中,删除创建的对象称为:



总结


  • 测试API的请求顺序在Excel中进行,并在Postman中进行处理。
  • 所有测试数据也都在Excel中呈现,便于管理和验证它们。 至少比JSON格式更方便。
  • Postman集合是标准化的,在测试类似的API时不需要改进。

参考文献


  1. GitHub存储库,有Excel和Postman集合
  2. 在开发中,使用了由Tim Hall创作的VBA-JSON工具。


从10/15/2019更新

1.改进了无需运行excel即可生成json文件的功能,将其放入GenerateAll.cmd git中,该git运行vb脚本GenerateJsonFiles.vbs。 被调用的脚本将遍历当前文件夹和所有子文件夹并生成json文件
2.运行RunAll.cmd来运行所有生成的json数据文件,还将运行当前文件夹和所有子文件夹。 在它们每个旁边,将放置output-report.log及其运行结果。

现在,拧紧CI不再是问题。 您还可以固定json生成,以git部署并比较excel中的数据以获取json文件中的更改。

Source: https://habr.com/ru/post/zh-CN467127/


All Articles