【Python】AI赋能自动化测试—Applitools Eyes让视觉检查自动化测试更智能、更高效(限时公开)

文章目录

  • 一.视觉回归测试
    • 1.什么是视觉回归测试?
    • 2.视觉回归测试的必要性
    • 3.视觉回归测试是如何工作的?
    • 4.常用的视觉回归测试工具有哪些?
  • 二.Applitools Eyes
    • 1.是什么
    • 2.优缺点
    • 3.注册平台账号
    • 功能介绍
      • 1.界面切换
      • 2.单条视觉测试结果解读
      • 3.测试视图切换
        • 1.Batch details view 批次详细信息视图(默认展示)
        • 2.Batch summary view 批次步骤视图
        • 3.Batch summary view 批次摘要视图
      • 4.步骤缩略图功能按钮介绍
      • 5.单个步骤窗口功能按钮介绍
  • 三.Applitools Eyes 视觉检查
    • 1.基准图像(Baseline Image)
    • 2.Baseline
    • 3,Visual checkpoint 视觉检查点
  • 四.Applitools Eyes 工作原理
  • 五. Python + selenium 编写自动化测试
    • 1.自动化脚本编写
    • 2.执行结果分析
  • 六.Applitools eyss 的痛点
    • 运行测试
  • 人工智能和机器学习在测试中的应用前景

一.视觉回归测试

1.什么是视觉回归测试?

视觉回归测试(Visual Regression Testing)是一种软件测试技术,通过捕获网页的屏幕截图或图像,并将其与基准图像进行比较,以检测变化。用来识别由代码更改或升级引起的视觉回归

2.视觉回归测试的必要性

  • 增强用户体验:视觉错误会对用户体验产生负面影响,导致用户满意度下降。通过检测和修复视觉回归,可以确保流畅一致的用户界面,从而提高用户参与度。
  • 检测UI是否一致:在大型应用程序中,保持各个页面之间的视觉一致性可能具有挑战性。视觉回归测试有助于识别用户界面 (UI) 不一致的地方,并确保遵守设计指南和品牌标准。
  • 防止未检测到的错误: 传统的功能测试可能无法捕获所有视觉问题,因此视觉回归测试对于识别可能导致未注意到的错误或设计缺陷的细微视觉变化至关重要。

3.视觉回归测试是如何工作的?

  1. 第一次执行脚本时,截取UI元素或页面截图(baseline基准图像),并保存下来供以后对比
  2. 在下一次执行中,将拍摄另一张屏幕截图,并与之前存在的屏幕截图进行进一步比较 (获取与baseline进行比较的新截图。)
  3. 如果发现视觉差异,执行将失败,输出将是上面显示的差异图像
  4. 分析差异后,你可以选择将其假设为错误并进行相应处理,或者将其假设为预期和有意的更改,并且可以选择覆盖预先存在的屏幕截图,以便可能在下次执行时有更新的版本
  5. 更新基线:在验证更改后,更新基准图像以反映UI的最新接受状态。解释结果时,关注测试工具提供的突出显示差异。调查每个差异,以确认它是错误还是预期的更改。

4.常用的视觉回归测试工具有哪些?

就市场上的工具而言,可以分为付费免费两类:

  • 付费工具:Percy、Chromatic 和 Happo等示例。
  • 免费工具有Playwright、Cypress插件、Wraith和 BackstopJS等。

