17611538698
webmaster@21cto.com

运用人工智能测试工具,提升API开发质量

人工智能 0 605 2024-08-29 04:05:02


现今,无论是企业还是个人,谈及人工智能都能引发热议。尤其是以ChatGPT、Bard为代表的大型语言模型(LLM),已经成为人工智能领域的热门话题。对于从事API产品开发的企业来说,运用人工智能可以提升其可靠性、效率、安全性与盈利能力。而实现这一目标的第一步就是开展API测试工作。

在AI旅程中,从API测试出发

API测试一贯被视作API构建流程中的终点,但是为何将其作为AI旅途的起点呢?这是因为这样做不仅允许探索AI的基本原理和实验操作,同时又不会影响到API的质量和性能。

何谓基本原理?

API测试的基本原则强调了测试的重要性,即测试越充分,API产品的质量越高。然而,测试也常常成为企业的瓶颈和成本中心。许多API团队深知应加强测试力度,但往往面临资源不足的困境。此时,人工智能的引入便显得尤为重要。

如何利用AI进行API测试? 

初涉AI领域,可能会感到迷茫,不清楚该选用哪种适当的工具和最佳实践。这时,唯有通过实验才能找到答案。从明确的API测试领域入手,无疑是明智之举。尽管AI可能对您来说是全新的概念,但测试方面的挑战却是熟悉的。因此,您可以清晰地感知到AI在测试过程中所起的积极作用。

借助“4P”框架进行AI实验


斯科特·贝尔斯基(Scott Belsky),一位知名的高管、作家、投资者和企业家,曾参与创立Behance,近期在LinkedIn上分享了他的团队如何开始使用人工智能的经验。他提出了一种名为“4P”的框架,适用于企业内所有团队,包括API测试团队:

发挥 - 让API测试团队能够接触和试用新的AI技术和工具,无需担心潜在风险。同时,也要保持开放心态,让团队自行探索。

试点 - 从小规模的试点项目开始,将AI应用于API测试的某个环节,以便团队成员积累经验。待试点项目取得成功后,再逐步扩大AI的应用范围。

保护 - 确保试点项目的目标或关键绩效指标(KPI)侧重于学习和探索,而非单纯追求收益增长。

激发 - 邀请API利益相关方提出关于在测试过程中使用AI的疑虑和问题。他们可能会关注AI在API测试中的伦理问题或者投资回报。解答这些疑问有助于在创新过程中规避重大失误。


“4P”框架有助于理解如何在API测试中最优地运用AI。对于大部分企业来说,AI的终极目标在于提升人力效率,而API测试正是实现这一目标的理想起点。接下来,我们将探讨AI在API测试中可能产生的多种助力。


提升现有的 API 测试实践

AI 是一个很棒的工具,但您的 API 测试流程中仍需要人为干预。API 团队可以先使用 AI 来提升现有的测试实践。尝试使用 AI 来改进用于 API 测试不同领域的数据:

  • API 测试规划 —您可以使用 LLM 来帮助您创建 API 测试计划。OpenAPI 已使用大量网络数据对 ChatGPT 进行了训练 — 您可以利用这些数据来制定更好的 API 测试计划。您可以输入一些 API 测试要求和 API 组件的一些详细信息,让 ChatGPT 生成包含设置说明和多个测试用例的测试计划。
  • 测试用例 —将一些示例测试用例输入 LLM,并要求其创建更多。向 ChatGPT 或 Bard 提供一些带有防护栏的提示,它可以生成更真实的 API 测试用例和复杂测试用例。LLM 还可以找到您的 API 团队可能没有考虑到的极端情况。
  • API 测试 —借助 AI,您可以根据数据格式和真实场景的叙述性描述动态生成 API 测试。您可以使用 LLM 创建基于领域专家知识的测试。基于 NLP 的 AI 可以理解自然语言测试要求并将其转换为可执行的测试脚本,从而使非技术利益相关者更容易参与 API 测试工作。

一旦您开始将 AI 融入到一些现有的 API 测试实践中,您就可以开始利用 AI 来更大规模地自动化一些测试流程。

自动化 API 测试流程以获得更好的覆盖率

