长期以来,人们对使用录制回放工具进行测试而不是像 Selenium Webdriver、Cypress 和 WebdriverIO 这样的脚本化 QA 自动化工具存在偏见。
录制回放工具被认为存在许多问题,包括缺乏跨浏览器支持、无法并行或从 CI 构建脚本运行脚本、对响应式 Web 应用支持不佳以及无法快速诊断前端错误。
毋庸置疑,对于这些工具来说,这是一段坎坷的道路,在 Selenium IDE 于 2017 年 停止生命周期 后,许多人认为录制回放之路将彻底结束。
然而,事实证明这种看法是错误的。在 Selenium IDE 项目停止后不久,我在 Applitools 的同事联系了 Selenium 开源社区,看看他们如何提供帮助。
从那时起,Selenium IDE 的大部分代码都得到了改进。现在,该代码在 Apache 2.0 许可下在 GitHub 上免费提供,由 Selenium 社区管理,并由 两位全职工程师 提供支持,其中一位工程师实际上撰写了关于 Selenium 测试 的书。

新的 Selenium IDE 为许多 IT 专业人士,特别是前端开发者带来了功能测试自动化的优势。以下是开发者应该了解的关于新 Selenium IDE 的九件事。
1. Selenium IDE 现在是跨浏览器的
当录制回放工具于 2006 年首次推出时,Firefox 是它所依附的闪亮的新浏览器,并且这种情况持续了十年。现在不一样了!Selenium IDE 现在可以作为 Google Chrome 扩展程序 和 Firefox 附加组件 使用。
更棒的是,Selenium IDE 可以通过使用 Selenium IDE 的新命令行测试运行器 SIDE Runner 在 Selenium WebDriver 服务器上运行其测试。SIDE Runner 融合了 Selenium IDE 和 Selenium Webdriver 的元素。它接受一个 Selenium IDE 脚本,保存为 .side 文件,并使用浏览器驱动程序(如 ChromeDriver、EdgeDriver、Firefox 的 Geckodriver、IEDriver 和 SafariDriver)运行它。
SIDE Runner 和上面的其他驱动程序可以作为 简单的 npm 安装 使用。以下是它的实际效果。

2. 不再有脆弱的功能测试
多年来,脆弱的测试一直是功能测试的一个问题——无论您是录制它们还是手动编写代码。现在,开发者发布新功能的频率更高,他们的用户界面 (UI) 代码也在不断变化。当 UI 发生变化时,对象定位器通常也会发生变化。
Selenium IDE 通过在您录制脚本时捕获多个对象定位器来解决这个问题。在回放期间,如果 Selenium IDE 找不到一个定位器,它会尝试其他每个定位器,直到找到一个可用的定位器。只有当所有定位器都无法工作时,您的测试才会失败。这并不能保证脚本始终能够回放,但它确实使脚本免受许多更改的影响。如下所示,Selenium IDE 捕获了 linkText、一个 xPath 表达式和基于 CSS 的定位器。

3. 用于处理 UI 功能的条件逻辑
在测试 Web 应用时,脚本必须处理应用中可能随机出现的间歇性 UI 元素。这些元素以 Cookie 通知、特别优惠弹出窗口、报价请求、新闻通讯订阅、付费墙通知、广告拦截器请求等形式出现。
条件逻辑是处理这些间歇性 UI 功能的好方法。开发者可以轻松地将条件逻辑(也称为控制流)插入到 Selenium IDE 脚本中。此处提供了详细信息 以及它的外观。

4. 支持嵌入式代码
尽管新的 Selenium IDE API 非常广泛,但它并不能完成所有工作。因此,Selenium IDE 具有 execute script 和 execute async script 命令,让您的脚本调用 JavaScript 代码片段。
这为开发者提供了极大的灵活性,可以利用 JavaScript 的灵活性和广泛的库。要使用它,请单击您希望 JavaScript 运行的测试步骤,选择 Insert New Command,然后在命令字段中输入 execute script 或 execute async script,如下所示。

5. Selenium IDE 从 CI 构建脚本运行
由于 SIDE Runner 是从命令行调用的,因此您可以轻松地将其放入 CI 构建脚本中,只要 CI 服务器可以调用 selenium-ide-runner 并上传 .side 文件(测试脚本)作为构建工件即可。例如,以下是如何在 Jenkins、Travis 和 CircleCI 中上传输入文件。
这意味着 Selenium IDE 可以更好地集成到软件开发技术堆栈中。此外,由技术水平较低的 QA 团队成员(包括业务分析师)创建的脚本可以在每次构建时运行。这有助于更好地将 QA 与开发者对齐,从而减少逃逸到生产环境中的错误。
6. 支持第三方插件
想象一下,公司构建插件以使 Selenium IDE 完成各种事情,例如将脚本上传到功能测试云、负载测试云或生产应用程序监控服务。
许多公司已将 Selenium Webdriver 集成到他们的产品中,我打赌 Selenium IDE 也会发生同样的情况。您还可以 构建自己的 Selenium IDE 插件。
7. 可视化 UI 测试
说到新插件,Applitools 引入了一个新的 Selenium IDE 插件,以在等式中添加人工智能驱动的可视化验证。通过 Chrome 和 Firefox 商店提供,只需三秒钟即可安装,只需插入 Applitools API 密钥即可开始使用。
可视化检查点是确保 UI 正确渲染的好方法。与其对所有 UI 元素进行一堆断言语句(这将难以维护),不如一个可视化检查点检查您的所有页面元素。
最重要的是,可视化 AI 以与人类相同的方式查看 Web 应用,忽略细微的差异。这意味着更少的虚假错误让开发团队感到沮丧。
8. 可视化测试响应式 Web 应用
在测试 响应式 Web 应用 的可视化布局时,最好在各种屏幕尺寸(也称为视口)上进行测试,以确保没有任何内容显得不协调。响应式 Web 错误很容易潜入,当它们发生时,问题范围可能从仅仅是外观问题到业务中断。
当您将可视化 UI 测试用于 Selenium IDE 时,您可以在 Applitools Visual Grid 上可视化测试您的网页,该网格具有 100 多种浏览器、模拟设备和视口大小的组合。
一旦测试在 Visual Grid 上运行,开发者可以轻松查看所有各种组合的测试结果。

9. 响应式 Web 错误无处遁形
Selenium IDE 可以帮助查明前端错误的原因。每个使用 Visual Grid 运行的 Selenium IDE 脚本都可以使用 Applitools 的 Root Cause Analysis 进行分析。仅仅找到错误是不够的——开发者还需要修复它。
当发现可视化错误时,可以单击它,并且只会显示相关的(而不是全部)文档对象模型 (DOM) 和 CSS 差异。

总而言之,与软件开发中的许多新兴技术一样,Selenium IDE 是使技术专业人员的生活更轻松简单的更大趋势的一部分,并使他们能够花费更多的时间和精力来创建代码,以实现更快的反馈。
本文基于 2019 年使用 Selenium IDE 的 16 个理由(以及 2 个不使用的理由),最初发布在 Applitools 博客上。
1 条评论