比如:Playwright专门针对视觉测试,Playwright 提供了一个内置功能来执行这些测试,使用像素匹配库作为比较引擎。 允许在不同的屏幕尺寸和不同的浏览器中执行这些测试,能够覆盖每个场景。这个是在playwright.config(https://playwright.dev/docs/test-configuration)文件中配置的。

像素匹配如何工作?

  • 这个库负责分析和比较测试期间捕获的屏幕截图与基线图像,用来检测任何视觉差异或回归。
  • 它计算图像之间的像素级差异并生成突出显示变化的差异图像。

在这里插入图片描述

二.Applitools Eyes

1.是什么

Applitools 是一个基于 视觉AI 的测试自动化平台,提供 Applitools Eyes其核心产品围绕着视觉回归测试和UI测试。

  • 由视觉人工智能(Visual AI)驱动的工具,它可以让机器模仿人眼和大脑,提供识别功能和各种回归。
  • 其Applitool Eyes工具只需一行代码**,即可分析应用程序的整个屏幕**。
  • 它利用人工智能和机器学习进行测试维护。其比较算法可以判断应用的变化是有意而为,还是出现了错误
  • 通过与现有的测试进行顺利的集成,它能够减少编写和学习新测试的步骤,并扩展现有的测试。

视觉测试是一种使用截图快照进行断言的测试。Applitools提供了Eyes SDK,用于与多个测试工具和框架(如Selenium、Cypress和Playwright)一起捕获视觉快照。您首次运行测试时,Applitools Eyes会将初始快照作为基线图像上传到云端。然后,每次重新运行测试时,Applitools都会捕获一个新的快照(称为检查点图像),并使用云中的视觉AI来检测任何有效的差异。

2.优缺点

优点

  • 可以用于测试网页应用、移动应用、桌面应用、PDF、截图等。提供了 Eyes SDK,支持多种流行测试框架(例如 Selenium WebDriver 或 Appium)和多种主流编程语言,如 Selenium、Cypress 和 Playwright
    • SDK 直接安装到的项目中,实现无缝集成。无需创建新测试或学习新框架。
  • 减少了编码——调用一行Applitools Eyes 的代码就可完成页面视觉差异对比
  • 提供一个简化的仪表板,简洁的报告。清楚地标出了对比屏幕截图中的视觉差异。
  • 提供智能辅助来帮助维护测试——当视觉 AI 引擎检测到改进测试的方法时,您会收到通知,并且只需单击即可实施。
  • 提供安全可靠的超快网格——一种基于云的网格,包含浏览器、设备和视口的组合。这

缺点

  • Applitools 是基于脚本的,因此需要一些脚本自动化经编程能力才能使用
  • Applitools 仅限于 UI 测试
  • Applitools 的主要重点是在不同浏览器和设备上的 Web 应用程序测试,由 Ultrafast Grid 提供。因此,Applitools 在移动应用程序测试中受到限制。但是,Applitools 可以与 Appium 集成以生成移动应用程序自动化测试
  • 由于 Applitools 在移动设备上不成熟,它不会报告应用程序崩溃
  • Applitools 不提供真实设备
  • Applitools 要求您为每种设备类型设置特定的基线baseline
  • 对于移动设备,Applitools 要求团队在他们的测试自动化中进行 API 调用和/或检测他们的源代码,这两者都会导致严重的问题

3.注册平台账号

  1. 注册账号https://auth.applitools.com/users/general-register

    • 注:必须使用企业邮箱注册(如ouyangjianpeng@egos.con)的github账号才能注册applitools
  2. 提供的功能,可以看到 Applitools Eyes! 提供了不同类型程序,不同编程语言和测试库的支持。
    在这里插入图片描述

  3. 进入测试管理界面,右上角点击账号,在下拉列表中选择My API key,弹窗讲会得到一个API key 的字符串。
    在这里插入图片描述

功能介绍

1.界面切换

在这里插入图片描述

Test results   测试结果 
Tests requiring attention  需要关注的测试
Apps & tests  应用程序与测试
Branch baselines 分支基线
Environments  环境
Compare & merge branches 比较与合并分支
Insights 洞察
Admin 管理

2.单条视觉测试结果解读

在这里插入图片描述

Unresolved Test results of batch: Baidu  批次“Baidu”的未解决测试结果:
Tests: 1 in total 1 unresolved  测试:总共1个,其中1个未解决
Steps: 1 in total 1 unresolved  步骤:总共1个,其中1个未解决
Batch duration: 00:00:15  批次持续时间:00:00:15
Run by: ouyangjianpeng@egosai.com  运行者:mailto:ouyangjianpeng@egosai.comStatus     Execution Cloud  Test  Branch  OS  Browser  Viewport  Device  Started  Assign to
Unresolved  Did not run on Applitools Execution Cloud  Baidu  default  Windows 10  Chrome 126.0  800x600  8 Jul 2024 at 7:03 PM状态:未解决
执行云:未在Applitools执行云上运行
测试:Baidu
分支:默认
操作系统:Windows 10
浏览器:Chrome 126.0
视口:800x600
设备:无特定设备
开始时间:2024年7月8日下午7:03
分配给:无特定人员

3.测试视图切换

1.Batch details view 批次详细信息视图(默认展示)

在这里插入图片描述

“批次详细信息视图”允许您专注于批次中的测试结果以及每个测试结果的步骤。该视图会显示当前批次中所有测试结果的表格。您可以在此视图中对测试结果或测试结果中的步骤执行操作。在“批次详细信息视图”中,您可以执行的主要任务包括:
接受和拒绝步骤
将测试分配给团队成员
覆盖测试状态
删除测试运行
为测试和步骤添加书签
过滤测试结果
按列类型对表格行进行分组
为测试结果添加备注
撤销选定测试中的更改

在这里插入图片描述

2.Batch summary view 批次步骤视图

在这里插入图片描述

“批次步骤视图”允许您专注于批次的步骤,而无需像“批次详细信息视图”那样将步骤与特定的测试结果关联起来。在“批次步骤视图”中,会显示选定批次中所有步骤的缩略图。您可以对单个步骤、使用过滤或分组选项选定的步骤组或指示Eyes根据类似差异对步骤进行分组执行操作。在“批次步骤视图”中,您可以执行的主要任务包括:
接受和拒绝步骤
为测试和步骤添加书签

在这里插入图片描述

页面布局
该视图以缩略图形式显示选定批次中的所有步骤。测试结果表上方的“摘要”面板显示测试状态以及通过、失败或仍待解决的测试数量。
在这里插入图片描述

页面操作

  • 使用“筛选”工具 仅显示符合筛选标准和选项的步骤。
    在这里插入图片描述

  • 使用“按…分组”选项来显示与选定标准和选项相匹配的步骤组。
    在这里插入图片描述

  • 使用“按相似差异分组”选项来查找具有相似差异的步骤并将它们分组。您可以接受或拒绝整个组,而无需独立评估每个步骤。

3.Batch summary view 批次摘要视图

在这里插入图片描述

4.步骤缩略图功能按钮介绍

在这里插入图片描述
按钮从左到右依次为

1 确认当前测试步骤及其相似步骤中的差异是可以接受的,并且如果接受,将当前的快照设置为新的基线图像。
2 拒绝差异并保留此测试步骤及类似步骤的基线图像
3 高亮差异位置
4 切换 baseline image和checkpoint
5 放大该步骤

5.单个步骤窗口功能按钮介绍

在这里插入图片描述

1 确认当前测试步骤及其相似步骤中的差异是可以接受的,并且如果接受,将当前的快照设置为新的基线图像。
2 拒绝差异并保留此测试步骤及类似步骤的基线图像
3 保存
6 点击高亮显示差异(Highlight Differences5.3 添加应忽略差异的多个区域
5.1 2.5 添加注释和标注(Annotations7.5 AB测试
7.4 显示DOM和css引起的差异
7.7 显示元素位移引起的差异
7.1(baseline images)/7.2(checkpoint)在检查点checkpoint和 baseline images间切换
7.3 勾线当前视图需要显示的 快照(Show baseline image Show checkpoint image /Show both 显示全部)

5.3功能的选项

在这里插入图片描述

设置baseline后 需要点击保存所有 最终确认baseline image
在这里插入图片描述

三.Applitools Eyes 视觉检查

视觉检查的内容

  • 页面布局:比较屏幕截图,确保元素的位置一致。
  • 元素可见性:检查页面上元素的可见性,确保所有该显示的元素都显示了。
  • 颜色和样式:比较页面元素的颜色和样式,包括字体、背景颜色、边框等。
  • 页面内容:确保页面内容(如文本、图像)的正确性和一致性。

视觉检查和验证

  • 与传统的功能测试不同,视觉测试更多的是在于捕捉视觉变化而不仅仅是HTML结构或属性的变化。例如:
    • 元素是否按照预期位置进行渲染。
    • 颜色和样式是否按照预期展现。
    • 文本内容和图片是否完整且正确。

视觉检查失败的情况

  • Applitools Eyes 进行的视觉检查失败主要基于页面快照与基准图像Baseline Image)的对比。当以下情况发生时,页面会出现检查失败:
    • 元素丢失或多余:页面缺失重要的UI元素或出现多余元素。
    • 位置变化: 元素的位置与基准图像不匹配,可能因为CSS改变导致布局错误。
    • 颜色和样式变化:元素的颜色、字体、边框等样式与基准图像存在显著差异。
    • 内容变化:元素的文本内容发生变化(文本错误或内容更新未被允许的情况)。
    • 图片或其他媒体内容不一致。
    • 布局错乱:页面元素重叠或者错位,破坏了UI的完整性。
    • 视觉细节:细微的视觉差异,如阴影、过渡效果等,与基准图像的预期不符。

1.基准图像(Baseline Image)

  • 首次运行视觉测试时,Applitools会捕捉当前页面状态作为基准图像。随后所有的测试都将与这一基准进行比较。基准图像的管理和更新对保持测试的有效性至关重要:

  • 更新基准图像:当UI发生合法变化时,你需要手动更新基准图像,以便后续测试参考最新的 页面状态。

  • 容忍设置:在某些情况下,你可以配置容忍度,以忽略较小的差异,例如颜色的微小差别。

总结而言,eyes.check("Main Page", Target.window()) 进行的是整个页面的视觉验证,从布局到颜色、从文字到图像的全方位检测,任何与基准图像的不一致都可能导致检查失败。

2.Baseline

在 applitools 中有个特殊的概念,叫做 Baseline。什么是 Baseline 呢?其实很简单,我们可以把他当作是一条 UI 测试流程的基准线

打个比方,一段 UI 主流程的测试代码中对应了三个不同的页面 :登录页面、登录失败页面,登录成功页面

那么我们就可以把这个流程当作基准线,分别在三个不同的页面中添加 Checkpoint(验证点),当设定好 Baseline 后,下一次的测试执行将会对比当前测试流程 Baseline 之间 Checkpoint 中图像的差异,并做出通过或者失败的断言。

3,Visual checkpoint 视觉检查点

常指的是视觉测试过程中设置的一个检查点,用于验证应用程序或网页的截图是否符合预期。包括颜色、布局、字体、图像等元素

  • 在自动化测试脚本中,可能会设置一个checkpoint 来确保登录页面的背景颜色、按钮位置和文本内容都符合预期的设计规范。
  • 如果checkpoint 通过,则继续执行后续的测试步骤;如果未通过,则可能会记录一个错误或失败,并可能需要进一步调查或修复问题。

四.Applitools Eyes 工作原理

Applitools Eyes 的工作原理主要包括以下几个步骤:

  1. 截取快照(Snapshots)

    • 当你调用 eyes.check(...) 方法时,Applitools Eyes 会通过驱动(如Selenium WebDriver)截取当前页面或视图的屏幕快照。
    • 这些快照会捕捉整个页面、特定部分或者具体元素,取决于你配置的检查目标(例如,整个窗口或某个特定元素)。
  2. 图片上传与处理

    • 截取的快照将被上传到 Applitools 的云端服务
    • 在云端,Applitools 会对这些图像进行处理和优化,以便后续的对比和分析。
  3. 基准图像(Baseline Images)

    • 第一次运行测试时,Applitools Eyes 会将这些快照存储为基准图像(Baseline Images)
    • 后续的每次测试将生成新的快照,并与基准图像进行对比。
  4. 智能对比(Smart Comparison)

    • Applitools 使用了一种称为 视觉AI(Visual AI) 的技术来进行智能对比。
      • 这个AI系统采用了计算机视觉和机器学习算法,能够识别和处理图像中的元素和细节
      • 除了简单的像素对比, 视觉AI(Visual AI) 可以了解不同上下文中的UI元素,识别布局、样式和内容的变化。
  5. 差异检测和分析(Difference Detection and Analysis)

    • 通过智能对比,Applitools Eyes 可以识别图像中的差异。这些差异可以是位置变化、样式变化、内容变化等。
    • AI系统会标记并分类这些差异,将其区分为 “重大问题”、“微小变化”或“无关紧要” 的变动。
  6. 容忍设置和忽略区域

    • 在某些情况下,用户可以设置容忍值或忽略某些特定区域,以避免不必要的测试失败。
    • 例如,动态内容(广告、日期和时间等) 可以被标记为忽略区域
  7. 与基准图像更新

  • 当合法的UI变化被接受时,可以将这些测试结果更新为新的基准图像
    • 如此一来,下一次的测试将基于最新的UI状态进行对比。
  1. 结果报告和反馈
    Applitools Eyes 会生成详细的报告列出所有发现的差异,并提供视觉反馈
    • 这些报告可以集成到DevOps流水线中,帮助开发和测试团队快速识别和修复UI问题。

五. Python + selenium 编写自动化测试

工作流程概述
在这里插入图片描述

1.自动化脚本编写

  1. 准备环境

    Applitools账号,您可以免费注册。
    Python3
    最新版本的Google Chrome浏览器。
    与Chrome浏览器版本相对应的ChromeDriver
    
    • 关键点:
      • ChromeDriver 需在系统变量 PATH中配置 。在 macOS 和 Linux 上,chromedriver 可执行文件的推荐位置是/usr/local/bin目录。

        • Chrome 和 ChromeDriver 的主版本号必须相同。否则,在初始化时 Selenium WebDriver 可能会引发异常。 例如,Chrome v101 需要 ChromeDriver v101。
      • 运行chromedriver -v命令来打印其版本来验证 ChromeDriver 是否正常工作。

2.applitools 提供了 eyes-selenium库,里面包含了视觉相关的API,需要pip安装。

pip install selenium
pip install eyes-selenium

基于eyes-selenium编写的python自动化脚本如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from applitools.selenium import Eyes, Target, Configuration# 初始化 Selenium WebDriver
driver = webdriver.Chrome()# 初始化 Applitools Eyes
eyes = Eyes()
eyes.api_key = ""  # 把 'YOUR_API_KEY' 替换为你的 Applitools API Keytry:# 创建一个新的测试实例配置config = Configuration()config.app_name = 'Applitools Hello World Demo'config.test_name = 'Hello World Test with Links and Button'# 开始视觉测试with eyes.open(driver, app_name="Hello World App",test_name="Hello World Test",viewport_size={'width': 800, 'height': 600}):# 访问目标页面driver.get("https://applitools.com/helloworld")#视觉检查点 #1eyes.check("Main Page", Target.window())  # 检查整个浏览器窗口的视觉# 点击第一个 diff 链接driver.find_element(By.CSS_SELECTOR, 'a[href="?diff1"]').click()#视觉检查点 #2eyes.check("Diff1 Page", Target.window())# 返回主页面driver.back()# 点击第二个 diff 链接driver.find_element(By.CSS_SELECTOR, 'a[href="?diff2"]').click()#视觉检查点 #3eyes.check("Diff2 Page", Target.window())# 返回主页面driver.back()# 点击按钮driver.find_element(By.TAG_NAME, 'button').click()# 检查按钮点击后的页面#视觉检查点 #4eyes.check("After Button Click", Target.window())# 结束视觉测试并关闭浏览器eyes.close()
finally:driver.quit() # 关闭浏览器eyes.abort()  # 如果在调用 eyes.close 之前测试被中止,则该测试将以中止状态结束。

关键点:

  • API_key 替换为平台上获取的用户API_key
  • eyes.check() 用于进行视觉检查Target.window()表示检查整个窗口

2.执行结果分析

1.首次运行代码后,进入applitools 的 管理后台,可以看到已经新增了一条 Baseline
在这里插入图片描述

  1. 再次运行相同代码,检验一下 Baseline 中的 Checkpoint 是否生效,
    在这里插入图片描述

  2. 发现没有 PASS?于是我们点进去一看:

    • 原来是步骤2、步骤3baseline和checkpoint不一样导致,视觉测试没有被pass
      在这里插入图片描述

    • 那么这种问题要怎么解决呢?

      • applitools 使用 AI 技术帮助我们对比当前测试节点Baseline 之间的图像差异时,如果发现当前测试中的 checkpoint 图像 Baseline 不符,则会把测试结果打上一个 Unresolved(未解决) 标签。这是因为 AI 并不知道这个图像差异是由新功能导致的还是这确实是个 Bug。

      • 而这个时候,我们可以人工去给这个测试结果打标签(通过 / 不通过)。如果打上了通过的标签,新的 Baseline 将会覆盖旧的 Baseline 。如果打上了失败的标签,下一次测试中如果出现了同样的差异将会继续给结果打上 Unresolved(未解决)标签。

  3. 回到 Web 页面中给之前Unresolved的测试用例点个赞(打上通过的标签)。
    在这里插入图片描述

    • 但是,这很明显会产生一个新的问题:

      • 当 checkpoint 图像截的图片是动态的(时,该怎么办?
      • 当 Checkpoint 图像不稳定时,如何设置 Baseline?
    • 解决办法: 设置 Checkpoint 图像忽略区域

      • 对所有的 Checkpoint 图像中的区域设置特定的属性可忽略、严格匹配等。而 可忽略 这个属性恰恰是解决问题的关键。
  4. 回到 applitools 的 Web 页面中,在最后测试结果中的 ANNOTATIONS 标签栏中选择 ignore regions(可忽略区域)
    在这里插入图片描述
    在这里插入图片描述

  5. 再次运行代码 后回到 applitools 的管理界面中,发现多了一条测试通过的用例:

    • 点进去后发现 Baseline 与 当前测试结果并不相同,但是由于我们选定了可忽略的区域,所以该区域的随机数怎么变化都不影响结果的改变
      在这里插入图片描述
      在这里插入图片描述

六.Applitools eyss 的痛点

  • Applitools 的核心点了,那就是:图像对比。尤其元素难以定位的场景下这个功能确实好用。
  • 以目前 Applitools 的水平来看还仅仅停留在了比较初级的水平,仍然需要大量的人力去维护工具的 “智能”。
    -随着业务的复杂度增高以及 UI 页面大量堆积,如果每个流程分支都去设置一个 Baseline,一旦 Baseline 过多,维护起来也是一笔不小的开支。
  • Applitools 属于 机器学习 - 监督学习(通过已标记的训练数据来训练模型,使其能够根据输入数据预测对应的输出)

在这里插入图片描述

翻译过来就是:

  • Applitools 的 AI 经过了上亿张图片进行训练,它不基于像素点去比对图片(因为这会产生大量负面的正例)。它通过模拟人的眼睛去识别图像之间的错误人眼会忽略的错误,它也会忽略而对于人眼来说显著的错误,它也能识别出来。

  • 目前 Applitools 的识别正确率高达 99.9999%,这意味着你在调用它一百万次测试中只能找出一个负面的正例。

运行测试

第一次运行:

  • 调用 eyes.check(“Product List”, Target.window()) 捕捉整个页面快照。
  • 快照上传到 Applitools 云并存储为基准图像。

第二次运行(后续测试):

  • 页面再次加载,捕捉当前页面的快照。
  • 新快照上传到云端,与之前的基准图像进行智能对比。
  • Visual AI 系统检测和分析差异,发现某些页面变了、布局发生变化。

在这里插入图片描述

差异处理

  • 开发者查看报告,决定这些变化是预期的还是错误的。
  • 如果变化是预期的(例如调整了布局或价格修改是正常行为),基准图像可以更新。
  • 如果是错误的,开发团队可以及时修复问题。

两个diff页面时失败的,原因是页面中间一串随机数据,导致页面视觉检查失败。但是第二个diff页按钮的位置发生了改变,视觉检查会忽略这个问题。

如果认为随机数是可以跳过的,可以点击 失败的图片,通过IGNORE 工具选择忽略的区域,并保存。
在这里插入图片描述

第三次运行(后续测试):

  • 页面再次加载,捕捉当前页面的快照。
  • 新快照上传到云端,与之前的基准图像进行智能对比。
  • Visual AI 系统检测和分析差异,发现某些页面变了、布局发生变化。
    在这里插入图片描述

由于已经添加了忽略区域,Visual AI 跳过忽略区域,所以第三次运行是时通过的。

人工智能和机器学习在测试中的应用前景

人工智能和机器学习(AI/ML)在软件测试中的应用正在逐渐改变传统的测试方法,提高测试效率和质量。

以下是AI/ML在测试中的一些关键应用:

自动化测试

  • AI可以通过机器学习算法自动识别和执行测试用例,大大提高了测试效率7。AI工具能够学习软件的行为和模式,自动生成测试用例和测试脚本,减少了手动设置和维护的工作量。

工具推荐:

  • Selenium with AI:结合了Selenium的自动化能力和AI的智能生成测试用例。
  • Applitools:使用AI来增强视觉测试,自动识别和修复UI问题。
  • Tricentis Tosca:提供AI驱动的测试自动化,支持多种应用类型。
  • Worksoft:利用AI来自动化复杂的业务流程测试。
  • TestPlant Eggplant:提供AI支持的自动化测试,适用于复杂的测试场景。
  • Testim:是一个基于云的测试自动化平台,它提供了一套工具和服务,用于自动化Web应用程序的测试。Testim.io 的主要目标是简化测试过程,提高测试的效率和准确性。

智能缺陷检测

  • 利用模式识别和异常检测技术,AI能够自动发现软件中的缺陷,减少了人工检查的工作量,并提高了缺陷检测的准确性。

预测性测试

  • AI能够通过历史数据分析预测可能出现的软件问题,提前进行预防,降低了软件的风险7。通过分析代码变化、历史缺陷数据和测试结果的模式,AI模型可以帮助识别和优先处理代码库中更可能包含缺陷的区域。

测试用例生成

  • AI支持的测试用例生成利用机器学习算法分析历史测试数据并发现模式,从而创建新的测试用例,以更有效地识别缺陷。这使得测试团队可以更好地确定其测试工作的优先次序,重点关注具有最高失败风险的领域。

测试结果分析

  • AI驱动的测试结果分析通过分析测试结果和日志,自动识别异常和错误,帮助测试人员快速定位问题并进行修复。这提供了宝贵的见解,可以帮助测试人员有选择地将他们的努力集中在高风险领域。

测试套件维护

  • AI驱动的工具可以通过分析测试用例的有效性,识别测试套件中的冗余,并建议测试用例的改进,优化测试覆盖率。

性能测试

  • AI在性能测试中通过使用机器学习算法预测软件在不同负载下的性能表现,帮助测试人员更早地发现潜在的性能问题。AI还可以通过分析历史数据,自动调整测试参数,以模拟真实的用户行为,使性能测试更加准确和全面。

安全测试

  • AI在安全测试中通过深度学习技术自动检测软件的安全漏洞和风险,比传统的安全测试方法更加高效和准确。AI还可以模拟黑客的攻击行为,帮助测试人员更好地理解软件的安全风险,从而提高软件的安全性。

查看分运行后分析结果:
https://applitools.com/users/login

下面奉上Applitools官方网站:
https://applitools.com/tutorials/

Applitools更多sdk:
https://applitools.com/tutorial

Applitools文档:
https://applitools.com/docs

Applitools演示:
https://applitools.com/request-demo?utm_source=tutorials

Applitools知识库:
https://help.applitools.com/hc/en-us/

https://applitools.com/tutorials/quickstart/web/selenium/python#step-2-getting-your-example-project

https://applitools.com/tutorials/

面向未来的AI自动化测试工具

谷歌驱动下载
Chromedriver125以后的去哪找,以及自动更新Chromedriver的Python脚本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3247059.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

网络开局 与 Underlay网络自动化

由于出口和核心设备 部署在核心机房,地理位置集中,业务复杂,开局通常需要网络工程师进站调测。 因此核心层及核心以上的设备(包含核心层设备,旁挂独立AC设备和出口设备)推荐采用WEB网管开局方式或命令行开局方式。 核心以下的设备(包含汇聚层设备、接入层设备和AP)由于数量众…

发文大刊!Springer旗下1区SCI,收稿量20000+,投稿难度一颗星!

【SciencePub学术】本期,小编给大家推荐的是1本2区计算机综合类SCI,该期刊隶属于Springer出版社,分区逐年上升,现已稳定检索13年,属于Springer旗下的1本口碑优刊。 1 期刊基本信息 【期刊简介】IF:3.0-4.…

【zabbix6监控java-tomcat全流程】

目录 一、监控主机安装zabbix-server1、zabbix的安装2、配置数据库3、为zabbix server配置数据库4、启动服务,web界面安装 二、被监控主机安装tomcat1、安装JDK2、安装tomcat 三、zabbix的服务端安装zabbix-java-gateway四、被监控主机tomcat的配置五、web界面添加主机 一、监控…

python 10的阶乘怎么算

python计算阶乘的方法有很多种,下面给大家介绍三种方法。 第一种:利用functools工具处理 import functools result (lambda k: functools.reduce(int.__mul__, range(1, k 1), 1))(10) print(result) 结果如下: 3628800 第二种&#xff1a…

Tongweb7 日志报错:HttpServletResponse is exceeding the 65535 bytes limit(by lqw)

遇到jsp访问的时候页面加载不全,看tw7日志有如下图信息: 原因: jsp的本质是servlet,编译时会先将他转换成java代码,然后再进行编译。 你的jsp编译成生成的文件太大,导致报错。(Java 编译器限制…

【操作系统】定时器(Timer)的实现

这里写目录标题 定时器一、定时器是什么二、标准库中的定时器三、实现定时器 定时器 一、定时器是什么 定时器也是软件开发中的⼀个重要组件.类似于⼀个"闹钟".达到⼀个设定的时间之后,就执行某个指定 好的代码. 定时器是⼀种实际开发中⾮常常用的组件. ⽐如⽹络通…

安全防御---防火墙综合实验3

安全防御—防火墙综合实验3 一、实验拓扑图 二、实验要求 12,对现有网络进行改造升级,将当个防火墙组网改成双机热备的组网形式,做负载分担模式,游客区和DMZ区走FW3,生产区和办公区的流量走FW1 13,办公区…

Jenkins安装nodeJs环境

首先插件市场安装nodeJS插件,我这里已经安装了,没安装的话在 Available plugins 中搜索安装 安装完成后需要下载需要的nodejs版本 新增完成就可以在构建的时候选择当前版本号了

jmeter-beanshell学习11-从文件获取指定数据

参数文件里的参数可能过段时间就不能用了,需要用新的参数。如果有多个交易,读不同的参数文件,但是数据还是一套,就要改多个参数文件。或者只想执行参数文件的某一行数据,又不想调整参数文件顺序。 第一个问题目前想到…

无人驾驶的未来:AI如何重塑我们的出行世界

无人驾驶汽车,作为人工智能(AI)技术的集大成者,正以前所未有的速度改变着我们的出行方式。从机器学习到计算机视觉,再到人工智能生成内容(AIGC),AI技术的每一次进步都在为无人驾驶汽…

C语言 do while循环语句练习 下

猜数字游戏实现 //猜数字游戏 //电脑产生 一个随机数&#xff08;1-100) //猜数字 //猜大了 //猜小了 //直到猜对了&#xff0c;结束 #include <stdlib.h> #include <time.h> void menu() {printf("********************************\n");printf("…

浅谈电商搜索数据指标体系建设

搜索作为电商APP中用户下单的核心场域&#xff0c;具有较高的消费者价值&#xff08;体验&#xff09;、变现价值&#xff08;赚钱&#xff09;、数据沉淀价值&#xff08;研究&#xff09;。因此搭建搜索相关数据指标体系&#xff0c;用于及时监控波动&定位原因就显得至关…

SCI二区TOP|旗鱼优化算法(SFO)原理及实现【免费获取Matlab代码】

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2023年&#xff0c;S Shadravan受到母亲与孩子之间的人际互动启发&#xff0c;提出了旗鱼优化算法&#xff08;SailFish Optimizer, SFO&#xff09;。 2.算法原理 2.1算法思想 SFO灵感…

Java之split 方法

方法的工作原理 split 方法首先检查字符串中是否存在指定的分隔符。如果存在&#xff0c;它会在每个分隔符处切割字符串&#xff0c;生成一个新的字符串数组。如果字符串中没有指定的分隔符&#xff0c;或者分隔符是非空字符但在字符串中不存在&#xff0c;则 split 方法会返回…

前端简历:项目经历(经验)-外卖送餐类

项目经历-堂食外送点餐 2022年2月-2022年5月 项目描述&#xff1a;该平台提供外送订餐服务&#xff0c;用户可以在手机中轻松地浏览菜品、下单、支付、编辑地址、填写个人信息等&#xff0c;我主要负责首页、订单、我的这3个功能/模块。 技术栈&#xff1a;Amfe-flexibleAxi…

数据包的跨层封装

首先&#xff0c;我们先简单地分析一下数据包的组成结构&#xff1a; 如图 数据包简略地分为以下几层&#xff1a; 二层&#xff1a;封装MAC地址&#xff08;数据链路层&#xff09; 三层&#xff1a;封装IP地址 — 表明源IP和目标IP&#xff0c;主要用于路由器之间的信息转发…

GuLi商城-商品服务-API-品牌管理-JSR303自定义校验注解

自定义注解规则: 可以参考@NotNull注解 package com.nanjing.common.valid;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target;i…

Transformer模型:Decoder的self-attention mask实现

前言 这是对Transformer模型Word Embedding、Postion Embedding、Encoder self-attention mask、intra-attention mask内容的续篇。 视频链接&#xff1a;20、Transformer模型Decoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 文章链接&#xff1a;Transformer模型&…

多层全连接神经网络(二)

线性回归的原理&#xff0c;如果有需要&#xff0c;可以单独拿出来讲。 一维线性回归的代码实现 首先我们随便给出一些点&#xff1a; x_train np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.168],[9.779], [6.182], [7.59], [2.167], [7.042],[10.791], [5.313], [7.…

Pytorch学习笔记day2——Tensor运算

那么今天&#xff0c;我们来学习一下张量运算。笔者最早接触AI还是在tensorflow的时代。张量tensor本身&#xff0c;可以理解成向量和矩阵的一个推广。 一维张量就是向量&#xff1a;A[i] 二维张量就是矩阵&#xff1a;A[i][j] 三维张量就是…就是三维张量…嗯总不能每个维度都…