如果您希望获得更好的测试覆盖率和扩展能力,您将需要自动化一些测试流程 — 而这正是 AI 的闪光点!AI 使您能够自动执行各种任务,从测试脚本的创建和执行到测试报告和测试环境管理。

  • 测试用例生成 — AI 可以比人类更快、更准确地分析用户行为、API 流程和代码结构。AI 收集和分析数据,为各种场景和边缘情况生成测试用例。使用 AI 算法分析 API 规范(例如OpenAPI 文档),并根据预期的输入、输出和端点自动生成测试用例。这可以显著减少创建测试用例所需的手动工作量,并且与手动生成测试用例相比,您可以获得更广泛的可能场景。
  • 测试执行和报告——人工智能驱动的测试自动化框架可以执行测试用例、监控响应并将其与预期结果进行比较。人工智能可以检测与预期行为的偏差并报告异常,从而让团队能够相应地测试 API。人工智能非常适合生成包含图表和图形的测试报告。报告可帮助团队成员和其他利益相关者了解 API 测试工作的影响。
  • 测试脚本维护 —您可以使用基于 AI 的 API 测试解决方案进行智能测试脚本维护。当 API 代码发生变化时,AI 辅助测试脚本维护工具将编辑和完善现有测试脚本,确保您的测试脚本随 API 一起发展。这减少了使测试适应不断发展的 API 所需的工作量。
  • 测试环境管理——AI可以通过配置资源、配置数据库和自动化 API 测试部署流程来帮助设置和管理测试环境。它可以确保测试环境具有真实的数据,并允许您随着需求的增长自动扩展 API 测试。一些基于 AI 的 API 测试工具还将自动安排、请求和预订测试环境。

当您准备将更多工作委托给 AI 或想要进行更大规模的测试时,这些商业和开源 AI 驱动的工具可能有助于实现 API 测试的自动化:

  • Functionize – 商业
  • Katalon——商业版,免费计划
  • Loadmill——商业版,免费试用
  • Mabl——商业
  • Postman – 商业版,免费计划
  • ReadyAPI(由 Stoplight 的新母公司 SmartBear 提供)– 商业版,免费试用
  • SoapUI(由 SmartBear 支持)– 开源
  • Testim – 商业、无社区计划
  • Testsigma – 商业、开源

因此,您已经应用了 4P,升级了现有流程,并自动化了一些 API 测试实践。不要止步于此!吸取您学到的 AI 经验教训,并利用它们来确保所有 API 的安全性和可靠性。

使用 AI 预测 API 故障点和漏洞

测试属于安全性和可靠性范畴,因此您应该使用 AI 加强 API 测试工作。使用 AI 可以从不同的角度了解问题所在。您可以使用 AI 进行测试以增强 API 安全性和可靠性,方法包括:

  • 预测分析——AI可以分析来自各种来源的数据(历史测试结果、API 日志、代码更改、用户反馈、错误报告),以识别 API 性能的模式或趋势。此分析可帮助测试人员预测潜在的 API 问题并确定测试工作的优先级,从而提供更安全、更可靠的 API。
  • 安全测试 —您可以使用 AI 通过分析 API 请求和响应数据中是否存在可疑模式或行为来识别 API 中的安全漏洞,例如SQL 注入或 XSS 攻击。LLM 可以提供真实场景作为 API 渗透测试的基础,而 AI 可以帮助您自动创建这些测试。
  • 负载测试 —基于 AI 的负载测试工具可以模拟数千个并发 API 请求,并根据系统行为动态调整负载级别。这有助于识别性能瓶颈和可扩展性问题。对许多不同的 API(包括 REST、RPC、SOAP 和超媒体)使用 AI 驱动的负载测试。
  • 异常检测 —使用 AI 持续监控生产中的 API 行为,并识别异常模式或与预期行为的偏差,帮助实时检测问题。AI 还可以检测 API 测试结果中的异常,从而发现错误或错误。

AI 非常适合分析数据和预测模式,因此使用它来查找潜在的 API 安全漏洞和故障点是有意义的。

AI + API 测试=为每个人提供更好的 API

AI 并非全是炒作——它是一种强大的工具,可以帮助您构建更好的 API。跟随 Martin Fowler 等行业专家的脚步,他们大胆展示了 AI 在编程中的可能性,例如自我测试代码。当您将 AI 纳入测试流程时,您可以确保您制作的每个 API 产品的安全性、性能和可靠性。


评论