Selenium的这些自动化测试技巧你知道几个?

Selenium自动化测试技巧

与以前瀑布式开发模式不同,现在软件测试人员具有使用自动化工具执行测试用例套件的优势,而以前,测试人员习惯于通过测试脚本执行来完成测试。
但自动化测试的目的不是完全摆脱手动测试,而是最大程度地减少手动运行的测试。自动化测试使您可以快速测试多语言站点,还可以提高测试执行速度。

自动化测试的过程很简单,请参考:自动化测试生命周期。

Selenium自动化

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

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

跨浏览器测试中的Selenium

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

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

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

利用正确的定位器

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

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

不要依赖特定的驱动程序

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

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

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

数据驱动的测试

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

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

选择器顺序

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

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

使用PageObjects设计模式

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

网页=类别

页面上的各种元素=变量

用户互动=方法

PageObject的优点

通过较小的UI调整,它有助于建立一个健壮的框架。测试代码和页面代码是分开的。

它们可靠且易于维护。

该脚本是可读的。该代码是可重用的。

几乎完全消除重复。

提倡wait避免sleep

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

wait

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

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

sleep

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

关闭Firebug起始页

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

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu24.04(22.04+版本通用)Miniconda与Isaacgym

1. ubuntu24.04安装minicondda mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh解释下这段代码 bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3~/miniconda3/miniconda.sh: 指向Mi…

通信软件开发之业务知识:PON口割接什么意思?

一 PON口割接&#xff08;原创总结&#xff09; 在通信领域&#xff0c;PON口割接指的是对无源光网络&#xff08;Passive Optical Network&#xff0c;PON&#xff09;端口进行的切换或调整操作。简单来说&#xff0c;就是对光纤网络中的某个端口进行重新连接或重新分配&…

最近你悟出来什么道理?

点击上方△腾阳 关注 转载请联系授权 大家伙&#xff0c;我是腾阳。 活了近30年的我&#xff0c;终于领悟到&#xff0c;人生的旅途是一场深刻而复杂的自我发现与灵魂成长的壮丽征途。 这不仅仅是对外在世界的探索&#xff0c;更是内心深处的一场革命&#xff0c;是灵魂从懵…

11.x86游戏实战-汇编指令add sub inc dec

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;10.x86游戏实战-汇编指令lea 首先双击下图红框位置 然后在下图红框位置输入0 然…

G2.【C语言】EasyX绘制颜色窗口

1.窗口 窗口&#xff1a;宽度*高度&#xff08;单位都是像素&#xff09; #include <stdio.h> #include <easyx.h> int main() {initgraph(640, 480);getchar();return 0; } 640是宽&#xff0c;480是高 2.操作窗口的三个按钮 #include <stdio.h> #incl…

数据库7.4

第二次作业 1.登陆数据库 2.创建数据库zoo 3.修改数据库zoo字符集为gbk 4.选择当前数据库为zoo 5.查看创建数据库zoo信息 6.删除数据库zoo C:\Windows\System32>mysql -uroot -p20040830Nmx mysql> create database zoo; alter database zoo character set gbk; mys…

基于Python爬虫的城市二手房数据分析可视化

基于Python爬虫的城市二手房数据分析可视化 一、前言二、数据采集(爬虫,附完整代码)三、数据可视化(附完整代码)3.1 房源面积-总价散点图3.2 各行政区均价3.3 均价最高的10个小区3.4 均价最高的10个地段3.5 户型分布3.6 词云图四、如何更换城市一、前言 二手房具有价格普…

茗鹤 | 如何借助APS高级计划排程系统提高汽车整车制造的效率

在我们做了详尽的市场调研及头部汽车制造企业排程需求沟通后&#xff0c;我们发现尽管企业有很多的业务系统做支撑&#xff0c;在计划排程领域&#xff0c;所有的汽车制造总装厂仍旧使用人工“Excel”做排产规划&#xff0c;其中少部分也会借助MRP、第三方辅助排产工具。鉴于我…

Python题解Leetcode Hot100之二叉树

1. 二叉树的中序遍历 题目描述 给定一个二叉树&#xff0c;返回它的中序遍历。解题思路 使用递归的方法对左子树进行中序遍历&#xff0c;然后访问根节点&#xff0c;最后对右子树进行中序遍历。也可以使用栈来模拟递归的过程&#xff0c;迭代地进行中序遍历。代码class Solut…

Leica Cyclone 3DR2024 一款功能强大的点云建模软件下载License获取

