`
txf2004
  • 浏览: 7041533 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Selenium--透明反复推介的集成测试工具(Pragmatic系列)

阅读更多

作者:江南白衣

国内大部分公司还依靠QA组的MM看着测试用例文档来手工测试,如果钱人有限,又想改变现状,最实在的建议是先编写直接访问数据库的商业层UnitTest和基于Selenium的集成测试这两种实用性最高的测试。

在徐昊指导下,SpringSide2.0 已经全面应用Selenium。

Selenium 能被选为最好集成测试、回归测试方案,是因为:

1.Selenium IDE ,一个FireFox plugin,能自动记录用户的操作,生成测试脚本

2. 生成的测试脚本可以用Selenium Core手工执行,也能基于Selenium RC放入Java,C#,Ruby的单元测试用例中自动运行

3. 测试用例调用实际的浏览器(如IE、FireFox)来执行测试。和有些开源方案自行实现Web解释引擎相比,实际的浏览器能模拟更多用户交互和JS语法,顺便还可以测试各浏览器兼容性。

4. 测试脚本语法非常简单,见后。

1. 使用Selenium IDE生成脚本

Selenium IDE 是一个Firefox1.5插件,下载后用Firefox将其打开。

工具->Selenium IDE,点击红色的recorder按钮开始录制,在网站中乱点时可以即时看到每个动作的脚本。

切换Format:显示 HTML,Java,C#,Ruby 语法的脚本。 option里还可以设定Java里Selenium变量的名称,如user。

2.测试用例与测试脚本

测试用例在Selenium IDE生成->Copy Paste的流程下非常的容易。

publicclassUserManagerTestextendsTestCase
{
privateSeleniumuser;

publicvoidsetUp()throwsException{
user
=newDefaultSelenium("localhost",SeleniumServer.DEFAULT_PORT,"*iexplore","http://localhost:8080");
user.start();
}
protectedvoidtearDown()throwsException{
user.stop();
}

publicvoidtestUserEdit(){
user.open(
"/helloworld");
user.click(
"//a\[contains(@href,'user.do?id=0')\]");
user.waitForPageToLoad(
"3000");
user.type(
"user.name","calvin");
user.click(
"save");
user.waitForPageToLoad(
"3000");
assertTrue(user.isTextPresent(
"calvin"));
}


留意setUp中的"*iexplore"参数,设定使用IE作为测试浏览器;如果设为"*firefox",就会在PATH中查找*firefox.exe。

注意,Selenium使用IE时的Proxy机制比较特殊,如果你同时在本机ADSL modem拨号上网,要先断网。

脚本中按徐昊的指导,使用user 作为Selenium的变量名,使用例更加易读。

Selenium提供了非常丰富的用户交互函数,但Selenium RC里并没有为Java单列一个函数参考手册,需要阅读公共的Selenium Refrences,再使用同名对应的java函数。

所有函数都是一个locator参数,将操作付诸某个页面上的对象。支持ID,DOM语法,XPath语法,CSS selector语法等,详见参考手册

如果不会写,最好的老师还是Selenium IDE 。比如那句点击 <a href="user.do?id=0" _fcksavedurl=""user.do?id=0"" _fcksavedurl=""user.do?id=0"" _fcksavedurl=""user.do?id=0"" _fcksavedurl=""user.do?id=0"" _fcksavedurl=""user.do?id=0"" _fcksavedurl=""user.do?id=0"" _fcksavedurl=""user.do?id=0"" />修改</a>,就是用IDE得到user.click("//a[contains(@href, 'user.do?id=0')]")的XPath语句。

3.Ant的运行脚本

我写的Ant测试脚本一个重要特征是使用<parallel> 并行容器节点,一边同时打开tomcat 和selenium server,一边等待两者打开后执行JUnit。
如果不使用并行节点,而是用spawn=yes属性后台启动tomcat,屏幕里就看不到tomcat信息,如果测试意外终止的话,就不能关闭tomcat,很不方便。

<parallel>
<antcalltarget="tomcat.start"/>
<antcalltarget="selenium.server.start"/>
<sequential>
<waitformaxwait="10"maxwaitunit="minute"checkevery="1"checkeveryunit="second">
<httpurl=http://localhost:8080/>
</waitfor>
<waitformaxwait="10"maxwaitunit="minute"checkevery="1"checkeveryunit="second">
<socketserver="localhost"port="4444"/>
</waitfor>
<junit./>
<antcalltarget="tomcat.stop"/>
</sequential>
</parallel>

4.SpringSide 中的FunctionalTestCase基类

SpringSide中抽象了一个FunctionalTestCase基类,抽取了setUp() ,tearDown()函数中selenium server 开闭操作。

其中浏览器类型默认为"*iexplore", 基本url默认为http://localhost:8080

用户可以在selenium.properties 中重新设定selenium.explorer 和selenium.baseurl 变量。

分享到:
评论

相关推荐

    selenium-server-standalone和Selenium-java的jar包

    虽然在某些简单的情况下,不使用Selenium-java也能运行测试(通过直接调用selenium-server-standalone.jar提供的接口),但Selenium-java提供了更丰富的功能和更好的抽象层次,让测试代码更加简洁、易于维护。...

    selenium-java-4.0.0-alpha-6_javaselenium_

    标题 "selenium-java-4.0.0-alpha-6_javaselenium_" 指的是 Selenium 的一个 Java 版本的软件包,具体是 4.0.0 的第六个 Alpha 版本。Selenium 是一个广泛使用的自动化测试工具,主要用于 web 应用程序的测试。它...

    selenium-server-standalone-2.40

    3. **编写测试脚本**:使用Java或其他支持的语言编写测试脚本,导入`selenium-java-2.40.0.jar`作为依赖。 4. **连接服务器**:在脚本中创建WebDriver实例,指定要使用的浏览器和Selenium Server的URL。 5. **执行...

    selenium-server-4.1.1.jar

    Selenium 服务器(selenium-server-4.1.1.jar)

    selenium-selenium-4.5.0.zip源码

    在 `selenium-selenium-4.5.0.zip` 源码中,我们可以深入理解 Selenium 的内部实现,包括以下关键部分: 1. **WebDriver**: 这部分包含了各个浏览器驱动(如 ChromeDriver、GeckoDriver)的实现,它们作为桥梁,...

    selenium-java-2.44.0、selenium-java-2.44.0-srcs、selenium-server-standalone-2.44.0

    同时,如果需要进行分布式测试,他们会启动`selenium-server-standalone-2.44.0.jar`,并在配置文件中指定节点(运行测试的机器)的信息。对于想要深入理解Selenium的人来说,源代码库则提供了无尽的可能性。 总的...

    selenium-java 3.7.1.jar

    总的来说,Selenium-Java 3.7.1是Web自动化测试的强大工具,对于需要使用Java进行Appium测试的开发者来说,它是不可或缺的依赖。了解和熟练使用这个库,可以帮助你提高测试效率,保证Web应用的质量和稳定性。

    selenium-server-standalone-4.0.0-alpha-2.zip

    标题 "selenium-server-standalone-4.0.0-alpha-2.zip" 指的是 Selenium 的一个服务器独立版本的归档文件,该版本为 4.0.0 的 Alpha 2 版本。Selenium 是一个广泛使用的自动化测试工具,主要用于 Web 应用程序的测试...

    selenium-server-standalone-2.45.0和selenium-java-2.45.0(含srcs)

    "selenium-server-standalone-2.45.0" 和 "selenium-java-2.45.0(含srcs)" 提供了Selenium在Java环境下的核心组件,以及一个独立的服务器版本,方便进行Web应用的自动化测试。 1. **Selenium Server Standalone**...

    selenium-java-2.25.0.zip和selenium-server-standalone-2.25.0.jar

    总结来说,这个压缩包提供的“selenium-java-2.25.0.zip”和“selenium-server-standalone-2.25.0.jar”是Selenium 2.25.0版本的Java客户端库和独立服务器,它们是进行Web应用程序自动化测试的重要工具。开发者可以...

    selenium-server-standalone-3.141.0.jar

    最新版selenium-java,selenium-server-standalone-3.141.0.jar

    selenium-java-2.47.1.zip

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

    selenium-server-standalone-2.44.0.jar

    selenium-server-standalone-2.44.0, selenium最新服务器,

    selenium-java-2.45.0.jar

    selenium-java-2.45.0.jar

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

    在使用这些资源时,开发者首先需要解压 "selenium-java-3.7.1.rar",然后在项目中引入解压后的 JAR 文件,以便使用 Selenium 的 Java API 编写测试代码。接着,可以通过启动 "selenium-server-standalone-3.8.1.jar...

    selenium-htmlunit-driver-2.9.0

    selenium-htmlunit-driver-2.9.0jar包 selenium-htmlunit-driver-2.9.0jar包 selenium-htmlunit-driver-2.9.0jar包 selenium-htmlunit-driver-2.9.0jar包

    selenium-server-standalone-3.141.59

    selenium-server-standalone-3.141.59.jar selenium-server-standalone-3.141.59.jar

    selenium-java-3.141.59.zip

    Selenium 是一个强大的开源自动化测试框架,用于网页应用程序。它支持多种编程语言,包括 ...在持续集成和持续部署(CI/CD)流程中,Selenium 成为了不可或缺的工具,因为它能够自动化执行回归测试,显著提高了测试效率。

    selenium-4.8.3.tar.gz

    selenium-manager-4.8.3.jar 文件是Selenium Grid的管理工具,用于控制和管理测试环境中的浏览器实例。这个版本的管理器可能包含对多浏览器支持、动态节点配置等方面的更新,使得分布式测试更为便捷。 selenium-...

    selenium-java-2.41.0,selenium-java-2.33

    在本主题中,我们将深入探讨`selenium-java-2.41.0`和`selenium-java-2.33.0`这两个版本。 首先,`selenium-java-2.33.0.zip`和`selenium-java-2.41.0.zip`是两个不同版本的Selenium Java绑定包。这些zip文件包含了...

Global site tag (gtag.js) - Google Analytics