使用Swagger和Excel工作表验证REST API

Swagger Files (又称OpenAPI规范 )是记录API规范的最流行方法,而Excel工作表提供了一种简便的方式来写入结构化数据。 任何人都可以在excel工作表中写数据,而不管他们的编程技能如何。 引入vREST NG (用于自动API测试的企业级应用程序),该功能结合了两者的强大功能,使您的API测试体验更加无缝。 该方法也称为数据驱动测试

数据驱动测试是一种将测试数据与测试逻辑或脚本分开编写的方法。

因此,该过程如下所示:

vREST NG使用swagger文件生成所有测试逻辑和样本测试数据CSV文件。 vREST NG从CSV文件读取测试数据,并在CSV文件中可用的行上进行迭代,并逐一运行迭代。 今天在这篇文章中,我们将详细研究以下内容:

  1. 您如何使用swagger文件生成测试用例。
  2. 您如何通过Excel工作表将测试数据提供给那些生成的测试用例。

如何在vREST NG中执行数据驱动的API测试

为了详细说明该过程,我将使用一个名为Contacts应用程序的示例测试应用程序,该应用程序提供CRUD API。 我将指导您完成以下步骤:

  1. 设置测试应用程序
  2. 下载并安装vREST NG应用程序
  3. 在vREST NG中执行数据驱动的API测试

设置测试应用程序

如果要遵循自己的测试应用程序的说明,则可以跳过此步骤。

否则,只需从此存储库链接下载示例测试应用程序。 该应用程序是基于NodeJS的应用程序,并已通过NodeJS v10.16.2进行了测试。

要设置此应用程序,只需遵循存储库的README文件中提到的说明。

下载并安装vREST NG应用程序

现在,只需通过vREST NG网站下载该应用程序并安装。 安装很简单,但是如果您需要特定于操作系统的说明,则可以按照此指南链接进行操作

安装后,启动vREST NG应用程序并在出现提示时使用vREST NG Pro版本,以继续进行操作。

现在,首先通过从vREST NG工作区区域中的文件系统中拖动任何空目录来设置项目。 vREST NG会将其视为一个项目,并将所有测试存储在该目录中。 有关设置项目的更多信息,请阅读此指南链接

为了快速入门,如果您不想遵循整个过程,而只想查看最终结果。 他们可以直接下载此项目目录并将其添加到vREST NG应用程序中。

在vREST NG中执行数据驱动的API测试

vREST NG提供了一个快速的三步过程来执行数据驱动的API测试:

  • A)导入Swagger文件A
  • B)将测试数据写入CSV文件
  • C)安装环境

现在,让我们详细了解这些步骤。

A)导入Swagger文件

要导入Swagger文件,只需单击vREST NG应用程序左上角的“导入器”按钮。

导入对话框窗口将打开。 在此对话框窗口中:

  1. 选择Swagger作为导入源
  2. 勾选选项Generate Data Driven Tests 。 如果选中此选项,则vREST NG Importer将为svagger文件中可用的每个API规范生成数据驱动的测试用例。
  3. 提供招摇文件。 对于此演示,我将使用测试应用程序存储库中的swagger文件。 下载Swagger文件

对话框窗口将如下所示。 现在,单击导入按钮以继续。

到目前为止,导入过程已完成以下操作:

1.它为Swagger或OpenAPI文件中可用的每个API规范生成了一个测试用例。 然后针对swagger文件中可用的每个标记生成测试套件。

2.它将根据您的表格文件自动为每个测试用例创建带有所需列的示例CSV文件,如下图所示。

稍后,我将详细讨论如何填写此excel工作表。

3.生成的CSV文件也将自动链接,如下图所示。

因此,在执行每个测试用例之前,测试用例将从链接的CSV文件中读取数据,并将其转换为JSON格式,并将其存储在名为data的变量中。 现在,测试用例将遍历接收到的数据并运行迭代。 因此,如果您更改了CSV文件,则只需再次运行测试用例即可。 测试用例将始终获取CSV文件的最新状态。 无需一次又一次地导入

4.根据swagger文件中可用的API定义,它已自动在API请求参数中插入了一些变量。 这些变量值将自动从链接的CSV文件中提取。

5.它还自动添加了响应验证逻辑。 在下图中,状态代码断言用于验证API响应的状态代码。 具有默认验证器断言的文本主体将预期的响应主体与已执行的API测试用例的实际响应主体进行比较。 具有默认模式验证器断言的文本主体通过JSON模式验证API响应结构。

