vlambda博客
学习文章列表

还在为兼容性测试发愁?让我们用Python来轻松搞定吧

随着互联网的发展急速发展,浏览器的样式也层出不穷,这样测试前端功能的小伙伴的工作量就很大,需要测试前端功能在不同浏览器上面的页面展示效果,这样测试工程师的工作量也会增大,那么今天给大家讲一下如何用自动化来实现同时测试代码在不同浏览器上面的功能效果。想知道的请举起你可爱的小手手,哈哈。


在讲自动化驱动之前,首先给大家科普一下目前主流的浏览器及web兼容性测试中浏览器的选择。

目前主流的浏览器有:chrome、firefox、safari、IE edge、Opera等。其中IE edge ,Google浏览器 和firefox被称为现代浏览器,基本上页面测试都是要覆盖到的,但最终决定你必须要覆盖哪些浏览器,还是需要看一下自己公司的目标客户群体主要用的浏览器有哪些,然后把使用最多的浏览器都覆盖到,否则出现问题就会影响目标用户的体验。


我们接下来讲一下做到自动化驱动需要用到的技术点有哪些。

第一:自动化驱动就必须用到代码,我这边选择的是python语言


第二:代码驱动浏览器,就需要用到selenium,因为selenium是驱动web浏览器的主流工具,它可以跨语言使用,java,python都可以使用selenium这个工具。Python用selenium之前需要用pip install selenium进行下载。


第三:同时驱动多个浏览器是属于多任务,那么执行多任务就需要用多线程或者多进程去实现,我们这边选择用多线程来实现。多线程需要从threading模块导入Thread这个类,再进行后续操作。

多线程语法的讲解:

import threading

threading.Thread( target = function, args[, kwargs] )

参数说明:

· function - 线程函数的名字,需要用多线程执行的任务。

· args - 传递给线程函数的参数,他必须是个tuple类型。

· kwargs - 可选参数,同样是传递给线程函数的参数,他必须是个字典类型。

Thread类提供了以下方法:

· start():启动线程活动。

· join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。

· isAlive(): 返回线程是否活动的。

· getName(): 返回线程名。

· setName(): 设置线程名。


知识点科普完了,我们实现我们的需求把。


首先我们定义多线程要执行的任务。以下代码表示的是打开对应的浏览器,然后访问百度网址,定位输入框,输入码同学三个字,然后点击搜索,查看不同浏览器上面的页面效果。


还在为兼容性测试发愁?让我们用Python来轻松搞定吧


备注:driver = webdriver.Ie()/Firefox()/Chrome()实例化一个ie/firefox/chrome的driver对象,可以驱动对应的浏览器,解放双手,让代码代替人访问浏览器。

接下来用多线程驱动ie,firefox和chrome同时实现这个任务,代码如下:

还在为兼容性测试发愁?让我们用Python来轻松搞定吧 

运行的效果如下:

还在为兼容性测试发愁?让我们用Python来轻松搞定吧

还在为兼容性测试发愁?让我们用Python来轻松搞定吧

还在为兼容性测试发愁?让我们用Python来轻松搞定吧学习安排上!

码个资料送给你

学习资料:2022大厂最新面试题

扫码回复“000” 领取学习资料

上文内容不用于商业目的,如涉及知识产权问题,请权利人后台留言联系码同学小编,我们将立即处理。

不想错过就把我们设为星标吧!

“在看”点一点

懂得知足常乐😊

 👇👇👇