Selenium自动化测试技巧还不知道吗?

news2025/2/24 21:27:06

1、前言

与以前瀑布式开发模式不同,现在软件测试人员具有使用自动化工具执行测试用例套件的优势,而以前,测试人员习惯于通过测试脚本执行来完成测试。

但自动化测试的目的不是完全摆脱手动测试,而是最大程度地减少手动运行的测试。自动化测试使您可以快速测试多语言站点,还可以提高测试执行速度。

2、Selenium自动化

由于开源工具和应用程序的成本效益,效率,可重复性,准确性和易用性,它们变得越来越重要。Selenium是开放源代码工具之一,它在应用程序测试方面提供了开放源代码工具的所有优点。

Selenium是用于测试的一套Selenium工具。它包含Selenium IDE,Selenium RC,Selenium Webdriver和Selenium Grid。它用于自动化Web交互和回归测试,并具有记录和回放功能。此外还可以将记录的脚本导出为其他语言,包括Java,C#,Python,Ruby,Javascript和PHP。

3、跨浏览器测试中的Selenium

顾名思义,跨浏览器测试是一种用于在不同的Web浏览器和设备上测试Web应用程序以确保其在每个设备和浏览器上都能无缝运行的方法。

Selenium帮助在Safari,Google Chrome,Mozilla Firefox和IE中自动化测试案例。Selenium也可以同时在不同浏览器上的同一台计算机上执行测试用例。它还支持多种语言和操作系统。

让我们看一下Selenium的最佳实践,以在自动化测试过程中充分利用。

4、利用正确的定位器

Selenium框架的底部是与浏览器进行交互,从而可以使用文档**对象模型(DOM)**检查,输入和浏览多个对象。这是通过一组操作发生的,并使用了多个定位器,包括CSS选择器,name,Xpath,ID,标记名,链接文本和classname。

例如,当您不想在开发人员和测试人员不了解的情况下更改代码时,请使用Class和ID定位器。另一方面,当其他团队进行测试时,可以使用链接文本来动态处理情况。最后,可以采用XPath可用于定位。

5、数据驱动的测试

如果要为不同的输入使用相同的测试和相同的代码,则可以依赖Selenium。它将允许开发人员和质量检查团队进行修改,这意味着您可以将其用于系统功能测试以及浏览器兼容性测试。

Selenium还允许客户从其框架中受益。客户可以利用专有的测试加速器并启动测试自动化。这将减少自动化周期时间。有很多个函数库,可让客户端启动自动化过程。

6、不要依赖特定的驱动程序

永远不要依赖于一种特定的驱动程序实现。了解驱动程序在不同的浏览器中不是瞬时的。也就是说,不一定会有IE驱动程序、FireFox驱动程序等。

例如,在连续Linux构建过程中执行集成测试时,将收到RemoteDriver。您可以使用LabelledParameterized(JUnit具有,@RunWith 而TestNG为 @Parameters)在Selenium中快速创建小型框架。

和ScreenShotWatchMan(JUnit @Rule,TestNG TestListenerAdapter)。换句话说,使用参数注释来处理多种浏览器类型并准备好同时执行是不错的选择。

7、选择器顺序

选择选择器的顺序很重要,因为选择器(例如XPath和CSS)是基于位置的。与ID,name和链接文本相比,它们比较慢。name和ID是特别直接和直接的方式选择器。CSS通常是ID和Name的组合。相比之下,XPath应该是最后的解决方案。

健壮的解决方案如下所示: XPath <CSS <Links Text <Name <ID。这意味着以ID开头,并使XPath为最后一个选择器。在3个没有数据的表中,XPath识别第二个表的速度最慢,并且可能不会返回正确的表。因此,最后选择了XPath,它们很脆弱。CSS始终与名称和ID结合在一起。

8、使用PageObjects设计模式

PageObject已作为测试自动化中的最佳设计模式而获得普及。它提升了测试的可维护维护性,还减少了代码重复量。此外,它是一个面向对象的类,它充当被测应用程序页面的接口。为简化起见,PageObject是一种面向对象的设计模式,并且将网页定义为类。页面上的不同元素将成为变量。用户交互被用具体的方法实现。

  • 网页=类别
  • 页面上的各种元素=变量
  • 用户互动=方法
  • PageObject的优点
  • 通过较小的UI调整,它有助于建立一个健壮的框架。测试代码和页面代码是分开的。
  • 它们可靠且易于维护。
  • 该脚本是可读的。该代码是可重用的。
  • 几乎完全消除重复。

