前言

Selenium4自动化测试:https://www.bilibili.com/video/BV1MS4y1W79K/

现在企业常用的web自动化测试框架架构:
Python+selenium4+pytest+POM+allure+Jenkins;

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

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

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

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

selenium自动化测试小技巧

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

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

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

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

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

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

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

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

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

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

网页=类别;
页面上的各种元素=变量;
用户互动=方法;

PageObject的优点
通过较小的UI调整,它有助于建立一个健壮的框架。测试代码和页面代码是分开的。它们可靠且易于维护。该脚本是可读的。该代码是可重用的。几乎完全消除重复。

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

wait
显式–等待某种情况发生,而无需继续编写代码。
隐式–指示WebDriver轮询DOM,直到完成对元素的搜索为止。默认情况下,时间设置为0。

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

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

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

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("extensions.firebug.showFirstRunPage", false);

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要心中有梦想,就不要停止追求;只要肯努力奋斗,就没有克服不了的困难;只要保持坚定信念,就一定能够创造属于自己的辉煌人生。

只有勇往直前,才能在人生的道路上迎来更美好的明天。每一步都是磨练自己的机会,不要害怕失败,因为成功就在你不断尝试的下一步。让激情驱动你的梦想,坚持努力奋斗,期待未来的辉煌!

每一天都是一个机会,不要浪费。即使你遇到困难,也要保持坚毅和勇气。相信自己的潜力,不要放弃追求美好生活的愿望。只有努力奋斗,才能实现自己的梦想!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