• 14
  • 14
分享

尽管在很多情况下测试自动化是有意义的,但一些测试场景是不应该使用自动化测试工具的,比如Selenium、WebDriver。

下面有10个示例,来解释为什么自动化在这种情况下使用时没有意义的,我还将为您提供每种方法的替代方法。

验证码

CAPTCHA是完全自动的公共的图灵测试,以区分计算机和人类之间的区别的简称,它的存在是为了防止自动化,因此甚至不值得尝试。

在测试过程中,有两种主要策略可以解决CAPTCHA检查问题。如下:

  • 在测试环境中禁用CAPTCHA。这可能是被测软件中的简单配置。或者甚至可以在测试的URL参数中配置;

  • 添加一个挂钩,以允许测试绕过验证码。

外观测试

视觉自动化测试意味着检查页面如何呈现和呈现给最终用户。这对于检查多种设备和屏幕分辨率非常有价值。我们中的许多人试图通过使用代码检查单个页面上是否存在数十个甚至数百个元素来做到这一点。WebDriver不是正确的工具。

相反,最好使用专用的视觉测试工具。这是我以最受欢迎的屏幕分辨率测试网站的示例:


7.png


实现代码:


8.png

双因素认证

您不应该通过UI自动化的另一种情况是双因素身份验证(或2FA)。即使用“身份验证器”移动应用(例如Google Authenticator或Microsoft Authenticator)生成一次密码,并通过SMS或电子邮件发送一次密码的地方。

在Selenium中自动化它是一个巨大的挑战,但这并不意味着它无法完成。尽管可以自动化,但它是要添加的另一层,并不安全。因此,最好避免完全自动化。

解决2FA检查的三个选项如下:

  • 在测试环境中为某些用户禁用2FA,因此您可以在自动化中使用这些用户凭据。

  • 在测试环境中禁用2FA。

  • 如果您从某些IP登录,请禁用2FA(通过这种方式,您可以配置测试计算机的IP来避免这种情况)。

文件下载

通过API自动执行文件下载不是理想的方法,因为API不会公开下载进度。下载文件不被视为模拟用户与Web平台交互的必要方面。

因此,您应该考虑完成此解决方法:

使用Selenium和任何必需的cookie查找链接,并将其传递给HTTP请求库,例如REST保证 (Java),fetch (JavaScript)或 libcurl (跨平台) 。

HTTP响应代码

HTTP状态代码是Internet上网站服务器给出的标准响应代码。当网页或其他资源无法正确加载时,这些代码有助于确定问题的原因。在自动化功能测试中,检查状态码不是测试失败的特别重要的细节;之前的步骤更为重要。

最好将API测试保留在这一层。WebDriver不是API测试工具。因此,您可以使用诸如 REST Assured(Java),fetch(JavaScript)和 RestSharp(.NET)之类的库。

Gmail、电子邮件和Facebook登录

您不应该通过UI自动化的另一种情况是Gmail,电子邮件和Facebook登录。不建议使用WebDriver登录这些类型的网站。这违反了使用条款,而且速度慢且不可靠。

一般而言,较长的测试更加脆弱且不可靠,这使您面临测试失败的风险。对超过20亿次测试的研究证实,持续时间超过2分钟的测试失败的可能性是原来的两倍。

相反,最好使用电子邮件提供商提供的API,或者对于Facebook,使用 公开显示用于创建测试帐户的API的开发人员工具服务(Gmail API在这里)。

使用API似乎有些额外的工作,但是您将获得速度,可靠性和稳定性的回报。API也不太可能更改。但是,网页和HTML定位器经常更改,并且需要您更新测试框架。

性能测试

通常不建议使用Selenium和WebDriver进行性能测试,因为它并未针对工作进行优化,因此您不太可能获得有价值的结果。WebDriver测试受到许多外部和内部脆弱性的影响,而这超出了您的控制范围。

其中包括浏览器的启动速度,HTTP服务器的速度,托管JavaScript或CSS的第三方服务器的响应以及WebDriver实现本身的检测损失等。它将导致结果变化。您将获得较慢的性能测试,其中包括后端和前端性能。

而是使用免费工具(例如 Google Lighthouse) 来提高前端性能。然后,使用免费工具(如Apache JMeter)执行单独的负载或压力测试 。

为了发现需要改进的地方,您需要能够独立于环境差异来分析总体性能,识别不良的代码实践并分解单个资源(即CSS或JavaScript)的性能。

链接爬虫

我不建议使用WebDriver进行链接爬虫,换句话说,通过链接来爬网。您可以做到,但是WebDriver绝对不是此任务的理想工具,因为它需要一些时间才能启动。这可能需要一分钟的时间,具体取决于测试的编写方式,只是要转到页面并遍历文档对象模型。

此外,编写遍历页面和捕获链接的逻辑只是浪费时间。

除了使用WebDriver,还有许多更简单的方法。可以搜索这两个免费工具:

  • www.brokenlinkcheck.com,它在几分钟之内就找到了我网站上所有断开的链接。

  • www.deadlinkchecker.com 。

视频流