9、提倡wait避免sleep

利用wait代替sleep。了解显式和隐式等待,还有Thread.sleep()逻辑。然后,为什么wait等待而不是sleep。

  • wait

显式–等待某种情况发生,而无需继续编写代码。

隐式–指示WebDriver轮询DOM,直到完成对元素的搜索为止。默认情况下,时间设置为0。

  • sleep

Thread.sleep()无论工作页是否准备就绪,都会在括号内指定的秒数内等待。

10、关闭Firebug起始页

在启动firefox驱动程序时,可能已包含firebug。有时这可能导致无法工作正常。如果在启动浏览器时同时打开一个新的firebug选项卡使您感到烦恼,请按照以下提供的提示之一关闭firebug起始页。

  • 在showFirstRunPage标志中将False设置,如下。

 

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

 

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

 

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

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

相关文章

ROS话题通信基本操作(C++)

目录 一、发布 1、实现步骤 2、代码实例 二、接收 1、实现步骤 2、代码实例 三、配置运行 1、修改CMakeLists.txt 2、运行结果 一、发布 1、实现步骤 1.包含头文件 2.初始化 ROS 节点:命名(唯一) 3.实例化 ROS 句柄 4.实例化 发布者 对象 5.组织被发布的数据&#…

微信小程序云开发报错

微信小程序云开发报错 起因是云开发报了个错误&#xff1a; fail: Error: cloud.callFunction:fail Error: errCode: -501000 | errMsg: [100003] env not exists (f8c78dea-9f77-43cf-9e7f-88c85f2a0795) (callId: 1701747734223-0.895078767368265) (trace: 11:42:14 star…

基础课17——任务问答引擎

任务问答引擎在智能客服系统中负责多轮对话的对话流设计、意图的管理、任务流的执行等功能。能够高效地进行意图识别与任务解析&#xff0c;实现多轮对话的流程设计&#xff0c;并驱动多轮会话任务的高效完成。 1.定义 任务问答引擎负责多轮对话的对话流设计、意图的管理、任…

Shopee买家通系统全自动模拟真人下单更真实

Shopee买家通系统的强大功能在于它可以为用户提供全自动、高效的下单体验。通过设置关键词和产品编号&#xff0c;用户可以轻松实现对目标商品的准确定位。而整个下单流程一旦设定完毕&#xff0c;软件程序将以模拟真人的方式&#xff0c;执行一系列全自动化的操作&#xff0c;…

销售工作中如何满足客户的需求?

销售工作中如何满足客户的需求&#xff1f; 在销售工作中&#xff0c;如果想要满足客户需求&#xff0c;第一步是要搞清楚客户的需求是什么&#xff0c;不能仅仅听客户的表面需求&#xff0c;在表面需求下隐藏的潜在需求是什么&#xff0c;另外还有客户的核心需求是什么&#…

易点易动设备管理系统--提升设备保养效率的工具

设备保养是企业运营中至关重要的一环&#xff0c;为了帮助市场推广人员提升设备保养效率&#xff0c;易点易动设备管理系统应运而生。本文将详细介绍易点易动设备管理系统的功能和优势&#xff0c;以及如何借助该系统提高设备保养效率&#xff0c;提升企业运营效益。 易点易动设…

Windows文件后缀名批量修改方法教程

目录 文件后缀名批量修改方法教程 1、新建一个文件夹&#xff0c;把需要改后缀名的文件都移到里面。 2、从“查看”菜单中找到“文件扩展名”&#xff0c;点击前面的小方框勾选&#xff0c;查看文件的后缀名。 3、新建一个txt文本&#xff0c;然后在里面输入下图字符&#xf…

计算机视觉-01-基于SegNet和U-Net的遥感图像语义分割(包含代码和数据)

文章目录 0. 数据下载1、介绍1.1 任务介绍1.2 数据集介1.2.1 数据集介绍1.2.2 数据集处理步骤 1.3 数据处理1.4 卷积神经网络1.4.1 SegNet1.4.1.1 定义SegNet网络1.4.1.2 读入数据集1.4.1.3 定义训练过程1.4.1.4 预测遥感图像 1.4.2 U-Net网络1.4.2.1 定义U-Net网络1.4.2.2 读入…

