如何超越记录和重放以实现更好的自动化API测试

您可以使用人工智能来帮助将API活动组织为有意义的、可重用的和可扩展的测试,而不是简单地收集、记录和回放流量。它是记录和重播测试的扩展,但自动化程度更高。

如何超越记录和重放以实现更好的自动化API测试

您可以使用人工智能来帮助将API活动组织为有意义的、可重用的和可扩展的测试,而不是简单地收集、记录和回放流量。它是记录和重播测试的扩展,但自动化程度更高。

之前,官方Parasoft SOAtest中发布了一项名为Smart API Test Generator的新功能。我对此很不感冒。这项技术是合法的突破性技术——它使用人工智能将手动UI测试转换为自动API测试,因此您无需具备API测试方面的专业知识,甚至不需要编写任何代码就可以入门。它们全部无脚本,并且通过一个适用于Chrome的简单插件激活,因此您无需安装大型工具集即可使用它。

但是,在我实际使用并真正熟悉这个功能之前,我的脑中还是会不断地冒出来这个问题:这与市场上已有的记录和重放技术有何不同信大部分测试或开发人员也会有相同的疑问。


AI添加到记录和重放测试中

答案是人工智能和机器学习……但是为什么呢了AI的缘故,AI毫无意义——为什么我们需要在API测试中添加人工智能吧,我们需要它是因为记录和重放测试还不够。我会进一步介绍这一点。

要真正扩展API测试的采用并解决测试团队与开发保持同步的问题,您需要更多!我们希望能够自动帮助用户识别捕获的API活动并将其组织成有意义、可重用和可扩展的测试,而不仅仅是收集、记录和回放流量。我们需要降低API测试的采用标准,并让更多的测试人员参与其中。

但首先,让我解释一下为什么如此重要。


为什么我们甚至需要API测试

从历史上看,组织至少在最初就将UI测试作为主要的测试实践,因为它易于定义和执行,并且易于自动化。进入门槛很低,并且可以扩展到一大批测试人员。

但是,这种完全依赖手动和UI测试的挑战是隐性成本。与Selenium合作的任何人都知道,当UI更改时,事情会变得很困难,您需要更新脚本。实际上,我们发现多达80%的测试时间都花在了执行手动UI测试或修复由于应用程序更改而中断的自动UI测试上。最重要的是,只有在完整的应用程序可用后才能执行UI测试——如果发现缺陷,则返工成本很高,因为在测试可以继续进行之前,需要将应用程序拆开、固定和重新组装。通常,这种后期周期缺陷检测会导致明显的发布延迟,并增加测试的总成本。


使用API测试补充UI测试

为了补充和减少对UI测试的依赖,组织可以利用API测试,该API通过提供可维护的端到端方案来解决许多这些问题,这些方案可以重复使用,而不仅仅是功能测试。API测试在开发人员和测试人员之间建立了良好的沟通渠道,因为它们有助于以具体,现实的方式记录API的行为。将通过API测试发现的错误和安全漏洞的诊断和修复转移到生命周期的较早阶段,可以在实现计划和质量目标方面获得巨大回报。

但是,组织机构一直难以采用API测试,因为即使是很棒的API测试工具在历史上也没有提供足够的帮助。为了有效地使用API测试工具,测试人员需要熟悉他们要测试的API,包括相关应用程序如何使用API,这需要专门的技能和专业知识。而且开发人员没有时间测试它们,因此避免了这种极为有益的做法测试人员站不住脚,开发人员不希望这样做。


根据流量构建API测试(“记录和重播测试”)

为了解决这一挑战,功能测试自动化公司很多年前提出了记录API活动并根据流量创建API测试的想法。之所以强大,是因为只需记录应用程序和后端系统之间的事务,就可以捕获API的活动,包括API调用如何重组正在传递的数据。

使用这项技术,您可以记录后端系统中发生的情况。这有助于非技术用户了解调用了哪些API并基本了解调用每个API时所使用的数据;但是,简单的流量收集并不能帮助他们提高技能,也无法学习如何维护或扩展他们的测试。它无法教给他们使用API使用的所有不同消息格式和协议进行不同测试所必需的技术技能,并且它本身无法提供足够的帮助以使非技术用户可以采用这种做法。在路况记录和功能齐全的API测试方案之间走很长的路。

为什么记录和重放还不够

这就是我们开始考虑降低采用API测试的障碍的下一步的地方。我们在想。仅记录测试人员的UI与目标应用程序之间的网络流量不足以帮助实现API测试自动化,以实现其实用性。它可能类似于MP3录音。您可以播放它以收听歌曲,但其中不包含有关如何创建歌曲或使用了哪些乐器的任何信息。这首歌无法修改或扩展。

如何超越记录和重放以实现更好的自动化API测试

通过简单的记录和重放测试,请考虑以下问题:

如果我的用户界面改变了怎么办/span>

UI在开发过程中不断变化,维护基于UI的测试自动化非常耗时。UI仅公开了应用程序的基础业务逻辑的某种表示形式,可能是有限的,并且依赖记录和重播既有限制,又容易受到频繁更改的破坏。