如今,视频流越来越流行,但是您可能不想通过UI对其进行自动化。Selenium通常无法识别视频控件。JavaScript Executor和flex-ui-selenium可以在某种程度上起作用,但是它们并不完全可靠。

相反,请查看 StreamTest,它是一个免费工具,可以衡量最终用户的体验质量。您甚至可以添加监视。

崩溃恢复

恢复测试是一种软件测试技术,可验证软件从故障(例如软件和硬件崩溃)中恢复的能力。您可能要测试应用程序的崩溃恢复。最好手动测试。这并不是说您不能使用Selenium进行测试,但是这样做并不可行或无益。

对于可靠性测试,从开发的各个阶段(例如设计和操作阶段)收集数据。由于成本和时间等限制,测试受到限制。

总结

以上是您不应该通过UI自动化的十大场景。包括验证码测试、外观测试、双因素验证、视频、崩溃、链接爬虫、性能测试、文件下载、http状态码、电子邮件登录。

您可以在工作时参考它们,并尝试在开发,编码和测试时确定最佳的方法。

尽管在某些情况下有变通办法,但首先考虑为什么不应该自动化这些特定元素的原因。


原文链接:https://mp.weixin.qq.com/s/vmFWvfexUcQdXUUqBzviLQ

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、老师我想从手工测试到自动化测试,但网上资料多但乱,有点不知从何下手,想问下你有什么建议吗?用心,用心了就肯定不会乱,首先一定要设立目标,我要干什么,我要通过什么途径去达到这个目标,举个例子,自动化测试无非就是用一款自动化测试工具通过一门语言去达到自动测试一个软件/应用的工作,那么选一款市场份额最高的工具+一门最流行且易学的语言+一个能触手可得软件/应用练手+你的努力,就能达到你的目标。小建议:selenium+python/java+baidu/某论坛网站/某社交网站2、什么程度的自动化测试比较适合持续集成?smoke?还是基本机能测试?还是可以更深度的自动化测试?都可以,我司目前在跑的就...
            0 1 1732
            分享
          •   据报道,皮尤研究中心的一项调查显示,Twitter的用户们仍然在使用这个社交媒体平台,但自从去年年底埃隆·马斯克完成对该公司的收购后,在上面发帖的人正在变得越来越少。  当地时间周三,这份调查的作者表示:“研究中心对该网站用户实际行为的新分析发现,马斯克收购前最活跃的用户(按推文量排序为前20%的用户),在收购后的几个月里出现了明显的发帖量下降趋势。在收购完成之后,这些用户每月的平均推文数量下降了约25%。”  此外,调查显示,在过去一年中使用过Twitter的美国成年人中,约有60%的人表示他们最近已经中断了这项服务,四分之一的人表示他们一年后不会再使用Twitter。  新的数据凸显了...
            0 0 856
            分享
          •   EA 和 PopCap Studios 的《植物大战僵尸 3》公布了首个游戏预告片,并确定本作将于今年年内面向全球发布。  《植物大战僵尸 3》是一款由宝开游戏(PopCap Studios)开发的手机游戏,支持 iOS 和安卓平台,采用免费 + 内购方式,目前已在英国、荷兰、澳大利亚和菲律宾开启抢先体验。  本作采用分集式叙事方式,在初代游戏玩法的基础上融入了新的故事情节和解谜冒险元素,之前游戏中的许多植物都会回归,并且还会带来一些新植物。  查询发现,《植物大战僵尸》发布于 2009 年 5 月 5 日,后续又在 2013 年推出了其续作,后来又推出了多部衍生作,而本作则是继 2019...
            0 0 818
            分享
          •   作为一个工程师,你找工作的敲门砖是什么?是学历?是经验?还是年龄?  从事测试工程师的人员日趋增多,自然而然竞争也会变得激烈。如何让我们的工作履历变的更加精彩,除了我们实际的工作经验之外,能够直观我们技术的还有我们的职业证书,很多公司HR为了增加企业资质库、更快地筛查适合的人员,在招聘时会更倾向于拥有相关证书的应聘者。 今天我们就来盘点软件测试工程师领域含金量较高的几个证书吧! 软件测试工程师必须要了解的4个证书。  1.软件评测师  软件评测师考试(以下简称“软考”)是全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)的中级考试项目,它属于职业资格考试,又是职称资格考试,具有...
            1 1 11899
            分享
          •   一.人工智能的发展历史  人工智能诞生于上世纪40~50年代,按照“人工智能之父”艾伦·图灵的定义:如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有智能。1956年夏天,美国达特茅斯学院举行了历史上第一次人工智能研讨会,会上麦卡锡首次提出了“人工智能”这个概念,被认为是人工智能诞生的标志。人工智能在上世纪20世纪50~70年代迎来黄金时代,在1966年~1972年期间,美国斯坦福国际研究所研制出机器人Shakey,这是首台采用人工智能的移动机器人,1966年美国麻省理工学院(MIT)的魏泽鲍姆发布了世界上第一个聊天机器人ELIZA。ELIZA的智能...
            0 0 1182
            分享
      • 51testing软件测试圈微信