全息图着色器插件:Hologram Shaders Pro for URP, HDRP Built-in

8个新的Unity全息图着色器,具有故障效果,扫描线,网格线,和更多其他效果!与所有渲染管线兼容。 软件包添加了一系列的全息图着色器到Unity。从基本的全息图与菲涅耳亮点,先进的全息图与两种故障效应,扫描线,文体点阵和网格线全息图! 特色全息效果 Basic-支持菲涅耳发光照…

计算机速成课Crash Course - 07. 中央处理器

今天开始计算机速成课Crash Course的系列讲解。 更多技术文章&#xff0c;全网首发公众号 “摸鱼IT” 锁定 -上午11点 - &#xff0c;感谢大家关注、转发、点赞&#xff01; 计算机速成课Crash Course - 07. 中央处理器 07. 中央处理器 提示下&#xff0c;这集可能是最难的一…

python之记录程序运行时长工具

python之记录程序运行时长工具 废话不多话&#xff0c;上代码 from datetime import datetime, timedelta import timestart_time datetime.now()while True:current_time datetime.now()elapsed_time current_time - start_timeformatted_time str(elapsed_time).split(…

QGIS之二十六pbf转osm转shp

效果 步骤 1、下载工具 用于转换osm.pbf–>.osm,当然也可以反过来,还支持其它格式互相转换 osmconvert64-0.8.8p.exe 链接:https://pan.baidu.com/s/1Mj-6b30f6voOkQI8QFh_rw 提取码:1111 2、国内各省下载OSM数据 http://download.openstreetmap.fr/extracts/asia/c…

AI入侵B站鬼畜区!网友辣评:不如传统“活字乱刷术”

11月27日&#xff0c;B站UP主“女孩为何穿短裙”突破传统&#xff0c;投稿一则使用AI合成语音制作的鬼畜视频&#xff0c;标志着AI视频制作正式进入B站鬼畜区。视频播放量截至目前已达167.3万&#xff0c;获得14.5万的点赞和2.8万个投币。 鬼畜视频一直以其独特之处引起关注&a…

vue el-select多选封装及使用

使用了Element UI库中的el-select和el-option组件来构建多选下拉框。同时&#xff0c;也包含了一个el-input组件用于过滤搜索选择项&#xff0c;以及el-checkbox-group和el-checkbox组件用于显示多选项。 创建组件index.vue (src/common-ui/selectMultiple/index.vue) <tem…

宝塔部署appache部署ssl证书无法访问443端口

原因&#xff1a; 不是部署方法错误&#xff0c;而是操作不当&#xff0c;原来一开始为了测试我去修改了appache默配置路径下的httpd-ssl.donf&#xff0c;此文件一般 在appche/conf/extra/目录下&#xff08;版本不同目录可能有所区别&#xff09;。 导致问题&#xff1a; 在…

java连接池 理解及解释(DBCP、druid、c3p0、HikariCP)

一、在Java开发中&#xff0c;有许多常见的数据库连接池可供选择。以下是一些常见的Java数据库连接池&#xff1a;不使用数据库连接池的特性&#xff1a; 优点&#xff1a;实现简单 缺点&#xff1a;网络 IO 较多数据库的负载较高响应时间较长及 QPS 较低应用频繁的创建连接和关…

高低压供配电智能监控系统

高低压供配电智能监控系统是一种综合运用物联网、云计算、大数据和人工智能等技术的智能化监控系统&#xff0c;用于实时监测高低压供配电设备的运行状态和电能质量&#xff0c;及时发现和处理供配电系统中存在的问题&#xff0c;提高供配电系统的安全性和可靠性。依托电易云-智…

漏洞复现--万户ezoffice wpsservlet任意文件上传

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

A股风格因子看板 (2023.12第1期)

该因子看板跟踪A股风格因子&#xff0c;该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子&#xff0c;用以分析市场风格切换、组合风格景 露组合等。 今日为该因子跟踪第1期&#xff0c;指数组合数据截止日2023-11-30&#xff0c;要点如下 近1年A股风格因子收…

如何理解方块电阻与宽度的关系(RPSQ_VS_SI_WIDTH)

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 来自星球提问: 解释如下: 单看方块电阻的公式&#xff0c;Rs&#xff1d;电阻率/厚度 在半导体制造过程中&#xff0c;由于工艺偏差&#xff0c;电阻跟金属线的density是相关的…