首页 > 程序开发 > 综合编程 > 其他综合 >

使用开源工具SeleniumRC进行功能测试

2011-07-25

什么是Selenium?  Selenium 是ThoughtWorks 专门为Web 应用程序编写的一个验收测试工具。据Selenium 主页所说,与其他测试工具相比,使用Selenium 的最大好处是:  Selenium 测试直接在浏览器中运行,...

什么是Selenium?

  Selenium 是ThoughtWorks 专门为Web 应用程序编写的一个验收测试工具。据Selenium 主页所说,与其他测试工具相比,使用Selenium 的最大好处是:

  “Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在Windows、Linux 和MacintoshAnd 上的Internet Explorer、Mozilla 和Firefox 中运行。其他测试工具都不能覆盖如此多的平台。”

  使用Selenium 和在浏览器中运行测试还有很多其他好处。下面是主要的两大好处:

  * 通过编写模仿用户操作的Selenium 测试脚本,可以从终端用户的角度来测试应用程序。

  * 通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。

  Selenium 的核心,也称browser bot,是用JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令,测试脚本要么是用HTML 的表布局编写的,要么是使用一种受支持的编程语言编写的。

  在下面的情况下,可以选择SeleniumRC进行功能测试。

  * condition statements

  * iteration

  * logging and reporting of test results

  * error handling, particularly unexpected errors

  * database testing

  * test case grouping

  * re-execution of failed tests

  * test case dependency

  * screenshot capture of test failures

  首先要下载SeleniumRC,不用安装,解压即可,可以看到这样几个目录,下图示:

  selenium-server-1.0.1目录,是服务器端,他可以接受测试程序指令,并将测试结果返回测试程序。

  在测试前必须先启动他,启动过程:开始-运行-cmd-cd <服务器端目录>-java -jar selenium-server.jar(服务器端其实就是个Jar文件)

然后就可以进行客户端,本文用C#来进行测试,首先建立一个C#类库工程,添加引用selenium-dotnet-client-driver-1.0.1目录下的所有DLL,具体如下图示。

  下面,新建类SeleniumTest,具体代码如下:

1 [TestFixture]

2 public class SeleniumTest

3 {

4 private ISelenium selenium;

5 private StringBuilder verificationErrors;

6

7 [SetUp]

8 public void SetupTest()

9 {

10 selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "http://localhost:2896/WebTestSite/");

11 selenium.Start();

12

13 verificationErrors = new StringBuilder();

14 }

15

16 [TearDown]

17 public void TeardownTest()

18 {

19 try

20 {

21 selenium.Stop();

22 }

23 catch (Exception)

24 {

25 // Ignore errors if unable to close the browser

26 }

27 Assert.AreEqual("", verificationErrors.ToString());

28 }

29

30 [Test]

31 public void TheSeleniumTest()

32 {

33 selenium.Open("/WebTestSite/");

34 selenium.Type("TextBox1", "qeq");

35 selenium.Type("TextBox2", "qwe");

36 selenium.Click("Button1");

37

38 //判断是否出现alert("fail")

39 Assert.AreEqual("fail", selenium.GetAlert());

40

41 selenium.Type("TextBox1", "123");

42 selenium.Type("TextBox2", "123");

43 selenium.Click("Button1");

44 Assert.AreEqual("fail", selenium.GetAlert());

45

46 //点击链接

47 selenium.Click("link=2");

48 //等待

49 selenium.WaitForPageToLoad("30000");

50 selenium.Click("link=3");

51 selenium.WaitForPageToLoad("30000");

52

53 }

54 [Test]

55 public void TestTitle()

56 {

57 selenium.Open("/WebTestSite/**.aspx");

58 Assert.AreEqual("yourtitle", selenium.GetTitle());

59

60 }

61 }

  这样,就建好了,可以打开NUit进行测试,也可以直接写个main进行测试。

相关文章
最新文章
热点推荐