使用 Selenium RC 测试 web 应用程序(3)
 
- UID
- 1066743
|

使用 Selenium RC 测试 web 应用程序(3)
查看测试结果您已经编写了第一个示例测试,现在可以通过启动 Selenium 服务器并将该测试作为一个标准 JUnit 单元测试运行,查看测试的实际运行情况。通过运行以下命令启动 Selenium 服务器:
1
| java -jar selenium-server.jar
|
从 IDE 运行服务器要获取一个完全集成的体验,您可以在 Eclipse 中设置一个外部工具配置并从 Eclipse 直接启动 Selenium 服务器。单击 Run > External Tools > External Tool Configurations 设置这个配置。只需在一个新工具配置中输入启动服务器的命令。
Selenium 服务器启动后,右键单击 IndexTest.java 文件,然后单击 Run As > JUnit Test,运行这个单元测试。Selenium 服务器启动您的浏览器的一个实例并运行这个测试可能需要一些时间。测试完成后,Eclipse 中显示的输出应与常规单元测试相同。
深入挖掘您已经使用 Selenium IDE 创建了一个简单测试并将其导出为一个 Java 文件,现在我们创建一个更复杂的测试来验证 enterInfo.jsp 页面的功能。这个示例测试如清单 4 所示。
清单 4. 测试 enterInfo.jsp 的 JUniti 测试1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| package com.example.mywebapp.tests;
import org.junit.BeforeClass;
import org.junit.Test;
import com.thoughtworks.selenium.SeleneseTestCase;
public class EnterInfoTests extends SeleneseTestCase {
@BeforeClass
public void setUp() throws Exception {
setUp("http://localhost:8080/tested-webapp/index.jsp", "*firefox");
}
@Test
public void testBadDate() {
doLogin();
selenium.type("name", "User");
selenium.type("birthdate", "@#$#@");
selenium.click("//input[@value='Submit']");
selenium.waitForPageToLoad("30000");
verifyTrue(selenium.isTextPresent("Please enter a valid date"));
}
@Test
public void testValidDate() {
doLogin();
selenium.type("name", "User");
selenium.type("birthdate", "12/2/1999");
selenium.click("//input[@value='Submit']");
selenium.waitForPageToLoad("30000");
verifyFalse(selenium.isTextPresent("Please enter a valid date"));
}
private void doLogin()
{
selenium.open("/tested-webapp/index.jsp");
selenium.type("username", "user");
selenium.type("password", "secret");
selenium.click("//input[@value='Login']");
selenium.waitForPageToLoad("30000");
}
}
|
这个示例测试使用 中显示的 LoginTest 类作为一个出发点。doLogin() 函数拥有使您登录到一个应用程序的代码,这个应用程序用于在测试开始时将您带到适当的点。
testBadDate() 方法的作用是在表单上的 birthdate 域中输入错误的值,然后提交该值。测试证明,如果日期不正确,将显示适当的错误消息。testValidDate() 方法测试表单上的有效日期,确保提供用户年龄的消息是正确的。
使用 JUnit 中可用的 Java 技术的威力,您可以循环一些示例,向您的测试添加一些条件,并预见异常。参见 中的链接了解关于 JUnit 和单元测试的更多信息。 |
|
|
|
|
|