上參加了Qclub的百度技術(shù)沙龍,聽了百度的孫景衛(wèi)講了Web自動化測試,講的非常好,然后在小組討論時又有幸座在了一起。我們討論的一個內(nèi)容,是Ajax應(yīng)用程序比原來的非Ajax程序更不易測試,這里有兩個主要原因。
第一:Ajax使得基于純錄制的方式無法工作,因為錄制一個操作,這次返回需要5秒鐘,下次會更多或更少。
第二:一些測試工具是基于原來非Ajax程序來開發(fā)的,后面沒做對應(yīng)的升級。
但是,同樣有很多工具支持Ajax的測試,我們來看一下大名鼎鼎的Selenium如何測試Ajax程序。
準(zhǔn)備Ajax程序
這里我們使用ASP.NET MVC,實際上你可以使用任何程序來模擬一個AJAX調(diào)用。
a. 準(zhǔn)備一個頁面,這里我們使用了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)備后臺程序,把下面的代碼加入HomeController.
?
public ContentResult GetAjaxContent()
{
Thread.Sleep(9000);
return new ContentResult { Content = "Hello World" };
}
c. 效果 當(dāng)我們點擊Get時,頁面出現(xiàn)Hello World。
使用Selenium進行Ajax測試
如果你沒用個Selenium,請參考我的這篇文章Web測試:Selenium使用