什么是正确的流量/span>

通过UI在系统级别进行应用程序测试将创建大量的网络流量。即使对于训练有素的眼睛来说,也很难确定哪些流量是在UI级别上发生的实际测试情况的一部分。依靠人工解释网络流量既费时又容易出错。而且,它通常不是技能测试人员所拥有的,因此他们必须依靠开发人员来提供帮助。

如何将这些测试步骤连接到方案中/span>

从基本的流量记录创建测试场景非常困难。如果创建场景需要进行多次测试,那么难度会成倍增加。重播流量记录来代替场景通常很困难,因为它依赖于原始测试的确切前提。此外,例如,不可能重复播放相同的测试,这对于创建性能或与安全性相关的测试很重要。

如何获取和重用知识/span>

流量记录只是测试会话期间所有网络活动的总和。没有对底层消息传递的固有了解,也没有与API服务的关系。没有这些,就不可能将这些录音扩展到其他目的,甚至无法进行更改以适应新的要求。它们通常会及时冻结,并且仅在记录期间有用。

回到人工智能

在这里,人工智能发挥了作用,因此流量记录不仅可以进行,而且可以扩展为用户真正的可操作的价值。这就是为什么我们开发智能API测试生成器的原因,因此我们可以为新手API测试人员提供一个无需编写任何代码即可开始进行API测试的地方。因此,用户可以利用Parasoft SOAtest的简单直观界面,快速开始构建完整的有意义的测试方案,甚至将这些API测试扩展到安全性和性能测试中。

它是如何工作的/span>

在测试UI时,智能API测试生成器会像对流量收集器一样监视对应用程序进行的基础API调用,然后使用人工智能发现模式并了解这些API调用之间的关系。然后,它可以生成自动化的API测试方案,这些方案执行与UI测试相同的操作,但是完全自动化并且易于扩展。

本质上,这是:

如何超越记录和重放以实现更好的自动化API测试

但是那为什么重要呢下是此方法提供的一些好处:

  • 通过将您在浏览器中执行的操作自动转换为对您在UI中执行的相同操作进行建模(以正确的顺序)的自动化API测试,从而减少了确定构建API测试的正确方法所花费的时间。

  • 通过基于不同API调用之间的关系自动创建完整的测试方案,可以更轻松地构建有意义的,全面的API测试。(没有这些,用户必须花时间研究测试用例,寻找模式并手动建立关系以形成每个测试方案。)

  • 自动添加断言和验证以确保您的API能够按预期工作,因此您甚至可以执行最复杂类型的断言逻辑,而无需编写任何代码(否则可能会出错)。

  • 减少花在维护测试上的时间。由于它是无脚本的,因此用户无需在服务更改时花时间为测试用例编写代码。

  • 帮助开发和测试团队与单个工件协作,两个工件可以轻松共享和理解这些工件(与UI测试相比,它更能诊断出缺陷的根本原因)。

  • 通过帮助用户扩展测试,测试流程逻辑和数据解决方案,以完成在给定的短时间内全面验证应用程序所需的全部API测试覆盖范围,为可扩展的API测试策略奠定基础。

综上所述,该工具不仅可以基于对捕获的API活动的有意义的解释自动创建测试,而且还支持对这些测试的轻松扩展和维护,因此在整个软件生命周期中其价值都会倍增。

现在让我们更进一步

所有这些本身就是好的。但是让我更加兴奋的是Smart API Test Generator可以帮助用户理解UI动作和API调用之间的关系的部分,从而使测试人员更容易“熟练”并采用全面的API测试实践。由于API测试可以完全自动化并且可以轻松扩展,因此团队可以降低质量总成本,同时避免延迟发布。

让我们分解一下。由于Smart API Test Generator承担繁重的工作,为测试人员提供了轻松,无脚本的地方来开始构建API测试,因此降低了API测试的技术切入点,使初学者进入API测试世界和用户友好的Parasoft SOAtest生态系统,用户将从易于采用和使用的强大视觉工具中受益。

这就是为什么我很兴奋

在系统和用户界面测试期间收集API活动的流量不足以实现API测试自动化,但这是迄今为止行业所拥有的。对前提条件的依赖使这些录音的可重用性降低,几乎无法扩展用于其他目的。更不用说很难从复杂的流量中创建有意义的测试场景,这是大多数测试人员都不熟练的技能。

但这不再重要!现在我们有了Parasoft SOAtest Smart API Test Generator,用户可以利用人工智能进行繁重的工作。初级的API测试人员可以使用它来入门并了解API测试的工作方式,而经验丰富的API测试人员可以利用它来提高效率(这是我们现在使用它的主要方法之一,在Parasoft)。归根结底,通过利用机器来构建有意义的、可扩展的和可重用的测试,组织可以从节省时间和金钱中受益。这只会是个越来越“人工智能”的时代!

如何超越记录和重放以实现更好的自动化API测试
标签:自动化测试

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月11日
下一篇 2020年11月11日

相关推荐

发表回复

登录后才能评论