严格说来,Selenium是一套完整的Web应用程序测试系统,它包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。Selenium Core由一种指定格式的HTML文件驱动,在一定程度上增强了测试套件(Test Suite)的可读性。Selenium Remote Control允许测试人员使用常见的语言(自然包括C#等.NET语言)编写测试代码,并支持不同操作系统下的各种主流浏览器。Selenium Grid的作用是将测试分发至多台机器,这样便可大大加快测试速度。与WatiN相同,Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。
Selenium IDE
Selenium IDE是基于FIREFOX浏览器的一个插件,提供GUI界面来运行Selenium测试。Selenium IDE提供脚本录制功能,可以将用户在浏览器中执行的操作记录下来,生成各种形式的脚本,可以将这些脚本保存供以后使用。
安装Selenium IDE的步骤如下:
* 从www.openqa.org/selenium-ide/download.action下载Selenimu IDE(这是一个XPI后缀的文件)。
* 启动FIREFOX浏览器,打开刚才下载的文件。
* 重启FIREFOX浏览器,在工具菜条下应该就可以看到Selenium IDE菜单项
---------------------------------------------------------------------------------------------------------
一、Selenium-RC 是 selenium-remote control 缩写,是使用具体的语言来编写测试类。
二、准备工作: 1,下载 selenium 了,到http://www.openqa.org/selenium/下载就可以了,记得选择selenium-rc 的版本
2, 学习一下xpath 的知识。有个教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
3, 安装 jdk1.5
三、selenium-rc 一些使用方法
1,解压selenium-rc压缩包
2,启动服务器
Selenium Server是用JAVA实现的,相应的库文件在HOME/server/selenium-server.jar。运行如下代码从命令行启动:
java 代码 : java -jar selunium-server.jar
四、编写测试用例
需要的JAR: selenium-java-client-driver.jar;junit
编写一个JUNIT的单元测试,要构建一个Selenium,包括如下步骤:
* 构建一个Selenium实例
* 启动Selenium实例
* 执行Selenium命令,并验证结果。
* 关闭Selenium实例
如下是一个示例,用来测试http://www.google.com/,查找selenium,期望结果中包含"OpenQA: Selenium"
1. package com.thoughtworks.selenium; 2. 3. import junit.framework.*; 4. 5. import org.openqa.selenium.server.*; 6. 7. public class GoogleTest extends TestCase 8. { 9. private Selenium selenium; 10. 11. public void setUp() throws Exception { 12. String url = "http://www.google.com"; 13. selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url); 14. selenium.start(); 15. } 16. 17. protected void tearDown() throws Exception { 18. selenium.stop(); 19. } 20. 21. public void testGoogleTestSearch() throws Throwable { 22. selenium.open("/intl/zh-CN/"); 23. selenium.type("q", "selenium"); 24. selenium.click("btnG"); 25. selenium.waitForPageToLoad("30000"); 26. assertEquals("selenium - Google 搜索", selenium.getTitle()); 27. 28. } 29. 30. } |