背景:
之前有做过android和ios的UI自动化,工作原因web ui自动化没怎么实践过,但ui自动化大致框架都是类似的,这两天抽空把我们的后台实现了ui自动化,不用每次重构和发布前都手工去过主路径啦。
一、框架选型
预研了几款web UI自动化框架,其中selenium凭借它的几点优势让我直接选择了它。
首先,selenium与我做android和ios UI自动化时选择的appium框架类似,写用例无缝衔接直接上手就好,没有学习成本;
其次,依赖的环境简单,没有appium那么多的包要装;
第三,selenium虽然与之配套的浏览器和工具最新的更新没那么及时,但旧版本的支持都是现有可用的,特别是selenium IDE支持录制,firefox还有firebug插件可以右键直接获取xpath,特别省时省力,于是就这么愉快的决定啦,玩得飞起~~~
二、环境安装
1、python2.7 mac 自带,不用装,要装的小伙伴自行百度,so easy ~
2、selenium
由于selenium IDE在新版本firefox上并不支持,没有录制功能写起来还是挺费神的,我保守的都选择旧版本。
如果已经安装了selenium3,需要先卸载;
查看selenium版本命令:pip show selenium;
卸载selenium命令:sudo pip uninstall selenium。
selenium用命令行sudo pip install selenium==2.53.6安装时,由于被墙了,选择下载安装包自行安装,步骤如下:
a.下载安装包selenium-2.53.6.tar.gz;
b.将安装包放到python2.7的site-packages目录下,解压,我的目录是/Library/Python/2.7/site-packages/;
c.cd到上一步解压后的selenium目录下,python setup.py install,安装完成,查看版本号确认安装成功。
3、下载安装firefox 40.0版本;
4、下载selenium_ide-2.9.1-fx.xpi,拖到firefox里面安装好后,firefox右上角多出selenium IDE插件入口;
5、下载firebug-2.0.16-fx.xpi,拖到firefox里面安装好后,firefox右上角多出firebug插件入口;
至此,环境安装完成。
三、录制自动化脚本
点击firefox右上角selenium IDE插件图标,进入selenium IDE主界面;
1、在下图序号1红框中,输入你要测试的web url;
2、在下图序号2红框中,调节你要执行用例的速度,一般建议调到中间;
3、在下图序号3红框中,点击录制按钮开始录制;
4、在下图序号4红框中,对录制结果进行调节,可以增删改事件、参数;
5、在下图序号3红框中,点击停止录制按钮停止录制;
6、在下图序号5红框中,点击按钮开始执行用例;
7、可以在菜单中选择文件——export test case as——python 2/unittest/web driver,将脚本导出为python,本地编辑直接脚本调用。
四、优化脚本
上步中最后导出的脚本,只包含了操作,没有包含断言结果判断,也缺少容错,想要持续集成自动生成结果,还需要自己按需补充。
五、jenkins持续集成
新建一个Jenkins任务,调用python命令执行脚本即可。
六、输出报告
偷懒直接用了之前做app UI自动化的报告模板HTMLTestRunner.py,这个文件网上到处都能下载,简书我还不会上传文件,就不贴了,贴下测试脚本中需要添加的内容:
import HTMLTestRunner
testunit = unittest.TestSuite()
# 将测试用例加入到测试容器中
testunit.addTest(webuitest("testcaseabc"))
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='test result', description=u'result:')
runner.run(testunit)
生成的报告挺简单明了,可以自己加log。
————————————
最近深入看selenium的书籍,了解到有selenium grid工具可以实现同一时间不同机器同时执行用例,感觉值得学习,mark下
网友评论