Selenium自动化测试平台安装使用说明

conneyma 贡献于2012-09-11

作者 Zhou Jun  创建于2012-08-28 00:10:00   修改者admin  修改于2012-09-05 07:44:00字数6674

文档摘要:一Selenium概述Selenium是ThroughtWorks公司的开源Web功能测试工具系列,主要包括以下4款:SeleniumCore:SeleniumIDE和SeleniumRC的引擎。SeleniumIDE:FireFox的一个插件,支持脚本录制。SeleniumRC:SeleniumRemoteControl。SeleniumGrid:允许同时并行地、在不同的环境上运行多个测试任务,加快Web应用的功能测试。二selenium平台组件选择1Selenium组件对比 
关键词:

Selenium自动化测试平台安装使用说明 一 Selenium概述 Selenium是ThroughtWorks公司的开源Web功能测试工具系列,主要包括以下4款: l Selenium Core: Selenium IDE和Selenium RC的引擎。 l Selenium IDE:FireFox的一个插件,支持脚本录制。 l Selenium RC:Selenium Remote Control。 l Selenium Grid:允许同时并行地、在不同的环境上运行多个测试任务,加快Web应用的功能测试。 二selenium平台组件选择 1 Selenium组件对比   Selenium IDE Selenium Remote Control Selenium Core Selenium Core HTA 浏览器支持 仅Firefox 很多 所有 仅IE 需要远程安装 否 否 是 否 支持 HTTPS/SSL 是 是* 是 是 支持跨域 是 是* 否 是 需要Java 否 是 否 否 将测试结果保存到磁盘 是 是 否 是 多语言支持 仅Selenese 很多 仅Selenese 仅Selenese 1.1浏览器支持:   (1)Selenium IDE仅可以在Firefox中工作。   (2)Selenium Remote Control支持很多浏览器,包括最常用的Firefox,IE,Safari等浏览器。   (3)Selenium Core支持的浏览器是最广的,这点和它的实现有关。作为IDE和RC的引擎,Selenium Core几乎可以在任何浏览器中工作。 1.2远程安装:是否需要在被测网站的服务端安装   只有Selenium Core需要,这是出于同源策略的原因。如果你要测试不是自己可以安装发布的web应用,就无法再别人服务器上装一个Selenium Core。 1.3支持HTTPS/SSL 1.4需要Java: Selenium RC需要,其server“代理服务器”是一个Java程序,需JRE支持。 1.5 将测试结果保存到磁盘 1.6多语言支持   (1)Selenium IDE仅支持Selenium语言。   (2)Selenium RC支持很多语言,如:C#,Java,Python,Ruby等。   (3)Selenium Core仅支持Selenium语言。    PS:Selenium语言有点是比较简单,用(Command,Target,Value)三种元素组成一个行为,并且有辅助录制脚本工具(如:Firefox IDE),不懂程序的测试人员都可以轻松地编写测试案例。 缺点是:Selenium语言有一些严格的限制:它没有条件(没有"if"表达式),并且它没有循环(没有"For"表达式)。这会使编写复杂的测试变得困难甚至不可能。 2 Selenium组件选择 2.1 Selenium IDE Selenium IDE只支持Firefox浏览器,而依附于Firefox也不便于日后开展自动化测试,但是它的录制快捷好用,并且有代码转换功能,可以把Selenium语言测试案例转为C#,Java等语言的测试案例,可使用Selenium IDE进行测试案例的编写,然后转为其他语言的测试案例后,再调用Selenium RC运行测试案例。 PS:每个版本的IDE都有支持的Firefox版本,IDE 1.9.0支持Firefox 14,IDE 1.8.1支持Firefox 13 IDE ,1.8.0支持Firefox 12。 2.2 Selenium RC Selenium RC是支持很多浏览器,可以使用C#,Java等语言编写测试案例,易于维护,有很好的扩展性。 三 Selenium平台安装所需软件 Eclipse Sdk: http://www.eclipse.org/downloads/ Junit 4: https://github.com/KentBeck/junit/downloads (junit4.10.zip,使用新版的eclipse会自带该组件,可以不用下载) Selenium RC:(Selenium Server)http://seleniumhq.org/download/(最新版本2.25,本文使用该版本) 或http://download.csdn.net/detail/fanxinyuan/2695339(版本2.0,使用中出现问题) Selenium Client Drivers:(Java对应的download) http://seleniumhq.org/download/(最新版本2.25,本文使用该版本) Firefox: http://www.firefox.com.cn/download/ *修改为使用Firefox 12版的 Selenium IDE: http://seleniumhq.org/download/ *修改为http://release.seleniumhq.org/selenium-ide/1.8.1/ Firebug :https://addons.mozilla.org/firefox/addon/1843 四 Selenium平台安装步骤 1 安装Firefox 2 安装Selenium IDE Selenium IDE 是Firefox浏览器的一个插件,依附于Firefox浏览器,打开它的录制功能会忠实的记录你对Firefox的操作,并可以回放它所记录的你的操作。安装有以下三种方法: 方法一:是用Firefox 浏览器进入该插件官方网址http://seleniumhq.org/download/找到selenium IDE的下载链接,目前最新版是1.9.0,Firefox会提示安装插件,点击安装即可。 方法二:是在上述网址下载selenium-ide-1.8.1.xpi,拖到Firefox工作区或者点击 右键使用Firefox打开,即可自行安装。 方法三:在Firefox的菜单栏中选择tools (工具)--->add-ons Manager(添加组件) 然后搜索selenium IED 点击下载安装。 因为国外网站网速的原因,选择方法二比较方便快速,安装后选择重启即可使用。 Firebug同理安装。 3 安装java运行环境 安装jdk并配置环境变量 4 安装eclipse 新建一个java项目test,否则以下步骤需在使用时配置 5 安装junit4 5.1使用自带junit 如果使用新版eclipse,只需选中自带的junit即可,步骤如下图所示 图1 图2 图3 图4 5.2 使用外部junit 如果使用老版eclipse,需要添加jar包Junit-4.10.jar;解压junit 4.10 压缩包后如下图所示 图5 图6 图7 图8 6安装Selenium RC 需要以下jar包: //Selenium-java-client-driver.jar:在Selenium RC的selenium-remote-control-1.0.3文件夹下 ....\selenium-remote-control-1.0.3\selenium-java-client-driver-1.0.1\ //Selenium-server.jar :在Selenium RC的selenium-remote-control-1.0.3文件夹下    .....\selenium-remote-control-1.0.3\selenium-server-1.0.3\ *改为使用 Selenium-server.jar: http://seleniumhq.org/download/ selenium-server-standalone-2.25.0.jar Selenium-java-client-driver.jar:http://seleniumhq.org/download/selenium-java-2.25.0.zip解压后找到selenium-java-2.25.0.jar文件的路径,导入eclipse库中 安装如下图所示 图9 图10 图11 分别安装上图所示jar包 图12 图13 图14 五 Selenium平台使用方法 1录制脚本 1.1打开Firefox浏览器,开启selenium IDE插件 菜单中点击工具—>selenium IDE,然后弹出如下窗口开始录制脚本 图15 PS:注意上图中右上角红色录制按钮是自动打开的 1.2页面操作录制 在Firefox地址栏中输入网址,例如www.baidu.com 在百度搜索栏中输入selenium—>点击搜索按钮—>在结果页面再搜索qtp—>点击搜索按钮 如下图显示录制结果 图16 1.3重放脚本和停止录制 可以点击左上角可以重放该脚本看是否有录制问题 可以点击右上角可以停止脚本录制 1.4 转换代码 图17 转换后保存为java文件 2 脚本编辑 创建一个java项目, 图18 按照默认的配置创建一个项目,在Src文件夹下新建com.xxx包,把我们录制的脚本导出并放置到该包中 3启动服务 开始菜单—>运行—>cmd //控制台中进入C:\selenium-remote-control-1.0.3\selenium-server-1.0.3目录(本例中是这样);输入:java -jar selenium-server.jar 回车,服务启动 控制台中执行java –jar %路径%selenium-server-standalone-2.25.0.jar 服务启动 4 运行脚本 在eclipse中运行test.java程序,将自动调用浏览器开始运行脚本。 六 selenium平台使用存在的问题 在selenium平台使用过程中前后遇到不少问题,需要进一步的学习解决 1 脚本录制问题 如本文最后附录的代码,是本次试验中自动生成的java代码,在eclipse中调试的时候出现成员变量类型未定义错误,最后发现是public class test 类没有继承一个默认继承的类SeleneseTestCase,将代码转换成junit3 /rc 时没有这个问题,这个在哪里设置还没有解决; *改为已解决 2 软件使用问题 对于junit测试框架和selenium运行机制了解不够深入,对selenium的命令了解不够 3脚本整合问题 脚本录制完成后要进行优化和按照逻辑进行组织测试场景,尚需学习; 4代码编程问题 脚本转化为java代码或其他语言代码后,需要进一步使用java或其他语言编程,尚需学习; 5代码重用问题 对于不同测试目标需要修改原有的测试代码或者重新录制代码,如何掌握好原有代码的重复利用,减小重复工作量,尚需学习; 附录1 参考文章 1 selenium RC 环境配置 http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2012/0207/204032.htmlhttp://www.ltesting.net/ceshi/open/kygncsgj/selenium/2012/0207/204032.html 2官网资料 http://seleniumhq.org/docs/appendix_installing_java_driver_client.html#configuring-selenium-rc-with-eclipse 3在eclipse中使用Selenium,搭建Selenium的环境 for windows http://hi.baidu.com/yanvsqiang/blog/item/56ebb5dc9b74d781cc11660f.html 4 Selenium私房菜系列(点击上一级菜单Selenium可以看见该系列全部文章) http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2011/1008/203312.html 附录2 学习网站 1http://seleniumhq.org/:Selenium官网。 2http://openqa.org/:Selenium官方论坛,有很多参考资料:>,荐! 3Selenium中文:记录大量Selenium中文资料的地方。 4http://seleniumcn.cn/ :一个Selenium中文论坛。 附录3 遇到的问题与解决办法 问题1只能在Selenium IDE的Source框中看见html格式的selense语言 并且在options—format中没有格式转换备选项 原因是Selenium IDE中默认不开启格式转换选项,解决办法如下 在如下位置打钩 点击确定后如下操作,就可以看到java形式的代码了 问题2 java代码中不能自动继承TestCase类 后来又发现一个奇妙的问题,要将脚本代码转换为junit4/ remote control的java代码的时候出现该问题,要是转化为junit3/ remote control的java代码的时候就没有这个问题 经过实验已查明是Selenium IDE最新版1.9的问题,现在换回Selenium IDE 1.8.1,并配用Firefox 12,就没有这个问题了。 Selenium IDE各个版本支持的Firefox版本情况详见 http://code.google.com/p/selenium/wiki/SeIDEReleaseNotes 该问题详细叙述为录完脚本后转化为junit4/ remote control的java版本的时候,脚本的类名后面没有自动继承SeleneseTestCase类。SeleneseTestCase类存在于com.thoughtworks.selenium.*包中,继承自TestCase类,该类存在于junit.framework.TestCase包中,在脚本中类如果直接TestCase也是可以的。 问题3 java脚本代码在eclipse中运行时可以打开Firefox但看不见Firefox的操作 Selenium RC版本兼容问题,SeleniumIDE需要较高级的Firefox版本,而Selenium Server常常只能支持较低版本的Firefox,所以有人就在时间中使用高低两个版本的Firefox,一个用来录脚本,一个用来做测试。由于使用的http://download.csdn.net/detail/fanxinyuan/2695339(版本2.0)不支持较高版本的Firefox浏览器,将该Selenium RC换为官网的http://seleniumhq.org/download/的selenium-server-standalone-2.25.0.jar,在需要执行脚本之前直接执行 java –jar %路径%selenium-server-standalone-2.25.0.jar 就可以看到Firefox中的回放了 问题4 为什么不直接用IDE生成的html格式的selense脚本搞测试 该格式不支持if while等逻辑操作,并且直接用selenium core编辑selense语言比较复杂 附录4 脚本代码 test.java package com.xxx; import com.thoughtworks.selenium.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.regex.Pattern; public class test { // 正确的应该是public class test extends SeleneseTestCase @Before public void setUp() throws Exception { selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.baidu.com/"); selenium.start(); } @Test public void testTest() throws Exception { selenium.open("/"); selenium.type("id=kw", "selenium"); selenium.click("id=su"); selenium.waitForPageToLoad("30000"); selenium.type("id=kw", "qtp"); selenium.click("id=su"); selenium.waitForPageToLoad("30000"); } @After public void tearDown() throws Exception { selenium.stop(); } }

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档