一文3000字从0到1使用Selenium进行自动化测试

对于很多刚入门的测试新手来说,大家都将自动化测试作为自己职业发展的一个主要阶段。可是,在成为一名合格的自动化测试工程师之前,我们不仅要掌握相应的理论知识,还要进行大量的实践,积累足够的经验,以便快速适应工作需求。

今天,笔者就想给大家介绍一些,关于使用Selenium进行自动化测试的实战案例经验。希望对测试新手们有所帮助。

1、测试自动化与Selenium工具

首先,我们要先澄清一个观点,自动化测试不可能完全取代手动测试。换句话说,就是自动化测试是为了减少手动运行测试用例数,帮助快速测试多语言站点,提高测试执行速度;是为了节省手动测试带来的时间成本、计算准确性成本等,而不是为了完全摆脱手动测试。因此,希望测试新手们对此有一个清晰的认知。

事实上,自动化测试的过程很简单,你只需要执行以下步骤:

下面,切回正题。自2000年以来,基于开源工具和应用程序的成本效益、效率、可重复性、准确性和易用性越来越被大家接受和喜爱,因此,使用开源工具进行自动化测试就变得越来越重要。而作为开放源代码工具之一,Selenium工具(简称Selenium)在自动化测试方面,展现了自己的极大优势。

Selenium包含IDE、RC、Webdriver和Grid等组件,主要用于WEB交互和回归测试。它除了具有记录和回放功能外,还能帮助我们将记录的脚本导出为其他语言,包括Java,C#,Python,Ruby,Javascript和PHP等。

除此以外,Selenium web driver还允许我们通过其封装好的API进行自动化脚本开发,更好地辅助回归测试,通过数据驱动DDT,关键字驱动,PO等设计模式的结合应用,可以让我们的自动化脚本更具可靠性,可维护性,及延展性

2、使用Selenium进行跨浏览器测试

顾名思义,跨浏览器测试就是在不同的Web浏览器和设备上,测试Web应用程序是否能够正常使用,以确保其在每个设备和浏览器上都能正常运行的一种测试。

那么,我们为什么需要跨浏览器测试呢?例如,同一个电商页面,在Chrome浏览器中能够正常显示,且操作流畅但并不能确保在同一台机器上IE(通常有不同版本),火狐等浏览器上也能正常显示且操作顺利。这也是为什么产生跨浏览器测试的由来。

如今,跨浏览器测试已成为Web应用程序测试的必需项。Selenium可以帮助我们在同一台计算机上,执行包括Safari、Chrome、Firefox、IE等不同浏览器的测试用例。并且,它还支持多种语言和操作系统。

3、使用Selenium进行测试的一些技巧分享

1)便捷好用的定位器

Selenium web driver中封装的API给我们提供了8中定位页面元素的方式:通过id或name定位,通过class name或tag name定位,通过link text和partial link text定位,xpath定位,CSS定位;同时还提供了模拟页面元素操作方法,键盘操作,JS事件处理等一些方法,来满足与浏览器交互的功能。

2)可利用数据驱动做测试

Selenium还具备其他优秀特质。比如,如果要为不同的输入使用相同的测试和相同的代码,那么,选它就对了。Selenium允许开发人员和质量检查团队进行修改,因为它可以用于系统功能测试,以及浏览器兼容性测试。

另外,Selenium还有测试加速器,可以启动客户端自动化测试。这可以大大缩减你的回归测试周期,为你节约时间。

3)不依赖特定的驱动程序

永远不要依赖于某一种特定的驱动程序,去做自动化测试。因为,不同的浏览器版本针对的驱动程序都是1-1对应的,举个例子,不存在这样的万能驱动程序,可以兼容各个版本各个厂商提供的浏览器。

另外,还可能发生不存在某种驱动程序的可能。比如,并非每一个chrome版本都有与之能对应上的驱动程序,这样就需要对被测浏览器进行范围上的指定,有针对性地选择当前项目中必须测试的那些浏览器等。

4)使用Page Objects

时下,Page Object已成为了测试自动化中的最佳设计模式。因为它不仅能增强测试维护能力,还能减少代码重复。此外,它还是一个面向对象的类(OOC),可以充当被测应用程序页面的接口。

简言之,Page Object是一种面向对象的设计模式,它重新定义了一些内容。如下:网页=类别;页面上的各种元素=变量;用户互动=方法。

因此,它具备以下优点:

由于测试代码和页面代码是分开的。因此,Page Object可以抵制微小的调调整,有助于我们构建更稳固的代码框架。

服务不会通过测试分散,但是该页面提供的所有服务都有一个存储库。

可靠且易于维护。

脚本是可读的,且代码是可重用的,还可以完全消除重复部分。

5)可利用等待代替睡眠,提升测试效率

Selenium具备Thread.sleep()逻辑,可以利用等待代替睡眠,从而提升测试效率。因为,我们都知道,睡眠不仅会减慢测试速度,并且,我们很难确定它什么时候执行完毕;而等待则不同,它能帮我们判断等待时长,并保证测试速度,从而提升我们的测试效率。

Selenium为我们提供了两类常用的等待模式:显示等待和隐式等待,分别用于不同的场景下,两者也可以搭配着使用,从而更好地辅助自动化测试。

6)当时间紧迫时,不要害怕破解Selenium

在工作中,有时候我们会遇到时间比较紧急,但工作量又比较大的情况。这种时候,我们要学会灵活应对。关键时刻,你可以通过入侵Selenium Webdriver,来制作有效的自动化脚本。下面给大家介绍两个快捷技巧。

(划重点啦!!)

技巧1:Test NG报告--屏幕快照链接

使用以下代码,来链接到Test NG报告的屏幕截图。这可以让你快速获取捕获屏幕截图的超链接:reporte.data("<: a href="+"E:\\ screenshot \\"+ screenshot_timestamp+".png"+">:")Click to open

技巧2:检查Web元素的存在

使用下面这串代码,你将可以快速检查Web对象的代码大小并确定特定Web元素的存在:Driver.findElements(pass.ID("元素-ID")).size()!=0

写在最后

实际工作中,Selenium还具备很多实用的功能。如果你能充分利用Selenium,就可以创建一个稳定、真实和可靠的UI自动化流程。当然,前提是你得积累Selenium的各种使用技巧,并经常应用他们。

今天的分享就到此结束了,如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

相关推荐
se-tester6 天前
JMeter、Postman 和 SoapUI 在做接口测试上的优势和缺点
测试工具·jmeter·接口测试·postman·soapui
xixi09246 天前
selenium IDE——command
selenium·测试工具
xixi09246 天前
selenium IDE安装使用教程
ide·selenium·测试工具
纳米软件7 天前
在使用LabVIEW时,遇到以下问题该如何解决?
自动化测试·labview·自动化测试平台
Wpa.wk7 天前
har文件转为接口自动化测试用例
运维·测试工具·自动化·测试用例·接口自动化
Wpa.wk7 天前
ubuntu22桌面版安装
经验分享·测试工具
uyeonashi7 天前
自动化测试问卷考试系统测试报告
功能测试·selenium·github
007张三丰7 天前
软件测试专栏(6/20):Selenium从0到1实战指南:元素定位、等待机制与框架封装
selenium·测试工具
测试老哥7 天前
如何使用Postman做接口测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman