Type something to search...
利用 Gen AI(OpenAI API)构建智能测试自动化

利用 Gen AI(OpenAI API)构建智能测试自动化

我们都知道 UI 测试非常脆弱。它们可能因各种原因而失败,其中一个最大的问题是 UI 定位器的变化。很难想象我们如何能让它们足够智能,以理解定位器何时发生变化,并在测试中出现定位器问题之前防止测试运行。

你没听错!现在是 2024 年,自动化测试工具已经取得了长足的进步。在与这些工具打交道近 18 年后,从 Mercury Winrunner 到 Playwright,我们现在可以利用生成性 AI 的强大功能做一些真正令人惊叹的事情。这就像魔法,但这是真正的科学!

没错,我们现在可以找到一种方法,让我们的测试自动化代码 更智能,而不需要自己编写各种模糊的数学算法,这一切都由 LLM 的神来处理。

在这篇文章中,我们将讨论如何以更有效和高效的方式使我们的测试变得智能,但同样,要实现这一点,您需要具备以下前提条件:

  1. Open AI API 带信用额度(您需要即时购买)

2. C# .NET 代码知识,因为我将要涵盖的代码来自 .NET 和 Selenium

3. 对测试自动化的基本理解

再次强调,以上所有内容以及以下讨论都是我 Udemy 课程 的一部分,该课程涵盖了更详细的内容和逐步编写代码的方法。

让我们理解问题陈述

我们有一个页面,希望使用 Selenium C# 代码进行自动化。我们使用页面对象模型(POM)模式编写了非常好的代码,一切看起来都很棒,并且完美运行,如下所示。

我们的开发冠军发现了一个需要调整的 UI 元素。他根据同事的代码审查意见进行了更改,但不幸的是,他删除了我们在自动化测试中使用的定位器。这意味着我们的 POM 代码将不再工作,因为定位器不再存在,这最终导致测试 失败

最重要的是,由于单个定位器的更改,所有测试场景都将因相同的失败而失败。测试并不知道定位器已更改,也没有任何方法知道这一点,因此它总是失败。

如何解决这个问题?

我相信像我一样,很多人在使用 UI 测试工具时,每天都在经历这个问题,无论是 CypressSelenium 还是 Playwright。这个问题总是存在,无论使用什么工具。

现在让我们来理解如何解决上述问题。

我们都知道 生成式 AI大型语言模型(LLMs)已经远远超出了文本/图像/视频生成的范畴。它们理解给定的上下文,并生成我们所寻找的有意义的信息集。

因此,针对上述问题,我们可以利用生成式 AI 的力量,通过 OpenAI 的 API,将我们的提示请求传递给像 GPT 4oGPT 4 turbo 的 LLM,以理解问题陈述并给出有意义的解决方案。

那么,我们需要向 OpenAI 的 API 传递什么提示请求,以便在我们的测试自动化中执行操作呢?

好吧,这张图将给你答案。

我们可以将应用程序的“实际测试页面”和 Selenium 测试的“页面对象模型”代码作为提示发送给 OpenAI 的 API(附带一些额外的响应解析细节)。这将作为 OpenAI API 的验证过程,以查看定位器是否与给定页面匹配。

根据该操作,我们可以决定测试是否执行。定位器发生了变化,因此继续运行测试是没有意义的。

执行上述操作的代码大致如下:

public static async Task<string> VerifyPageLocatorFromAiAsync(string pomFileContent, string htmlPageSource)
{
    ChatClient client = new(model: "gpt-4o-mini", apiKey);
    
    var chatMessage = $"Verify if locators from this Selenium POM class: {pomFileContent} match this page source: {htmlPageSource}\", only return True or False result";

    ChatCompletion completion = await client.CompleteChatAsync(chatMessage);

    return completion.Content.FirstOrDefault().Text;
}

上述代码只是课程中涉及的大量代码的一部分,但你可以看到如何简单地执行将页面与 Selenium 的页面对象模型代码进行分析的操作。

GenAI在软件测试课程中

以上讨论只是我在Udemy新课程“在软件自动化测试中使用生成性AI”中讨论主题的一部分

以下是课程内容

该课程目前在Udemy上以优惠价格提供,作为首发优惠,请在购买课程时使用优惠码EA_NOV_24 ⚡️

如果优惠码已过期,请随时在此帖子下留言,我会将最新的可用优惠码发送给您。

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多