上參加了Qclub的百度技術(shù)沙龍,聽(tīng)了百度的孫景衛(wèi)講了Web自動(dòng)化測(cè)試,講的非常好,然后在小組討論時(shí)又有幸座在了一起。我們討論的一個(gè)內(nèi)容,是Ajax應(yīng)用程序比原來(lái)的非Ajax程序更不易測(cè)試,這里有兩個(gè)主要原因。
第一:Ajax使得基于純錄制的方式無(wú)法工作,因?yàn)殇浿埔粋(gè)操作,這次返回需要5秒鐘,下次會(huì)更多或更少。
第二:一些測(cè)試工具是基于原來(lái)非Ajax程序來(lái)開(kāi)發(fā)的,后面沒(méi)做對(duì)應(yīng)的升級(jí)。
但是,同樣有很多工具支持Ajax的測(cè)試,我們來(lái)看一下大名鼎鼎的Selenium如何測(cè)試Ajax程序。
準(zhǔn)備Ajax程序
這里我們使用ASP.NET MVC,實(shí)際上你可以使用任何程序來(lái)模擬一個(gè)AJAX調(diào)用。
a. 準(zhǔn)備一個(gè)頁(yè)面,這里我們使用了JQuery.
<input id="GetContent" value="Get" type="button" onclick="GetAjaxContent();" />
<div id="results" style="border:solid 1px red; display:none;">
</div>
<script type="text/javascript">
function GetAjaxContent() {
$.ajax({
url: "Home/GetAjaxContent",
success: function (html) {
$("#results").show().append(html);
}
});
}
</script>
b. 準(zhǔn)備后臺(tái)程序,把下面的代碼加入HomeController.
?
public ContentResult GetAjaxContent()
{
Thread.Sleep(9000);
return new ContentResult { Content = "Hello World" };
}
c. 效果 當(dāng)我們點(diǎn)擊Get時(shí),頁(yè)面出現(xiàn)Hello World。
使用Selenium進(jìn)行Ajax測(cè)試
如果你沒(méi)用個(gè)Selenium,請(qǐng)參考我的這篇文章Web測(cè)試:Selenium使用