上參加了Qclub的百度技術(shù)沙龍,聽了百度的孫景衛(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)開發(fā)的,后面沒做對(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è)試
如果你沒用個(gè)Selenium,請(qǐng)參考我的這篇文章Web測(cè)試:Selenium使用