Leica Cyclone 3DR 2024 是一款功能强大的点云建模软件&#xff0c;使用旨在为用户提供全面的点云管理、自动化的点云分析&#xff0c;结合强大的建模&#xff0c;在一个直观友好的环境中&#xff0c;专注的完成挑战&#xff0c;提高生产力&#xff0c;轻松创建并交付专业的成果…

c++:struct和class的区别

C和C中struct的区别 (1)C中不支持成员函数&#xff08;只能通过函数指针成员变量间接支持&#xff09;&#xff0c;而C源生支持。 (2)C中不支持static成员&#xff0c;而C中支持。后面会详细讲&#xff0c;C static class是一个大知识点 (3)访问权限&#xff0c;C中默认public…

HTML5使用<mark>标签:高亮显示文本

1、<mark>标签的使用 mark 标签用于表示页面中需要突出显示或高亮的一段文本&#xff0c;这段文本对于当前用户具有参考作用。它通常在引用原文以引起读者注意时使用。<mark>标签的作用相当于使用一支荧光笔在打印的纸张上标出一些文字。它与强调不同&#xff0c;…

聊天广场(Vue+WebSocket+SpringBoot)

由于心血来潮想要做个聊天室项目 &#xff0c;但是仔细找了一下相关教程&#xff0c;却发现这么多的WebSocket教程里面&#xff0c;很多都没有介绍详细&#xff0c;代码都有所残缺&#xff0c;所以这次带来一个比较完整得使用WebSocket的项目。 目录 一、效果展示 二、准备工…

手写实现一个ORM框架

手写实现一个ORM框架 什么是ORM框架、ORM框架的作用效果演示框架设计代码细节SqlBuilderSqlExecutorStatementHandlerParameterHandlerResultSetHandler逆序生成实体类 大家好&#xff0c;本人最近写了一个ORM框架&#xff0c;想在这里分享给大家&#xff0c;让大家来学习学习。…

C++ 多态篇

文章目录 1. 多态的概念和实现1.1 概念1.2 实现1.2.1 协变1.2.2 析构函数1.2.3 子类虚函数不加virtual 2. C11 final和override3.1 final3.2 override 3. 函数重载、重写与隐藏4. 多态的原理5. 抽象类6.单继承和多继承的虚表6.1 单继承6.2 多继承 7. 菱形继承的虚表(了解)7.1 菱…

I/O多路复用

参考面试官&#xff1a;简单说一下阻塞IO、非阻塞IO、IO复用的区别 &#xff1f;_unix环境编程 阻塞io和非阻塞io-CSDN博客 同步阻塞(BIO) BIO 以流的方式处理数据 应用程序发起一个系统调用&#xff08;recvform&#xff09;&#xff0c;这个时候应用程序会一直阻塞下去&am…

Interview preparation--Https 工作流程

HTTP 传输的弊端 如上图&#xff0c;Http进行数据传输的时候是明文传输&#xff0c;导致任何人都有可能截获信息&#xff0c;篡改信息如果此时黑客冒充服务器&#xff0c;或者黑客窃取信息&#xff0c;则其可以返回任意信息给客户端&#xff0c;而且不被客户端察觉&#xff0c;…

2、图形验证码

1、图形验证码设计 1.1思路 现今&#xff0c;市面上的图形验证码付费的&#xff0c;免费的多种多样&#xff0c;主要形式有滑动拼图、文字点选、语序点选、字体识别、空间推理、智能随机等。 而处理也分为web端和sever端两部分 此处以免费的kaptcha 为例&#xff0c;进行数字图…

认识流式处理框架Apache Flink

目录 一、Apache Flink 的基础概念 1.1 Apache Flink是什么&#xff1f; 1.2 Flink的定义 二、Apache Flink 的发展史 2.1 Flink前身Stratosphere 2.2 Flink发展时间线及重大变更 三、Flink核心特性 3.1 批流一体化 3.2 同时支持高吞吐、低延迟、高性能 3.3 支持事件时…

全新UI自助图文打印系统小程序源码 PHP后端 附教程

最新自助图文打印系统和证件照云打印小程序源码PHP后端&#xff0c;为用户用户自助打印的服务&#xff0c;包括但不限于文档、图片、表格等多种格式的文件。此外&#xff0c;它们还提供了诸如美颜、换装、文档打印等功能&#xff0c;以及后台管理系统&#xff0c;方便管理员对打…