奇技指南
web端UI自动化测试由于维护工作量大,被测试开发人员吐槽颇多,但通过合理的配置需求,以及隔离定位、查找、操作的设计思想,可减小维护工作量。今天给大家分享一下我在Web端UI自动化测试环境搭建中的体验,希望可以帮到一部分同行。
本文转载自Qtest之道。
背景介绍
发展多年,web端UI自动化测试由于维护工作量大,被测试开发人员吐槽颇多,但通过合理的配置需求,以及隔离定位、查找、操作的设计思想(具体可参考之前的推文哦),可减小维护工作量。UI自动化测试模拟真实用户操作,仍有其价值。基于浏览器的UI自动化测试,环境搭建是一个繁杂的过程,在此给大家叙述下我的体验,希望可以帮到一部分同行。
另外,当页面功能庞大,测试用例数量成百上千时,常用的单进程执行测试花费时间太长,我们该怎么处理呢?这时候,多进程并发是一个选择。多窗口方式由于难操作,不可取。可以采用多浏览器方式,每个浏览器进程执行无交集的模块测试,相互之间数据不依赖
搭建过程
在centos7.1测试服务器上,python+selenium+chrome环境搭建基础内容包括:
安装图形化桌面
$ yum groupinstall "GNOME Desktop"
安装vnc服务
安装vnc服务器,修改配置文件,启动vnc并设置开机自启动,以便重启后vnc也一直在线,不给咱掉链子
$ yum install tigervnc-server
$cp/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
$ cd /etc/systemd/system
$ vim vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=autotestuser
ExecStart=/usr/bin/vncserver :1 -geometry 1280x1024 -depth 16 -securitytypes=none
-fp /usr/share/X11/fonts/misc
ExecStop=/usr/bin/vncserver -kill :1
[Install]
WantedBy=multi-user.target
“-geometry 1280x1024”必须加上,否则页面展示有缺失,无法点击。
$ systemctl enable vncserver@:1.service
$ systemctl start vncserver@:1.service
$ netstat -lntp | grep vnc
本地安装vnc client,如VNC Viewer,连接服务器验证图形化界面正常。
安装稳定版chrome浏览器
安装稳定版chrome浏览器(需提前配置google-chrome的源,否则找不到rpm包)
$ yum install google-chrome-stable
安装Python第三方库管理工具pip
$ yum install python2-pip
安装selenium
$ pip install -U selenium
安装chromedriver
https://sites.google.com/a/chromium.org/chromedriver/home 下载chromedriver , 配置在PATH路径或者在脚本中指定路径。这里需要注意chromedriver与google-chrome版本一致性,过高版本的chromedriver不支持太低版本的chrome浏览器。
以上都是基础环境搭建,在自动化测试开发中,我们可以根据用例需要部署相应的环境,如Paramiko,requests等。
在开发奇云UI自动化测试时,由于产品布局问题,全部用例执行一遍时间太长,引入了并发测试方法。由于selenium工具依赖于webdriver,import时单独置于模块文件中。使每个进程独立调用webdriver,每个进程单独控制一个浏览器进程,隔离后续页面操作。
如何多进程执行测试?多进程执行任务是一种常用的方法,这里安利下python中非常好用的多进程包multiprocessing,开发者只需要定义一个函数,借助这个包,可以轻松完成并发执行。下图中pool.map中的第一个参数即为开发人员自定义的函数,函数内启动单个浏览器执行一个用例集测试,第二个参数即定义为用例集名称列表。
最后来看下360奇云项目中UI自动化并发执行的效果图吧,同时三个浏览器执行不同模块的测试,大大缩减了回归测试时长。
界世的你当不
只作你的肩膀
无
360官方技术公众号
技术干货|一手资讯|精彩活动
空·