什么是 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进行测试。
seleniumhq官方文档:
http://seleniumhq.org/docs/05_selenium_rc.html#introduction