測試對于一個應(yīng)用系統(tǒng)來說是非常關(guān)鍵的,但沌單元測方式(XUnit)的方式在B/S結(jié)構(gòu)的信息管理系統(tǒng)中仍然有一些不足,比如要測試界面元素,網(wǎng)頁導(dǎo)行方面,需要其它的一些測試架框作為輔助,這兩天開始查找并學(xué)習(xí)了一些網(wǎng)站測試方面的框架。 把學(xué)習(xí)心得發(fā)出來與大家工享。
一、幾種常用框架的介紹。
1、NUnitAsp 官方網(wǎng)址:http://nunitasp.sourceforge.net/
優(yōu)點:可以在測試代碼中直接使用使用調(diào)用網(wǎng)頁中的服務(wù)器控件。并獲取該控件的屬性。
缺點:不夠靈活。正如他的官方網(wǎng)上所說的:
NUnitAsp is for unit testing ASP.NET code-behind only. It's meant for programmers, not QA teams, and it's not very good for QA-style acceptance tests. It only tests server-side logic. JavaScript and other client-side code is ignored. But if you're using ASP.NET, it's an essential part of your programmers' toolset.
NUnitAsp 主要是對后臺代碼進(jìn)行單元測試,即它主要是用于測試服務(wù)端的邏輯,JavaScript和其它的客戶端代碼是被忽略的。
2、WatiN 官方網(wǎng)址:http://watin.sourceforge.net/
優(yōu)點:非常靈活,可以模擬用戶在客戶端瀏覽器中的大部份操作,API也比較簡單。
缺點:文檔較少,官方網(wǎng)上的例子也很少。
因為我的目的是測試網(wǎng)站里網(wǎng)頁的導(dǎo)行,主要是要模擬用戶的操作,因此選擇了使用WatiN。下面的內(nèi)容也主要是講述它的使用。
二、簡單的例子
下面先看一下官司方網(wǎng)站上給出的一個簡單的例子。
[Test]
public void SearchForWatiNOnGoogle()
{
/**/
/*這一句代碼會打開一個IE瀏覽器,打開www.google.com網(wǎng)址。
*在創(chuàng)建軍了IE對象以后也可以用ie.GoTo(url);來轉(zhuǎn)到其它網(wǎng)址。
*/
using (IE ie = new IE("http://www.google.com"))
{
/**/
/*在瀏覽器中查找name屬性為"q"的輸入控件,然后調(diào)用它的TypeText方法
*模擬用戶用鍵盤輸入"WatiN"
*注意TypeText方法是真的模擬用戶一個一個字母地輸入進(jìn)這個輸入框的。
*如果只是想設(shè)置該控件的內(nèi)容可以把這句改為:
*ie.TextField(Find.ByName("q")).Value="WatiN";
*/
ie.TextField(Find.ByName("q")).TypeText("WatiN");
ie.Button(Find.ByName("btnG")).Click();
Assert.IsTrue(ie.ContainsText("WatiN"));
}
}
這段代碼的作用是模仿用戶打開IE瀏覽器到GOOGLE網(wǎng)站查詢WatiN的內(nèi)容,然后確定有沒有打到這些信息。