測(cè)試對(duì)于一個(gè)應(yīng)用系統(tǒng)來(lái)說(shuō)是非常關(guān)鍵的,但沌單元測(cè)方式(XUnit)的方式在B/S結(jié)構(gòu)的信息管理系統(tǒng)中仍然有一些不足,比如要測(cè)試界面元素,網(wǎng)頁(yè)導(dǎo)行方面,需要其它的一些測(cè)試架框作為輔助,這兩天開始查找并學(xué)習(xí)了一些網(wǎng)站測(cè)試方面的框架。 把學(xué)習(xí)心得發(fā)出來(lái)與大家工享。
一、幾種常用框架的介紹。
1、NUnitAsp 官方網(wǎng)址:http://nunitasp.sourceforge.net/
優(yōu)點(diǎn):可以在測(cè)試代碼中直接使用使用調(diào)用網(wǎng)頁(yè)中的服務(wù)器控件。并獲取該控件的屬性。
缺點(diǎn):不夠靈活。正如他的官方網(wǎng)上所說(shuō)的:
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 主要是對(duì)后臺(tái)代碼進(jìn)行單元測(cè)試,即它主要是用于測(cè)試服務(wù)端的邏輯,JavaScript和其它的客戶端代碼是被忽略的。
2、WatiN 官方網(wǎng)址:http://watin.sourceforge.net/
優(yōu)點(diǎn):非常靈活,可以模擬用戶在客戶端瀏覽器中的大部份操作,API也比較簡(jiǎn)單。
缺點(diǎn):文檔較少,官方網(wǎng)上的例子也很少。
因?yàn)槲业哪康氖菧y(cè)試網(wǎng)站里網(wǎng)頁(yè)的導(dǎo)行,主要是要模擬用戶的操作,因此選擇了使用WatiN。下面的內(nèi)容也主要是講述它的使用。
二、簡(jiǎn)單的例子
下面先看一下官司方網(wǎng)站上給出的一個(gè)簡(jiǎn)單的例子。
[Test]
public void SearchForWatiNOnGoogle()
{
/**/
/*這一句代碼會(huì)打開一個(gè)IE瀏覽器,打開www.google.com網(wǎng)址。
*在創(chuàng)建軍了IE對(duì)象以后也可以用ie.GoTo(url);來(lái)轉(zhuǎn)到其它網(wǎng)址。
*/
using (IE ie = new IE("http://www.google.com"))
{
/**/
/*在瀏覽器中查找name屬性為"q"的輸入控件,然后調(diào)用它的TypeText方法
*模擬用戶用鍵盤輸入"WatiN"
*注意TypeText方法是真的模擬用戶一個(gè)一個(gè)字母地輸入進(jìn)這個(gè)輸入框的。
*如果只是想設(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)容,然后確定有沒(méi)有打到這些信息。