用 Selenium 和 Eclipse IDE 实现自动化的网络流量【译文】
URL: http://blog.testsautomation.com/2009/11/automating-web-flow-with-selenium-and-eclipse-ide/
译者: Rita 原作者: Waldemar
也许你已经很了解 Selenium 了,它是个很基础的免费开源网络应用功能测试工具,而且它是被大部分人认为可以替代 QTP 的一款测试工具。我最近发现 Selenium 对于负载测试自动化数据生成很有帮助。
下面是对如何设置 Eclipse 和通过它运行 Selenium 脚本的简短介绍。
1> 下载 Eclipse IDE 地址: http://www.eclipse.org/downloads/
2> 下载 Selenium RC 地址: http://seleniumhq.org/download/
3> 下载 Junit 地址: http://www.junit.org/
4> 在 Eclipse 中创建一个新项目:菜单选择 File à New à Projece à JavaProjece ,然后输入一个项目名字如 “Sample” ,点击 “Finish” 按钮创建完毕。
5> 导入 Selenium 和 JUnit 包:在 Package Explorer 标签页中右键单击项目名字 “sample”
选择 “Properties”, 点击左侧 “Java Build Path” ,选择 “Libraries” 标签,点击右侧 “Add External JARs” 并导入 junit-4.7.jar 和 selenium-java-client-driver.jar 两个包。
现在我们的 Eclipse 环境已经创建好了。下一步准备在 Selenium IDE 中的测试用例,为此我已经准备好了一个小测试,是在 google 中查询 ”linux” 一词。在 Selenium IDE 的 “option” 中,依次选择 Format -> Java (Junit) Selenium RC 。开始用 Selenium IDE 录制的脚本是类似这样的:
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class Untitled extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://change-this-to-the-site-you-are-testing/", "*chrome");
}
public void testUntitled() throws Exception {
selenium.open("/");
selenium.type("q", "linux");
selenium.click("btnG");
selenium.waitForPageToLoad("30000");
}
}
默认在 Selenium 中生成的 Junit 代码不能用于 Selenium RC ,正因如此,我更新了一下代码,使其连接到本地 Selenium RC 的 4444 端口,更新代码如下:
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern ;
public class Untitled extends SeleneseTestCase {
public DefaultSelenium selenium ;
public void setUp() throws Exception {
selenium = new DefaultSelenium( "localhost" , 4444, "*iexplore" , "http://www.google.com/" );
selenium .start();
}
public void testUntitled() throws Exception {
selenium .open( "/" );
selenium .type( "q" , "linux" );
selenium .click( "btnG" );
selenium .waitForPageToLoad( "30000" );
}
}
接下来我们把它加入到 Eclipse 项目中:在 Package Explorer 标签页中右键单击项目名字,选择 New -> Class ,输入类名 “Untitled_linux ” 和 package name “com.example.tests” ,点击 “Finish” 按钮完成。
在运行我们的测试前,还需要开启 Selenium RC 。从系统的命令行进入目录: selenium-remote-control-1.0.1/selenium-server-1.0.1 ,运行命令 “java -jar selenium-server.jar” 。它将在 4444 端口运行 Selenium RC 。
现在开始运行测试(Rita 注:把在 Selenium 中录制或更新的脚本代码 copy 到 Eclipse 的类“ Untitled_linux ”中,见下图 ) ,选择菜单 Run -> Run As -> Junit test 即可(或者直接点击运行按钮)。运行后将打开两个 IE 窗口,一个是 Selenium RC 窗口,另一个是 Google 搜索 ”linux” 的结果窗口。 (Rita 注:运行前一定要确保在 Eclipse 中的类名和测试脚本的类名一致,否则运行会失败。如我之前创建的类名为 “Untitled_linux ” ,故要确保测试脚本中“ public class Untitled_linux extends SeleneseTestCase ”的类名一致 )
因为我们运行了 Java 代码,在此仅仅提到如何想去运行测试。下面是我更新了上面的例子的代码,改为 5 秒间隔循环搜索 5 次:
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern ;
public class Untitled_linux extends SeleneseTestCase {
public DefaultSelenium selenium ;
public void setUp() throws Exception {
selenium = new DefaultSelenium( "localhost" , 4444, "*iexplore" , "http://www.google.com/" );
selenium .start();
}
public void testUntitled() throws Exception {
for ( int i = 0; i < 5; i++)
{
selenium .open( "/" );
selenium .type( "q" , "linux" );
selenium .click( "btnG" );
selenium .waitForPageToLoad( "30000" );
Thread.sleep (5000);
}
}
}
最后,运行成功后命令行窗口会显示如下信息:
Eclipse 中会显示如下运行成功的界面: