一、背景描述
对于实现UI自动化的原始手段,无非就是定位UI 元素进而实现自动控制,最大的工作量也是在定位元素中,即在路上还在路上,在偶然的一次突发奇想中,脑袋里在思考怎样能够使UI自动化变得简单,突然想到了场景录制回放,比如将某一个测试场景进行浏览器实操录制后,再进行场景回放,网上一查还真有,Selenium IDE插件可以实现,后面篇文便讲述:基于我的想法,结合网上工具在云测试环境进行实操。
二、工具描述
Selenium IDE实现为Firefox扩展,在测试脚本上提供记录和回放功能。 它允许测试人员以HTML,Java,Ruby,RSpec,Python, C# ,JUnit和TestNG等多种语言导出录制的脚本。 可以在Selenium RC或Webdriver中使用这些导出的脚本。
三、工具安装
1. 下载firefox火狐浏览器
2. 点击浏览器右上角下拉菜单按钮,点击扩展和主题
3.搜索框内搜索“selenium ide”
4.点击搜索结果第一个
5.点击添加到Firefox
6.安装完成后,扩展页面查看ide插件已存在并且已启用
四、使用方法
1. 运行插件
2.选择新建新的测试工程
3.输入测试环境url,点击开始录制
4.后面就是根据我们的需求,录制测试场景
5.录制完成,停止录制
6.执行回放当前测试/所有测试
五、遇到的问题
1.当UI元素id不是固定时,导致根据css获取到定位只能适应于当时的页面,回放脚本重新打开页面便找不到定位,可以选择xpath来定位
2.Selenium IDE的范围有限,生成的测试脚本不是非常健壮和可移植,因此不能完全依赖Selenium IDE录制脚本进行回放
六、最终方案
上述也说到,Selenium IDE录制的脚本并不是很稳健,并且对于一些复杂的检查判断不能做到,因此对于丰富复杂的云平台实现UI自动化而言,不能完全依赖其进行脚本录制回放。
一个UI自动化用例实现的大致步骤如下:
采集元素定位 -> 封装元素操作方法 -> 组合操作场景 -> 结合check方法 -> 形成一个测试场景/用例
采集元素定位就可以采用Selenium IDE进行定位,可以减少很多时间,元素封装方法也可以参照Selenium IDE录制脚本,所以最终的一个方案就是:基于selenium搭建UI自动化框架 + selenium ide采集元素定位和元素操作方法封装