本周,我正在计划和选择在某个项目中应该使用哪种类型的端到端测试工具,尽管我的大脑一直在尖叫着柏树。但 OpenAI 的尖叫声总是更高,利用各种情况来尖叫。正如您可能得出的结论,这里的问题是:

“我们可以构建一个不可知的工具,将测试行为转换为多个框架吗?”

让我们来看看!

测试工具

在我看来,这些用于端到端测试的工具并没有最好的市场份额划分,但从我所看到的情况来看,有一些工具备受关注:

  • Selenium:占据很大一部分市场份额,但它并不是最好的工具。它是第一个出现的,因此仍然位于第一位置。在这种情况下,大多数人会谈论 selenium webdriver,因为该产品是另一个像上面提到的扩展的准系统。
  • cypress:一个新版本,使用起来更加方便,构建在 Node 之上,带来了一些工具和社区。与 Selenium 相比有一些性能限制,但通常这不是重点。 CI/CD 管道通常非常便宜,而且速度并不是最重要的,所以我不会担心。
  • puppeteer:这是一个对于测试和网页抓取很有用的模块,也很容易使用。没有 cypress 的测试基础设施,但不是主要焦点。
  • 一款 Microsoft 工具,也是该领域的新生事物。与 Cypress 非常相似,但你不会被困在生态系统中,这很好,因为 cypress 为你提供了一些很好的工具和一些随之而来的限制。

市场上还有其他工具,但有某种供应商锁定,这不是这里的重点。

OpenAI 生成测试

正如我刚才提到的,市场提供了两种选择:面向代码的测试(开发人员友好)或面向用户的测试(无代码)。第一个往往是开源的,或者给予如何运行它的自由。需要由开发人员完成。第二个是你受到生态系统的限制,对后台发生的事情一无所知,但是没有任何编码知识的经理也可以自己完成整个测试,这对于更多的企业级公司来说是有意义的。这些选项都不能让您鱼与熊掌兼得,就像使用低代码工具生成代码然后在其他地方使用它一样。 OpenAI 可以解决这个问题,甚至可以设计出一个潜在的产品。

首先,让我们明确我们想要的图像是什么:

现代语言编译 vs OpenAI 转换逻辑

左图对现代语言的工作方式(或者更确切地说是 .NET/Java 的工作方式)进行了过度简化。这些语言被转换为看起来像伪汇编的中间语言(IL/字节码),只有当代码在安装了正确框架的特定机器上运行时,它才会被转换为汇编。

这里的想法是一样的。我们不希望每次都静态生成测试,但我们想要一个简单的界面(例如单击界面),然后用于为 OpenAI 创建文本。然后运行该文档以在 cypress 或任何其他选项中创建测试。

OpenAI 模板

完成模式和最新的达芬奇引擎

本周发布的新更新发布了新版本的达芬奇,以及新功能,但我们将坚持现在完成。

OpenAI 法典文档

这是文档的结构,非常简单。一个短语,告诉我们如何处理引擎,后跟要测试的 URL。然后,每个测试都由停止序列分隔,并包含一个简单的短语来解释客户想要做什么。在我们的想法中,该消息将在用户单击按钮(使用假设的界面)后生成。毕竟,编写了测试,然后我们就可以生成代码。

带有一些完成帮助的文档

完成测试的第一部分有很大帮助。让工作和绩效提高 100 倍。

让我们更好地测试

我最近做了一个模板来测试一些将来使用的东西。它已经部署完毕,可以随时使用了。让我们设计两个测试:

  • 一个测试,写下每个问题,跳过每个问题,然后清除内容。另外,请确保当输入为空时该按钮被禁用。
  • 改变主题的测试
上述测试生成的结果

正如您所看到的,这非常有效,但如果这是生产就绪的,您将需要一个非常复杂的决策树来覆盖所有短语,否则,您的代码将不可读。

请注意,每一行文本都是一行代码,以对人工智能有意义的方式编写。有时我会提到组件的 id 以及它包含的文本。但最好的是步进器,我将其解释为数组,他得到了它,否则,他会编写直接访问的代码,这将非常难看。

让我们看看结果:

奔跑的柏树
x单位

结论

OpenAI 正在成为我没想到的东西,直到 GTP-4 发布。第一个版本有点软盘,基本上是一个用于微调的包装。它看起来越来越有意识,纠正错误,甚至做你想做的事,而不需要太多的尝试和错误。

这篇文章是一个预告片,因为商业模式是有意义的,所以我将在可能的初创公司中讨论一些事情,并且正确地,一旦世界变得更好,我就有能力做到这一点。