不宜使用Selenium自动化的10个测试场景
尽管在很多情况下测试自动化是有意义的,但一些测试场景是不应该使用自动化测试工具的,比如Selenium、WebDriver。
下面有10个示例,来解释为什么自动化在这种情况下使用时没有意义的,我还将为您提供每种方法的替代方法。
01 验证码
CAPTCHA是完全自动的公共的图灵测试,以区分计算机和人类之间的区别的简称,它的存在是为了防止自动化,因此甚至不值得尝试。
在测试过程中,有两种主要策略可以解决CAPTCHA检查问题。如下:
- 在测试环境中禁用CAPTCHA。这可能是被测软件中的简单配置。或者甚至可以在测试的URL参数中配置;
- 添加一个挂钩,以允许测试绕过验证码。
02 外观测试
视觉自动化测试意味着检查页面如何呈现和呈现给最终用户。这对于检查多种设备和屏幕分辨率非常有价值。我们中的许多人试图通过使用代码检查单个页面上是否存在数十个甚至数百个元素来做到这一点。WebDriver不是正确的工具。
相反,最好使用专用的视觉测试工具。这是我以最受欢迎的屏幕分辨率测试网站的示例:
实现代码:
03 双因素认证
您不应该通过UI自动化的另一种情况是双因素身份验证(或2FA)。即使用“身份验证器”移动应用(例如Google Authenticator或Microsoft Authenticator)生成一次密码,并通过SMS或电子邮件发送一次密码的地方。
在Selenium中自动化它是一个巨大的挑战,但这并不意味着它无法完成。尽管可以自动化,但它是要添加的另一层,并不安全。因此,最好避免完全自动化。
解决2FA检查的三个选项如下:
在测试环境中为某些用户禁用2FA,因此您可以在自动化中使用这些用户凭据。
在测试环境中禁用2FA。
如果您从某些IP登录,请禁用2FA(通过这种方式,您可以配置测试计算机的IP来避免这种情况)。
04 文件下载
通过API自动执行文件下载不是理想的方法,因为API不会公开下载进度。下载文件不被视为模拟用户与Web平台交互的必要方面。
因此,您应该考虑完成此解决方法:
使用Selenium和任何必需的cookie查找链接,并将其传递给HTTP请求库,例如REST保证 (Java),fetch (JavaScript)或 libcurl (跨平台) 。
05 HTTP响应代码
HTTP状态代码是Internet上网站服务器给出的标准响应代码。当网页或其他资源无法正确加载时,这些代码有助于确定问题的原因。在自动化功能测试中,检查状态码不是测试失败的特别重要的细节;之前的步骤更为重要。
最好将API测试保留在这一层。WebDriver不是API测试工具。因此,您可以使用诸如 REST Assured(Java),fetch(JavaScript)和 RestSharp(.NET)之类的库。
06 Gmail、电子邮件和Facebook登录
您不应该通过UI自动化的另一种情况是Gmail,电子邮件和Facebook登录。不建议使用WebDriver登录这些类型的网站。这违反了使用条款,而且速度慢且不可靠。
一般而言,较长的测试更加脆弱且不可靠,这使您面临测试失败的风险。对超过20亿次测试的研究证实,持续时间超过2分钟的测试失败的可能性是原来的两倍。
相反,最好使用电子邮件提供商提供的API,或者对于Facebook,使用 公开显示用于创建测试帐户的API的开发人员工具服务(Gmail API在这里)。
使用API似乎有些额外的工作,但是您将获得速度,可靠性和稳定性的回报。API也不太可能更改。但是,网页和HTML定位器经常更改,并且需要您更新测试框架。
07 性能测试
通常不建议使用Selenium和WebDriver进行性能测试,因为它并未针对工作进行优化,因此您不太可能获得有价值的结果。WebDriver测试受到许多外部和内部脆弱性的影响,而这超出了您的控制范围。
其中包括浏览器的启动速度,HTTP服务器的速度,托管JavaScript或CSS的第三方服务器的响应以及WebDriver实现本身的检测损失等。它将导致结果变化。您将获得较慢的性能测试,其中包括后端和前端性能。
而是使用免费工具(例如 Google Lighthouse) 来提高前端性能。然后,使用免费工具(如Apache JMeter)执行单独的负载或压力测试 。
为了发现需要改进的地方,您需要能够独立于环境差异来分析总体性能,识别不良的代码实践并分解单个资源(即CSS或JavaScript)的性能。
08 链接爬虫
我不建议使用WebDriver进行链接爬虫,换句话说,通过链接来爬网。您可以做到,但是WebDriver绝对不是此任务的理想工具,因为它需要一些时间才能启动。这可能需要一分钟的时间,具体取决于测试的编写方式,只是要转到页面并遍历文档对象模型。
此外,编写遍历页面和捕获链接的逻辑只是浪费时间。
除了使用WebDriver,还有许多更简单的方法。可以搜索这两个免费工具:
- www.brokenlinkcheck.com,它在几分钟之内就找到了我网站上所有断开的链接。
- www.deadlinkchecker.com 。
09 视频流
如今,视频流越来越流行,但是您可能不想通过UI对其进行自动化。Selenium通常无法识别视频控件。JavaScript Executor和flex-ui-selenium可以在某种程度上起作用,但是它们并不完全可靠。
相反,请查看 StreamTest,它是一个免费工具,可以衡量最终用户的体验质量。您甚至可以添加监视。
10 崩溃恢复
恢复测试是一种软件测试技术,可验证软件从故障(例如软件和硬件崩溃)中恢复的能力。您可能要测试应用程序的崩溃恢复。最好手动测试。这并不是说您不能使用Selenium进行测试,但是这样做并不可行或无益。
对于可靠性测试,从开发的各个阶段(例如设计和操作阶段)收集数据。由于成本和时间等限制,测试受到限制。
11 总结
以上是您不应该通过UI自动化的十大场景。包括验证码测试、外观测试、双因素验证、视频、崩溃、链接爬虫、性能测试、文件下载、http状态码、电子邮件登录。
您可以在工作时参考它们,并尝试在开发,编码和测试时确定最佳的方法。
尽管在某些情况下有变通办法,但首先考虑为什么不应该自动化这些特定元素的原因。
下面是一份配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
这些都可以在公众号:伤心的辣条 ! 免费领取,还有一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中资料包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!
面试经:一线城市搬砖!又面软件测试岗,5000就知足了…
面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…
什么样的人适合从事软件测试工作?
那个准点下班的人,比我先升职了…
测试岗反复跳槽,跳着跳着就跳没了…
不宜使用Selenium自动化的10个测试场景相关推荐
- python测试管理平台_Python + flask+ selenium 自动化测试用例管理、执行平台
写在开篇 这个项目放到论坛之后,有很多热心的小伙伴试用,并且在github上面也点赞和 fork. 感谢各位的支持! 不过可能大家使用习惯的问题, 遇到有什么问题,或者看到我在下面的回帖里回复了 qq ...
- python 自动点击网页上按钮_python selenium自动化(一)点击页面链接测试
需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回到原始页面. 要完成这个需求就必须实现3点: 1. 找 ...
- Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景 在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...
- web python selenium自动化面试题_干货分享 | Selenium 自动化测试相关的面试题
网上收集到的一些有关Selenium自动化相关的面试,给出的答案仅供参考. 1.Selenium中用什么函数判断元素是否存在? isElementPresent 2.Selenium中hidden或者 ...
- selenium自动化案例(一)B站专栏爬虫
文章目录 写在前面 案例分析 代码实现 写在前面 前几天学习了selenium自动化以及CSS.Xpath元素定位,想着找个网站练练手,不用登录的B站就是个不错的选择,下面以B站的校园学习专栏为例进行 ...
- java+selenium自动化抓取51la数据
java+selenium自动化抓取51la数据 初衷 环境依赖 demo上代码 效果来个马赛克 如果觉得写的不错或者想了解更多,欢迎收藏和关注~~ 初衷 前端埋点51la,进行网站统计.51la没有 ...
- Datawhale第十二期组队学习--Python爬虫编程实践 Task03:session和cookie、代理、selenium自动化 拔高:丁香园留言板爬取
一. session和cookie 常用的 web 容器有 Nginx . Apache . Tomcat .Weblogic . Jboss . Resin 等等 http 1.0 HTTP1.0的 ...
- python+selenium自动化软件测试(第2章)
目录 2.1 操作元素基本方法 2.1.1 打开网页 2.1.2 设置休眠 2.1.3 页面刷新 2.1.4 页面切换 2.1.5 设置窗口大小 2.1.6 截屏 2.1.7 退出 2.1.8 加载浏 ...
- 目前记录♡最详细的一篇记录学习笔记 ---Python爬虫(18) selenium自动化安装和使用
一. selenium自动化介绍 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS ...
最新文章
- WPF Multi-Touch 开发:高级触屏操作(Manipulation)
- 设定网页最小最大宽度和高度(兼容IE6)
- Java建造圆判断是否在园内_java – 查找一个圆圈是否在另一个圆圈内
- 【整理】视图簇View cluster的创建
- 阿里云主机(aliyun-Linux) x64安装Redis详解
- IDEA 设置护眼色RGB值
- 880 芯片组 服务器 cpu,顶级双核处理器对决 皓龙880完胜至强
- 表格细线边款(HTML、CSS)
- PHP基础教程-54课-问题
- [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数
- 对称加密算法和非对称加密算法的区别
- 如何使用Arduino 舵机SG90
- 正规手游代理该怎么选?
- 浅谈软件测试测试策略几点总结内容
- 用笔记本做路由器共享4G流量
- Markdown插入网易云音乐播放模块
- 一、自动化测试——Airtest+Poco快速上手
- 远程桌面访问计算机的步骤,如何开启远程桌面连接功能
- HTML —— 语义化标签
- 海伦公式已知三边求面积