2009-02-19 91 views
5

我一直在研究一個能夠在前端使用AJAX和動態JavaScript的網站,現在該開始進行壓力測試了。但是,你如何正確地測試需要點擊前端幾個鏈接的東西呢?我能夠輕鬆快速地反覆瀏覽網站的每個頁面的一種方式就是將Google Mini指向它。但是,這不會點擊鏈接,然後導航Modal窗口和類似的東西。加載UI測試

編輯 - 我應該指出,該網站是在PHP5中完成的,所用的JavaScript庫是jQuery。不知道這是否會有所作爲,但覺得它可能是有用的知道。

回答

2

JMeter很棒。你可以記錄你的會話並根據你的喜好調整它們。

所謂的'阿賈克斯負載測試'是本網站上反覆出現的主題,並且經常令人困惑。所以讓我們直截了當:負載測試正常的網頁和負載測試與ajax之間真的沒有區別。這一切都歸結爲離散的請求;他們恰好不是整頁刷新。

有一點要記住的是沒有被更新測試服務器處理請求(負載測試)和UI組件的屏幕性能負載之間的顯着差異(你的JavaScript的執行情況。)

簡單的負載測試例如:

  1. 初始頁面加載
  2. 登錄
  3. 導航?
  4. 5-10「AJAX」請求(或任何可能適合你的應用程序使用模式)
  5. 註銷
1

你真正想要的是壓力測試的是服務器處理Ajax請求的能力。使用加載工具在「記錄」測試的同時查看請求,然後適當調整。我只使用了vs測試版,所以我不能指出你是低成本的。

1

我與內森和Freddy不同意在一定程度上。他們說「AJAX測試」在HTTP請求中確實沒有什麼不同。但並不那麼簡單。在Why Load Testing Ajax is Hard上查看我在Ajaxian.com上的文章。

JMeter,Pylot和The Grinder都是生成HTTP請求的好工具(我個人推薦Pylot)。但從核心角度來看,它們並不是瀏覽器和處理JavaScript,這意味着他們所做的只是重放他們在記錄時看到的流量。如果這些AJAX請求對於該會話是唯一的,則它們可能不適合於大量重播。

事實上,隨着更多的邏輯推入瀏覽器,使用傳統負載測試工具正確模擬流量變得更加困難(如果不是不可能的話)。

在我的文章,我給它變得多麼困難,當你想查詢的不同搜索條件的1000年(負載測試過程中的一個重要目標)來測試像谷歌的主頁上一個簡單的例子。要使用JMeter/Pylot/Grinder來完成這個工作,你最終會重新使用工具的本地語言重新編寫AJAX代碼的一部分(在你的案例中爲w/jQuery)。

如果您的目標是衡量用戶感受到的響應時間(這可以說是一天結束時最重要的事情),它會變得更加複雜。對於使用Comet /「反向Ajax」(一種長時間保持開放套接字的技術)的非常複雜的應用程序,傳統的加載工具根本無法工作。

我公司,BrowserMob,提供了使用Firefox瀏覽器,搭載Selenium一個load testing service,推動真正的瀏覽器數百或數千,讓您在瀏覽器中看到的測量和時間視覺元素的性能。我們還支持傳統的虛擬用戶(盲HTTP流量)和模擬瀏覽器(通過HtmlUnit)。所有這些都說明了,通常像BrowserMob這樣的服務加上傳統的負載測試是正確的方法。也就是說,真正的瀏覽器非常適合全保真負載測試,但它們永遠不會像「虛擬用戶」那樣經濟,因爲它們需要10-100倍的RAM和CPU。請參閱我最近的博文,瞭解是否需要simulate or not to simulate virtual users

希望有幫助!

0

您可以使用類似openSTA之類的東西。

這允許與網站會話進行錄製,然後通過相對簡單的腳本語言播放。

您還可以輕鬆測試Web服務並編寫自己的腳本。

它允許您以任何您想要的方式將腳本放在一起進行測試,並配置迭代次數,每次迭代中的用戶數量,引入每個新用戶的上升時間以及每次迭代之間的延遲時間。測試也可以安排在未來。

它是開源免費的。

它產生了許多可以保存到電子表格的報告。然後我們使用數據透視表來輕鬆分析和繪製結果。