不宜使用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状态码、电子邮件登录。

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

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

 

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

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

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

相关文章

计算机毕业设计 | SpringBoot+vue 学生成绩课程管理 教务管理系统(附源码)

1,项目背景 教育需求增长 随着社会的发展,对于教育质量的要求也在不断提高。传统的手工操作和纸质记录已经不能满足现代教学的需求。因此,一个自动化、数字化的教务管理系统成为了必然的选择。 信息化趋势 现代科技的飞速发展使得信息化成为…

通过Dockerfile 安装rabbitMq

一、编写Dockerfile Dockerfile 指令详细注释如下: # 使用带有管理插件的官方 RabbitMQ 镜像作为基础 FROM rabbitmq:3.9-management# 复制自定义模板文件到 RabbitMQ 管理插件的模板目录 # 这里假设 ./users.ejs 和 ./limits.ejs 是用于自定义管理界面的模板文件…

七、InnoDB数据存储结构

文章目录 1. 数据库的存储结构:页1.1 磁盘与内存交互基本单位:页1.2 页结构概述1.3 页的大小1.4 页的上层结构2. 页的内部结构2.1 第1部分:File Header(文件头部)和 File Trailer(文件尾部)2.1.1 File Header(文件头部)2.1.2 File tRAILER(文件尾部)2.2 第2部分:Fr…

网络知识点之—EVPN

EVPN(Ethernet Virtual Private Network)是下一代全业务承载的VPN解决方案。EVPN统一了各种VPN业务的控制面,利用BGP扩展协议来传递二层或三层的可达性信息,实现了转发面和控制面的分离。 EVPN解决传统L2VPN的无法实现负载分担、…

【优选算法】--- 分治 快速排序

分治 快速排序 一、颜色分类 / 对快排的复习1、题目解析2、算法原理3、代码 二、排序数组(快排的方法)1、题目解析2、算法原理3、代码 三、数组中的第K个最大元素1、题目解析2、算法原理3、代码 四、库存管理 III(原:剑指 Offer .…

如何使用pymysql和psycopg2连接MySQL和PostgreSQL数据库

在现代软件开发中,数据库是存储和管理数据的核心组件。Python作为一种流行的编程语言,提供了多种方式来连接和操作数据库。在这篇文章中,我们将探讨如何使用pymysql和psycopg2这两个库来连接MySQL和PostgreSQL数据库。我们将从基础概念开始&a…

Khronos:动态环境下时空度量语义SLAM的统一方法

Khronos: A Unified Approach for Spatio-Temporal Metric-Semantic SLAM in Dynamic Environments 原文 项目 引言: 人类居住环境通常是高度动态的,人、机器人和其他实体不断移动、互动和改变场景。对于机器人在这种情况下的操作,仅仅建立一…

想要加密电脑?盘点2024年企业常用的10款电脑文件加密软件

在企业数据安全的时代背景下,文件加密已经成为保护企业核心信息、应对网络安全威胁的关键举措。无论是保护机密的商业数据,还是遵守数据隐私合规性要求,企业对文件加密软件的需求日益增长。本文将盘点2024年企业常用的10款电脑文件加密软件&a…

安卓如何实现双击触摸唤醒点亮屏幕功能-源码分析linage os高通平台

背景: 前面文章已经有讲解过双击亮屏在一些方案调研情况,刚好linage os手机本身也有这个功能,刚好也有整体开源源码,所以今天带大家来对双击亮屏的源码部分进行剖析,本篇文章会一直分析到hal操作驱动节点。 设置作为…

重学SpringBoot3-集成Redis(二)之注解驱动

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(二)之注解驱动 1. 为什么选择 Redis 作为缓存?2. 如何在 Spring Boot 中启用 Redis 缓存?2.1 …

华为OD七日集训第1期 - 按算法分类,由易到难,循序渐进,玩转OD(Python/JS/C/C++)

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训五、精心挑选21道高频100分经典题目,作为入门。第1天、逻辑分析第2天、数组第3天、双指针第4天、滑动窗口第5天、贪心算法第6天、二分查找第7天、分治递归 六、集训总结 大家好,我是哪吒。 最…

Qt程序打包(解决找到dll问题)

1、运行Qt程序找不到dll 在Qt Creator外,运行Qt编译的exe程序,常常出现找不到xxx.dll而无法运行的问题。 解决的办法之一是找到Qt安装目录下bin文件夹中的dll文件,将该路径添加到系统环境变量path中去。 第二种办法就是对Qt程序进行打包&…

来了,使用YOLOv11目标检测教程

来了,使用YOLOv11目标检测教程 概述 YOLO11 在 2024 年 9 月 27 日的 YOLO Vision 2024 活动中宣布:https://www.youtube.com/watch?vrfI5vOo3-_A。 YOLO11 是 Ultralytics YOLO 系列的最新版本,结合了尖端的准确性、速度和效率&#xff…

【LeetCode】动态规划—72. 编辑距离(附完整Python/C++代码)

动态规划—72. 编辑距离 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释 总结: 前言 编辑距离问题是字符串处理中的经…

threejs-模型贴图颜色与图片存在色差 问题解决方案

我使用的是obj模型,然后加载的话使用的是texturelLoader加载器,效果是这样的 使用的场景是:能够将图片贴到衣服上,并且能够移动旋转等操作贴图,但是这存在很明显的色差问题,具体的解决方案是: 我…

.Net Core 接口或网站发布到IIS

将.Net Core 接口或网站发布到IIS上,需要遵循一系列步骤来确保正确配置和部署。下面将以.NET Core 3.1的api接口发布示范: 一、环境准备 安装.NET Core 3.1 SDK和运行时: 在服务器上安装.NET Core 3.1 SDK(如果需要在服务器上编译…

LeetCode 48 Rotate Image 解题思路和python代码

题目: You are given an n x n 2D matrix representing an image, rotate the image by 90 degrees (clockwise). You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and …

桥水基金、贝莱德、摩根士丹利选择极狐GitLab 的五大理由!

疯狂上涨的 A股、港股 节前一周,上证指数累计上涨超 12%,创下2008年11月以来最大单周涨幅;深证成指累计上涨超17%,创下1996年4月最大单周涨幅;创业板指上涨超22%,创下史上最大单周涨幅。 过去两周&#x…

1688代采系统-反向海淘系统详细介绍

Onebound凡邦1688代采系统-反向海淘系统是一种专为海外买家及跨境电商提供一站式采购解决方案的平台。其核心功能和服务旨在解决跨境采购中的语言、货币等常见问题,并优化采购流程,提高采购效率。以下是对该系统的详细介绍。 一、核心功能 商品采集与展…

基于Java(Jsp+Sevlet)+MySql 实现的(Web)成绩管理系统

1 概述 1.1 开发背景 随着学生数量的日渐增多,学生教务系统的数据量也不断增加,这无疑大大增加了教务系统的负担。如果能把负责学生成绩管理的模块独立出来形成一个独立的系统,便可以有效降低教务系统的数据量,不仅可以方便管理…