预期的状态代码将从链接的CSV文件中提取。

预期的响应主体也将从链接的CSV文件中提取。

并且还从链接的CSV文件中提取了所需的架构名称。

6.它已在“ Configuration tab可用的“ Schemas部分中导入了所有swagger模式定义。

您可以在前面讨论的“期望模式”选项卡中引用这些模式定义。 在CSV文件中,您只需在ExpectedSchema列中为测试迭代指定相应的架构名称即可。

B)将测试数据写入CSV文件

正如我们已经看到的,导入过程中生成的数据文件。 让我再次为您显示创建联系人API的生成文件:

在此示例文件中,您可以为Create Contact API添加与各种迭代相关的测试数据。 在erationSummary列中,只需为您的迭代提供有意义的摘要。 该迭代摘要将显示在vREST NG应用程序的“结果”选项卡中。 您将需要自己填写此测试数据。 您甚至可以通过任何外部脚本生成此测试数据。

现在,让我们在链接的CSV文件中添加一些测试迭代。

使用上面的CSV文件,我正在检查Create Contact API的两个测试条件:

  1. 当名称字段为空时
  2. 并且当名称字段的长度大于35个字符的限制时。

在上面的CSV文件中,我有意地将ExpectedBody列留为空白。 我不需要填写此列。 我可以通过vREST NG应用程序本身生成此列的值。

在执行测试用例之前,我需要在“配置”选项卡中配置测试应用程序的baseURL变量,如下所示:

在本部分中,您可以使用变量配置各种环境,例如proddevstaging等,以及它们的配置。

现在,让我们在vREST NG Application中执行此测试。 两次迭代均失败,因为预期响应主体与实际响应主体不匹配,如下图所示:

现在,对于每个迭代,单击按钮“ Copy Actual to Expected ”。 vREST NG将直接将实际响应正文复制到链接的CSV文件中的ExpectedBody列。

现在,在此操作之后,如果您再次查看CSV文件。 您可以看到,vREST NG已为您填充了ExpectedBody列,如下图所示。

注意:如果您已在Microsoft Excel中打开此CSV文件,则需要关闭该文件并再次打开以反映所做的更改。 但是某些代码编辑器(例如VS Code)会自动检测文件系统上的更改并实时反映出来。

现在,如果再次执行测试,则可以看到测试迭代正在通过。

您可能还会看到所选测试迭代的expected vs actual response

通过转到执行选项卡,您可能会看到所选迭代的执行详细信息:

因此,通过这种方式,您可以通过CSV文件为API执行测试迭代。 只需在CSV文件中添加迭代,然后直接在vREST NG应用程序中运行即可。 无需一次又一次地导入。 一切都无缝地进行。 因此,它可以大大提高测试效率和生产率

C)安装环境

对于生成的步骤,您可能还需要在执行测试之前设置初始应用程序状态或数据库状态。 这样您就可以自动执行回归。 设置初始状态的一些用例可以是:

  1. 从备份还原数据库状态
  2. 执行外部命令或脚本
  3. 调用REST API设置初始状态

在本节中,让我们来看一下如何在执行测试之前执行外部命令。 由于我们的示例测试应用程序很简单,并且构建用于演示vREST NG。 它将所有联系人数据存储在JSON文件中。 因此,我已经在JSON文件中保存初始数据,可以在执行测试用例之前将其复制到测试应用程序项目目录中。

您可以指定命令,如下图所示:

上面的命令将从vREST NG Project目录>> dump.json文件中已经存在的初始数据中恢复应用程序状态。

注意:您还需要在“ Environments部分中指定cpCmd变量,因为在Linux / MacOS中,命令名称是cp ,对于Windows OS,命令名称是copy 。 因此,对于Windows OS,您可以在vREST NG应用程序中创建另一个环境。 这样您的API测试只需切换环境即可在任何计算机上运行。

无论您是否认为此方法对您的API测试需求都有用,我希望每个人都能收到关于此方法的反馈。 如果您觉得这篇文章有帮助,请喜欢。 如果您需要任何帮助或想要免费使用vREST NG Pro版本,请随时与我联系 。 您的反馈意见对于我进一步提高至关重要。

From: https://hackernoon.com/swagger-excel-sheets-a-wonderful-way-of-validating-rest-apis-using-vrest-ng-7y1t325n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值