`
ab1830
  • 浏览: 25058 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java_selenium-rc自动化测试

阅读更多
1. 先去 http://selenium-rc.openqa.org/download.jsp 下载selenium包:selenium-remote-control-1.0.1-dist.zip。 解压。
2. 用命令行来到解压的文件夹下: \selenium-remote-control-0.9.2\selenium-server-0.9.2
3. 运行: java -jar selenium-server.jar 启动selenium server (务必启动!!)
4. 在Eclipse创建一个项目,在项目的build path里面加上junit.jar和selenium-java-client-driver.jar(这个
在刚解压的包里面)
5. 先利用firefox selenium IDE来录制检测页面检测功能用的junit代码。
6. 在项目里面新建一个class(junit用例):将上面的junit代码帖于此。
7. 根据eclipse的错误提示来增加相应要import的类
8. 在进行测试前,最好将对应浏览器关闭,否则容易出错。
9. 然后在Eclipse里运行 “Run As -> unit Test”即可看到自动化的范例.
10.运行期间,会弹出ie窗口,自动进 行操作测试。检测完后,若junit显示为“绿色”则表示成功。
下面粘贴一下那个测试小程序
import com.thoughtworks.selenium.SeleneseTestCase;
public class Untitled extends SeleneseTestCase {
public void setUp() throws Exception {
//由于selenium 对*firefox不支持3.6版本的.只能支持3.0版本.所以,最好将selenium IDE录制的代码中的firefox改为ie进行测试。
//setUp("http://www.google.cn/", "*firefox");
setUp("http://www.google.cn/", "*iexplore");
}
public void testUntitled() throws Exception {
selenium.open("/");
selenium.type("q", "baidu");
selenium.click("btnG");
selenium.waitForPageToLoad("30000");
selenium.click("link= 百度一下,你就知道");
//添加断言进行测试:
//  assertTrue(selenium.isTextPresent("OpenQA: Selenium"));   //测试出错,程序退出
assertTrue(selenium.isTextPresent("百度一 下,你就知道")); //测试成功,程序继续 
}
//用于让测试的页面关闭.若不写,则页面不会关闭
public void tearDown() throws Exception {
selenium.stop();
}
}
(7)
7.1
selenium 常用操作有:open,type,click,select,selectFrame:
1. open("/")打开的是当前的网址;selenium.open("/dmmc/"):在当前的网址后面追回/dmmc/;
2. type,click,select,selectFrame各方法使用时,对元素的定位都可采用元素ID 或 xpath方式;
3. type,click,select,selectFrame去选择元素时,可以直接用元素的ID作为标 记.
4. 如:selenium.type("loginName", "coship");;采用xpath方式时,则格式如://元素名1[元素属性名1='元素属性值1']/元素名2[元素属性名2='元素 属     性值2']/....
如:selenium.type("//input[@name='admin.password']", "coship")
7.2
常用命令用法:
1)
type的两种不同定位方式:
selenium.type("loginName", "coship");
//以下语句的"xpath="可以省略
selenium.type("xpath=//input[@name='admin.password']", "coship");
2)
click的两种不同定位方式:
selenium.click("imageField");  即是通过ID定位:<input type="submit" value="  " id="imageField">
selenium.click("//input[@type='submit']");  (通过属性input-type)
selenium.click("//input[@value='确定']");   (通过属性input-value)
selenium.click("//input[@name='devTypeIds' and @value='000002']") (还可通过属性@id)
3)
点击链接方式:
对于动态内容的获取,尽量避 免采用第一种方式(若内容变了,则出错),而采用第二种方式.
实现方式一:
点击链接:<a href=..>801830456628</a>
selenium.click("link=801830456628");
实现方式二:
获取id=adminList的table中的tbody下的第三行,第二列中的a href元素。
selenium.click("//table[@id='adminsList']/tbody/tr[3]/td[2]/a");
4)
选 择下拉框:
实现方式一:
selenium.select("status", "label=启用");
即 是:<select id="status"><option value="1">启用</option></select>
实现方式二:
selenium.select("xpath=//SELECT[@id='status']", "index=1"); 
具体应用,请见以下实例。
7.3
实例:
用于检测abmc系统各模块功能是否正常。
方式:
用selenium IDE录制abmc系统各模块功能操作.(前提是:这些操作,这些功能都是正确成功),以后当abmc系统升级,更改后,即可运行此脚本,来检查升级是否 影响系统功能实现。若系统更改有错,则selenium中运行中某一步骤时,会出错退出。
如:
系统更改后导致某一页面打不开,这时 selenium运行到此页面时,就不能继续往下操作,就会出错而退出。
注意:
1.同时,也可在测试代码中添加一些断言判断来判断成功,失败。
2.
对于firefox selenium IDE录制的脚本要进行适当的修改,尽量让selenium用元素ID来定位操作元素,而不通过元素名(元素名易变化)。
3.
若selenium RC检测代码出错,也不一定是系统升级有问题,可能是系统升级后,有些数据删除,修改了,selenium RC在回放操作时,找到原来录制时对应的数据而出错。
具体代码如下:
//对于click,select,selectFrame去选择元素时,可以直接用元素的ID作为标记.// 如:selenium.click("元素ID");
public class AbmcSeleniumTest extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://192.31.52.103:8080/", "*iexplore");
}
public void testUntitled() throws Exception {
selenium.open("/abmc/");
//type的两种不同定位方式
selenium.type("loginName", "coship");
//以下语句 的"xpath="可以省略
selenium.type("xpath=//input[@name='admin.password']", "coship");       
//    selenium.click("imageField");    即是通过ID 定位:<input type="submit" value="    "    id="imageField">
selenium.click("//input[@type='submit']");       
//等待一个新的页面加载。 以毫秒为单位,超过后该命令将返回错误。   
selenium.waitForPageToLoad("30000");    
//即选择<frame src="device/index.jsp" id="mainFrame">
selenium.selectFrame("mainFrame");
//对于动态内容的获取,尽量避免采用第一种方式 (若内容变了,则出错),而采用第二种方式
//点击链接:<a href=..>801830456628</a>
//    selenium.click("link=801830456628");   
//实现方式二:获取id=adminList的table中的tbody下的第三行,第二列中的a href元素。
selenium.click("//table[@id='adminsList']/tbody/tr[3]/td[2]/a");
selenium.waitForPageToLoad("30000");
selenium.click("//input[@value=' 返回']");
selenium.waitForPageToLoad("30000");
//因为有多个“查看应用列表”,若不指定,默认获取第一个
selenium.click("link=查看应用列表");
selenium.click("btn_dsure");
// 方式一:
//selenium.click(" //a[@onclick=\"showPage('应用列表','deviceAppList.action?device.swType=2&device.deviceId=0000257&device.deviceName=801830456628&device.specName=DevTyp',750,400)\"]");
//方式二:
selenium.click("//table[@id='adminsList']/tbody/tr[3]/td[5]/span[1]/a");
selenium.click("btn_dsure");
selenium.selectFrame("relative=up");
selenium.selectFrame("leftFrame");
selenium.click("link=应用文件管理");
selenium.click("link=应用文件信息");
selenium.selectFrame("relative=up");
selenium.selectFrame("mainFrame");
selenium.click("//a[@onclick=\"showPage('匹配终端类型','appTypeList.action?application.appId=01&application.appName=maliao',750,400)\"]");
selenium.click("btn_dsure");
selenium.click("//table[@id='adminsList']/tbody/tr[7]/td[8]/span[2]/a");
selenium.waitForPageToLoad("30000");
selenium.click("//input[@name='devTypeIds' and @value='000002']");
selenium.click("//input[@value='确定']");
selenium.waitForPageToLoad("30000");
selenium.click("//a[@onclick=\"showPage('匹配终端类型','appTypeList.action?application.appId=01&application.appName=maliao',750,400)\"]");
selenium.click("btn_dsure");
selenium.selectFrame("relative=up");
selenium.selectFrame("leftFrame");
selenium.click("link=终端应用管理");
selenium.click("link=终端应用许可");
selenium.selectFrame("relative=up");
selenium.selectFrame("mainFrame");
//    selenium.select("status", "label=启用"); 即是:<select id="status"><option value="1">启 用</option></select>
selenium.select("xpath=//SELECT[@id='status']", "index=1");    
selenium.click("//input[@type='image']");
selenium.waitForPageToLoad("30000");
selenium.click("//input[@type='image']");
selenium.waitForPageToLoad("30000");
selenium.selectFrame("relative=up");
//即 选择<frame src="device/index.jsp" id="mainFrame">
selenium.selectFrame("topFrame");   
selenium.click("link=注销");
//若要测试其 它的网页,可以继续selenium.open(..)
}
}
分享到:
评论

相关推荐

    快速启动selenium-RC-server

    Selenium Remote Control (Selenium-RC) 是一个强大的自动化测试工具,它允许程序员用多种编程语言(如Java、Python、Ruby等)编写测试脚本来控制Web浏览器。在本教程中,我们将详细介绍如何快速启动Selenium-RC...

    selenium-RC.rar

    这个RAR文件“selenium-RC.rar”包含了Selenium RC的重要组件,如`selenium-java-client-driver.jar`和`selenium-server.jar`,这些都是进行Web应用自动化测试的基础。 **selenium-java-client-driver.jar** 是...

    Selenium-RC.rar_selenimu rc_selenium

    **Selenium RC(Remote Control)** 是一个强大的自动化测试工具,用于模拟用户在网页上的交互行为。Selenium RC 允许测试者编写多种编程语言(如 Java、C#、Python 等)的测试脚本,并通过服务器端的控制台与浏览器...

    selenium-server-standalone-2.40

    Selenium 是一个强大的开源自动...总之,Selenium Server Standalone 2.40.0及其相关Java库为开发者提供了一套全面的工具,用于构建和执行网页应用的自动化测试,无论是简单的点击测试还是复杂的UI交互,都能轻松应对。

    selenium-java-2.47.1.zip

    总之,"selenium-java-2.47.1.zip" 是一个用于自动化网页测试的重要工具,包含了一系列的Java库和资源,可以帮助你构建高效、可靠的Web应用测试框架。无论是初学者还是经验丰富的测试工程师,都能从中受益。

    selenium-server-standalone - 副本.zip_selenium_selenium server_sel

    Selenium本身是一个开源的Web应用程序自动化测试框架,它支持多种编程语言,如Java、Python、C#等,使得测试脚本编写灵活多样。Selenium Server Standalone结合了WebDriver和旧版的Selenium RC(Remote Control),...

    selenium-rc

    selenium1.0的自动化测试,selenium-remote-control-1.0.3,包含selenium-java-client-driver-1.0.1、selenium-php-client-driver-1.0.1等等

    selenium-server-standalone-3.8.1和selenium-java-3.7.1

    "Selenium Server 服务器 jar 包" 是运行 Selenium RC 或 Selenium Grid 所必需的,它包含了运行自动化测试所需的组件。 "Selenium-java-3.7.1.rar" 文件则包含的是 Selenium 的 Java 客户端库,版本为 3.7.1。这个...

    selenium_IDE__selenium_rc

    总结,"selenium_IDE__selenium_rc" 压缩包提供的工具可以帮助我们构建一个完整的自动化测试流程,从简单的录制回放到复杂的编程控制,覆盖了测试生命周期的各个阶段,对于Web应用的测试和质量保证具有重要的价值。...

    selenium-java-2.53.1.rar

    selenium自动化测试必须要用的包 官网上下载最新的 会报错。。我用的这个 好了。Selenium 2.0主要的特性就是与WebDriver API的集成。WebDriver旨在提供一个更简单更简洁的编程接口以及解决一些Selenium-RC API的...

    selenium-java-2.18.0.zip

    4. **Selenium RC (Remote Control)**: 在Selenium 2之前,Selenium RC是主要的自动化工具,它允许在任何支持的浏览器上运行测试,无论浏览器是否在同一机器上运行。虽然在WebDriver出现后逐渐被取代,但在2.18.0...

    selenium-java-2.52.0.zip

    Selenium 是一个强大的开源自动化测试框架,主要用于网页应用的测试。这个压缩包 "selenium-java-2.52.0.zip" 包含了Selenium的Java版本,版本号为2.52.0,是Selenium的一个稳定版本。这个版本支持与Java编程语言的...

    selenium自动化测试 java实例

    **Selenium 自动化测试与 Java 实例** Selenium 是一款强大的开源自动化测试框架,用于模拟用户在浏览器上的各种操作,以验证Web应用程序的功能和行为。它支持多种编程语言,其中包括Java,使得开发者和测试工程师...

    seleniumRC

    Selenium RC,全称为Selenium Remote Control,是Selenium测试工具套件中的一个早期组件,主要用于自动化Web应用程序的测试。Selenium RC允许测试者通过编程语言(如Java、Python、Ruby等)编写测试脚本,然后控制...

    selenium-server-standalone-3.141.59.jar

    Selenium Server Standalone是Selenium的一种部署形式,它包含了WebDriver、RC(Remote Control)和其他必要的组件,使得无需额外安装其他依赖就能运行自动化测试。 该版本号3.141.59表明这是一个稳定且经过广泛...

    selenium-java-2.40.0

    在这个版本中,Selenium支持多种浏览器自动化,并且与Java编程语言紧密结合,使得测试脚本编写更加灵活和方便。 Selenium 的核心组件包括 Selenium WebDriver、Selenium RC 和 Selenium IDE。在2.40.0版本中,...

    selenium-java jar文件及源码

    总的来说,Selenium Java JAR文件和源码为Web自动化测试提供了强大的工具,使得开发者能够高效地编写可维护的测试代码,确保Web应用的功能正确性和稳定性。对于理解和掌握Selenium的工作机制,以及进行高级定制和...

    selenium-remote-control-0.8.0.zip_Selenium web 测试_remote_seleniu

    Selenium Remote Control(简称Selenium RC)是一款强大的开源Web自动化测试工具,主要用于验证网页应用程序的功能。这个工具允许测试人员编写可跨多个浏览器运行的自动化测试脚本,极大地提高了测试效率和覆盖率。...

    selenium-java-2.44.0 jar包

    Selenium 是一个强大的开源自动化测试框架,主要用于网页应用的测试。这个"**selenium-java-2.44.0 jar包**"是Selenium库的一个特定版本,针对Java语言的,版本号为2.44.0。这个版本在当时发布时提供了对各种浏览器...

    selenium-server-standalone-3.6.0.jar

    这个Java包是Selenium项目的一部分,用于支持Web应用程序的自动化测试。Selenium自身是一个强大的开源测试框架,可以模拟用户在浏览器中的各种操作,从而验证Web应用的功能和性能。 Selenium Server Standalone集成...

Global site tag (gtag.js) - Google Analytics