引言web
要不要作页面测试自动化的争议由来已久,不作或少作的主要缘由是其成本过高,其中一个成本就是自动化脚本的编写和维护,那么有没有办法下降这种成本呢?童战同窗在其博文《界面自动化测试猜测》提到“将TC自动转化为自动测试脚本”的构想,你们都以为这个仍是颇有难度的,那么咱们退一步,“将功能测试执行的过程录制下来转化为自动化测试脚本”,这个难吗?或许不难,借用Selenium这个工具就能够实现。浏览器
Selenium简介架构
Selenium是ThoughtWorks公司开发的强大的web自动化测试工具。说它强大是由于:工具
# 测试直接在浏览器中运行,就像真实用户所作的同样,从终端用户的角度测试应用程序。测试
# 使浏览器兼容性测试自动化成为可能。spa
# 使用简单,可生成多种语言的用例脚本。插件
Selenium主要包含如下三个组件:3d
# Selenium IDE:一个Firefox插件,能够录制用户的基本操做,生成测试用例。随后能够运行这些测试用例在浏览器里回放,可将测试用例转换为其余语言的自动化脚本。blog
# Selenium Remote Control (RC) :支持多种平台(Windows,Linux,Solaris)和多种浏览器(IE,Firefox,Opera,Safari),能够用多种语言(Java,Ruby,Python,Perl,PHP,C#)编写测试用例。下面是其架构图:开发
# Selenium Grid :Selenium RC的扩展,将测试用例部署到多台Server,并行运行以加快速度节省时间。
Selenium试用
1. 安装Selenium IDE这个Firefox插件。安装后打开Firefox,从“工具”菜单选择“Selenium IDE”-打开Selenium IDE。以下图所示,红色的圆点控制脚本录制的开始和中止。
2. 执行功能测试用例并录制脚本。
我选择了一个比较简单的测试用例作为演示,该测试用例用于验证未经过实名认证的用户发布宝贝页面会出现实名认证提醒信息。主要步骤是:
1) 打开淘宝首页
2) 点击“我要卖”
3) 点击“一口价”
4) 出现登陆页面,输入用户名和密码登陆
5) 验证出现的页面包含如下信息“您须要先经过实名认证”。
在Firefox里执行上述步骤,前面4步的操做会被Selenium IDE忠实的记录下来,第5步验证怎么办?选中相应文字,点击鼠标右键,选择相应的命令,以下图所示(在Show All Available Commands里有更多的可用命令供选择):
录制完毕后的脚步以下图示,若是须要的话能够在这里进行一些编辑,一个很是有用的功能是在Target里输入页面元素的xpath,点击Find按钮,Selenium IED会在真实页面上用绿色框标注该元素。
3. 在Selenium IDE里运行测试脚本
运行可一次运行全部测试套件或单个用例,对用例的每一个步骤也可单步执行,执行过程有详细的log记录,以下图所示:
4. 测试用例转换为自动化脚本
只在Selenium IDE里运行是远远不能知足需求的,咱们须要为测试用例增长一些特性以使其能自动运行持续回归运行于不一样的浏览器上,而Selenium IDE能够方便实现用例转换为自动化脚本,并且支持多种语言,以下图所示:
Java自动化代码示例(注意在setUp方法里指定了浏览器):
Ruby自动化脚本示例:
小结
因为时间关系未对Selenium作深刻研究,对其是否适用咱们的web自动化测试不敢妄加断言,但经过简单试用以为其有不少可取之处,但愿熟悉web自动化测试的有志之士能结合当前现状,深刻探索实践,若能借鉴此下降自动化脚本编写维护成本,善莫大焉!