John Stegman的Oracle ADF开发必读<Testing Your Oracle ADF Faces Application with Selenium >中介绍了如何使用Selenium对ADF Faces进行Functional Test。
最新的Selenium可以在其官方网站下载,包括Selenium IDE、Selenium Server、Selenium Client Driver三部分:
1)Selenium提供了一个使用Selenium IDE的Firefox插件,用户可以基于该插件录制测试脚本,也可以将其Export为JUnit测试类。
2)Selenium Server也被称为Selenium RC,它是一个能够启动和终止浏览器、驱动 Selenium 测试执行的服务器,以及针对几种编程语言和测试框架(包括 JUnit)的一组客户端库。使用它可以实现UI测试的自动化。
3)基于Selenium Client Driver可以在JUnit中调用Selenium RC。可参考下面代码:
package com.example.tests;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.SeleneseTestCase;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class TestOTNJdeveloper extends SeleneseTestCase {
@BeforeClass
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*firefox D:\\Program Files\\Mozilla Firefox\\firefox.exe", "http://www.oracle.com/");
selenium.start();
}
@Test
public void testOTNJdeveloper() throws Exception {
selenium.open("/technetwork/index.html");
assertEquals("Oracle Technology Network | World's Largest Community for Developers, DBAs, and Architects", selenium.getTitle());
assertTrue(selenium.isElementPresent("link=Oracle JDeveloper 11g"));
selenium.click("link=Oracle JDeveloper 11g");
selenium.waitForPageToLoad("60000");
assertEquals("Oracle JDeveloper Software", selenium.getTitle());
assertTrue(selenium.isElementPresent("name=agreement"));
}
@AfterClass
public void tearDown() throws Exception {
selenium.stop();
}
}
在运行该角本前,要先启动Selenium RC:java -jar selenium-server-standalone-2.15.0.jar
有了这三个工具,可以参考John的文章完成其中的UI测试实例。其中,可能会遇到 java.lang.NoClassDefFoundError: com/google/common/base/Charsets 这个异常,只需要将Selenium Server对应的Jar包加到TestCase所在的工程中即可。
参考: