出门莫恨无人随,书中车马多如簇。这篇文章主要讲述Selenium自动化应该避免的测试场景相关的知识,希望能为你提供帮助。
Selenium是一个非常流行的Web自动化测试框架,如今Selenium自动化的需求量很大。但是在测试中并不总是建议使用Selenium测试所有的测试场景。作为Web自动化工具,Selenium主要旨在测试不同的Web应用程序在不同浏览器上执行的正确性,但自动化一切是不合理的。
下面我们了解为什么无法不建议使用Selenium WebDriver实现所有自动化,并分析它不独立支持哪些测试场景。
验证码大多数网站上看到各种清怪的验证码,用来评估用户是机器人还是真人。可以理解,验证码是关于防止自动化的。否则,它将无法执行预期的操作。Selenium测试自动化不能用于大多数图形验证码。但是遵循下面提到的最佳实践之一可以绕过它。
在遇到验证码时,可以考虑以下自动化测试场景的做法:
- 应在测试环境中通过在软件中进行简单配置或通过设置URL参数来禁用验证码
- 添加钩子可以让测试绕过验证码
- 是验证码变成非必选项
两因素身份验证不应该进行Selenium自动化的另一种情况是双因素身份验证,其中移动应用程序通过使用身份验证器并电子邮件、手机号等发送消息。尽管可以在 Selenium中自动化此场景,但将其与Selenium WebDriver集成是一项重大挑战。这仅仅是因为它会添加另一层,这是不安全的。可以考虑执行以下操作:
- 在测试运行时在测试环境中禁用 2FA
- 为用于运行的特定用户凭据禁用 2FA
- 从特定IP登录时禁用 2FA
- 使用特定参数绕过 2FA
文件上传和验证【Selenium自动化应该避免的测试场景】Selenium WebDriver可用于在Web应用程序中执行测试场景。例如Selenium Webdriver自动模拟用户点击上传按钮的动作,但它无法验证文件是否已成功上传并显示在屏幕上。像AutoIT这样的工具用于Windows的文件上传,之后必须使用额外的验证工具来验证上传是否成功。团队只有在迫切需要自动化用户流程的步骤时才会选择这样做。
文件下载和验证尽管可以使用Selenium执行文件下载场景测试,但它无法验证下载中正在进行的内容下载进度。验证的唯一方法是比较下载项目中的文件数量。此外,验证下载的内容是否符合预期需要一些人工干预。
性能测试性能测试是另一个不应该使用Selenium WebDriver自动化的测试场景。Selenium WebDriver 测试受到外部和内部脆弱点的影响,例如浏览器启动速度、HTTP服务器速度、javascript和CSS第三方服务器的响应、WebDriver实现的检测损失等,不在我们的控制范围内。您可以使用Google Lighthouse等前端性能测试工具来执行更快的性能测试,或者使用JMeter来执行负载测试。
应用程序爬虫Web爬虫可以通过找出哪些链接被破坏来节省时间和成本。Selenium WebDriver不是推荐的通过链接爬取的工具。因为根据测试的编写方式,爬取需要较长的等待时间。当页面或链接很少时,使用Selenium WebDriver查找损坏的链接可能会起作用。因此,链接爬虫工具必须满足性能要求。可以考虑使用比 Selenium更简单的工具来检查断开的链接。
社交网站和电子邮件不建议通过UI对社交媒体和电子邮件登录执行Selenium自动化场景测试,因为集成这些应用程序可能会获取不可靠的测试性能。因此,最好在这种情况下添加对应API,以加快测试执行速度和提高可靠性。
音频或视频流如今,大家在某站上在线消费大量视频内容。因此,对视频内容进行自动化测试也变得至关重要。Selenium WebDriver不适用于此类场景的测试自动化。因为Selenium对于在线视频播放器等控件识别并不总能保持稳定可靠。StreamTest是一款免费工具,可以测量URL的执行情况并检查最终用户体验质量,但其输出并非百分百可靠。甚至javaScript Executor和FlexUISelenium也无法提供可靠的结果。人工智能可能有助于衡量视频质量。
在线屏幕共享平台COVID-19大流行的兴起增加了我们对远程工作的在线视频会议平台的依赖。由于其不断增长的需求,测试和自动化用户测试场景变得至关重要。为此目的使用Selenium之类的工具无助于实现预期的测试效率。像这样的应用程序需要比Selenium更适合的工具。
安全测试保护 Web 应用程序和保护其他在线产品免受安全威胁是任何企业的关键需求。网络安全团队使用JSky、Owasp Zap、Burp 套件等不同工具来实现完整的网络安全,以保护网络应用程序和其他在线服务免受任何可能的安全威胁。Selenium 不具备执行安全测试的能力。
Windows 应用测试Selenium WebDriver 无法自动化Windows应用程序。因此,微软创建 WinAppDriver(Windows 应用程序驱动程序)来支持基于Windows的应用程序的类似Selenium的UI测试自动化。它需要像Visual Studio这样的C#编码环境来执行在Windows应用程序上运行的自动化测试场景。甚至Sikuli和 AutoIT也可用于测试Windows组件。
Mac 应用测试出于与Windows应用程序相同的原因,Mac应用程序测试同样不适用于Selenium WebDriver。对于Mac应用程序,Appium的Mac驱动程序与现有的 Selenium测试框架集成可以执行基本的自动化。
移动应用测试不建议将Selenium用于移动应用程序测试。Appium Mac Driver是Espresso、UI Automator和XCUITest框架上的一个集成应用。因此,理想情况下,应该考虑使用这些工具来实现最大效率并涵盖大多数测试场景。
结论自动化测试旨在节省精力、时间和金钱,而Selenium是跨浏览器兼容性测试的理想工具。在一些不合适的场景下,执行 Selenium 测试自动化不会增加任何价值,甚至某些情况下会起反作用。希望上面提到的几点能够帮助到各位。
Have Fun ~ Tester !
- FunTester原创大赏
- 性能测试专题【FunTester原创】
- FunTester社群风采
- 接口功能测试专题【FunTester原创】
- FunTester抄代码之路
- Java& Groovy下载文件对比
- JSON必知必会【PDF+视频教程】
- Java服务端两个常见的并发错误
- Groovy入门常用语法
- 6个重要的JVM性能参数
- 2020年FunTester自我总结
- FunTester2021年总结
- 阿拉伯数字转成汉字
- LevelDB Java& Go实践
- 利用 python+plotly 制作双波源干涉三维图像
推荐阅读
- Redis 的编译安装及多种方式启动
- python 包之 blinker 信号库教程
- 王道考研|笔记&补充线性表之顺序表
- K8S关于pod资源监控
- 带你了解Go语言基础之切片
- css 学习笔记浮动,不脱离文档流,继承和层叠
- 微信小游戏开发实战16:如何对小游戏进行优化
- Android轮播图Banner的实现
- Android Studio 优秀插件( Parcelable Code Generator)