一个30人的应用开发团队,需要多少测试人员配合呢?我想大概需要20人吧。当20人都需要重复一类测试问题时,这显然是对人力成本的浪费。黑盒测试人员一般会有几个环节:标准测试,系统测试,主功能测试,回归测试。这其中回归测试和主功能测试都是可以安排到自动化测试中的。那么如何搭建一套相对可靠的自动化测试框架呢?首先需要选型。在网上看了看selenium,已经推出很多年了。稳定易用,就选择用他了。
首先要明确几个下文中需要用到的软件
1、junit下载地址: https://github.com/KentBeck/junit/downloads,我下载的版本:junit4.11-SNAPSHOT-20120805-1225.zip
2、Selenium下载地址: http://seleniumhq.org/download/,RC Server下载的版本:Download version 2.25.0
3、jdk,这个网上有很多。找适合自己系统的版本。
序、什么是Selenium?
ThoughtWorks公司开发的web自动化测试工具.
其主要实现如下三个功能:
# 测试直接在浏览器中运行,就像真实用户所做的一样,从终端用户的角度测试应用程序。
# 使浏览器兼容性测试自动化成为可能。
# 使用简单,可生成多种语言的用例脚本。
一、Selenium IDE。
这个是集成在firebug中的一个插件。可以用来录制用户对浏览器的操作行为。安装方式也非常简单,在我之前提供的地址中下载安装即可。这里要说明的是下载的是一个.xpi文件。使用方式也是按照firefox的开发插件来使用的。
Selenium IDE只是辅助开发者生成测试代码的工具,由于他只能在firefox上使用。我推荐开发者可以使用该工具录制一些常用行为,如登陆,发布等功能。将生成的代码进行修改和调试在保存在测试脚本中,这样可以一定限度上的节省开发脚本的时间。毕竟,自己去找页面节点是很费时间的。
我在体验selenium时,使用的语言是java,因此我将IDE生成的代码保存为了junit4版本。
二、Selenium RC。
测试过程中,我本地的操作系统是win7 x64版本。在本地先安装了jdk 1.6。在确认在运行窗口输入java -version都可以显示如下图,证明你安装成功了。
接下来我们需要启动selenium server。在命令行中输入:java -jar selenium-server-standalone-2.25.0.jar,就可以看到负责接收测试数据的server在本地启动了。为了方便我们今后使用。我新建了一个批处理文件。编辑start.bat,并在文本中输入java -jar selenium-server-standalone-2.25.0.jar -interactive。以后每次只要双击这个批处理文件,就可以启动了。要注意的是,同时智能保证一个进程。启动效果如下:
三、构建测试脚本。
鉴于自己是微博员工,就决定先做一个测试case,完成“自动登录”、“发微博”两个功能。
1、创建一个java项目,包名称pkgTest,文件名ClsPublishFeed2.php
2、需要在project中鼠标右键BuildPath->Configuare Build Path,添加两个jar文件。添加这两个库后,测试脚本中的错误消息会消失。
3、调试脚本。
下图中标注了测试脚本一些需要注意修改的选项。目前我的selenium是跑在localhost的,默认端口是4444。如果有专属的测试服务器,将此内容调整后,就可以远程获取测试信息了。
下图的两行命令即可完成发送微博。程序代码可以很直观的对应到我们鼠标真实点击的行为,即先获取要点击的位置,然后对点击后的节点进行输入,或者进行点击。很简单,很方便。
四、运行脚本。
点击Debug As -> Junit Test后,会自动启动IE窗口。并完成登录和发微博,并且还完成了一次收藏操作。
需要注意的是,实际上我页面中这次提交并没有成功,因为触发了微博主站的某些限制规则,但从selenium server中并没有看到发布不成功的问题。这就要再后面的研究中多考虑断言assertRule的使用了,当出现不同返回值时,都能够自动做相应操作,这样才能做到真正的自动化测试。
总结:
这篇是对selenium初步体验的一个总结帖,其中安装的一些细节没有详细的写出来,相关文章参考地址:
http://wenku.baidu.com/view/6641fd0f844769eae009ed93.html
http://wenku.baidu.com/view/c808bbd2b14e852458fb57e5.html
后期会继续升入selenium的一些主要功能,并结合测试case写一些自动化测试的脚本。希望开发完毕后,工程师可以自己先完成自己的自动化测试。试想一下,抽科烟的功夫,回来一看结果全部测试通过,应该是很爽的一件事^_^
最后一句:
从我本机测试的效果看,selenium打开firefox的速度要远远慢于IE explorer。这个还需要看看是不是单机的差异性。