每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试,领取资料可加:magetest
码同学抖音号:小码哥聊软件测试
随着互联网的发展急速发展,浏览器的样式也层出不穷,这样测试前端功能的小伙伴的工作量就很大,需要测试前端功能在不同浏览器上面的页面展示效果,这样测试工程师的工作量也会增大,那么今天给大家讲一下如何用自动化来实现同时测试代码在不同浏览器上面的功能效果。想知道的请举起你可爱的小手手,哈哈。
在讲自动化驱动之前,首先给大家科普一下目前主流的浏览器及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(): 设置线程名。
知识点科普完了,我们实现我们的需求把。
首先我们定义多线程要执行的任务。以下代码表示的是打开对应的浏览器,然后访问百度网址,定位输入框,输入码同学三个字,然后点击搜索,查看不同浏览器上面的页面效果。
免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:magetest
备注:driver = webdriver.Ie()/Firefox()/Chrome()实例化一个ie/firefox/chrome的driver对象,可以驱动对应的浏览器,解放双手,让代码代替人访问浏览器。
接下来用多线程驱动ie,firefox和chrome同时实现这个任务,代码如下:
运行的效果如下:
免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:magetest/关注码同学公众号:自动化软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/275153.html