2013-07-31 44 views
0

我有一個Web應用程序執行一些AJAX調用,然後處理結果。根據發送給瀏覽器的內容,這個處理過程可能非常繁重。如何在瀏覽器中執行測試代碼

我現在想對完成的代碼生成性能統計信息。我正在考慮使用Selemium來自動化我的測試。這將允許我自動點擊按鈕來開始測試,但是我看不到如何檢測代碼何時完成。

我一直在考慮使用頁面加載的事件或(假設我使用JQuery)讓Selenium測試以查看所有AJAX調用已完成。但是,這些事件可以(並且確實)觸發我試圖監視的JavaScript!

有沒有人知道一個機制來檢測所有JavaScript已完成?

感謝

+0

你檢查過硒嗎? –

+0

IE11具有「UI響應能力和內存分析工具,可幫助開發人員診斷並修復性能問題」,這可能是您想要查看的內容,但這可能無法滿足您的所有需求。 –

+0

@卡洛斯巴塞羅那。我確實看過硒,但我能想到的最好的方式是調用JQuery腳本來「返回$ .active」。這會告訴我什麼時候最後的AJAX調用被終止了,但是當調用觸發的JavaScript已經完成時不會。你有沒有具體的想法? – Stormcloud

回答

0

如果要執行只是一些統計數據,你可以使用Speed Tracer。 「Speed Tracer is a tool to help you identify and fix performance problems in your web applications.

但是如果你想做一些更具體的測試(壓力,性能等),我會建議你使用硒。您可以使用waitForElementPresent在動態期間等待由Ajax調用產生的所需元素。

waitForElementPresent(locator) 

如果你的內容已加載,並且您只需填寫數據時,你總是可以強制做在機身的末尾添加新的元素。

$.ajax({ 
    type: "POST", 
    data: {data: somedata }, 
    url: someurl, 
    success: function(html){ 
    $("<div/>", { 
     id: 'finnishedId', 
    }).appendTo("body"); 
    } 
}); 
+1

我看到 - 而不是直接訪問有關JavaScript解釋器有多繁忙的信息,​​我們可以使用「finnishedId」標記的存在作爲代理來指示處理已完成。我認爲這應該給我我需要的東西。謝謝。 – Stormcloud

相關問題