2012-10-24 66 views
1

我想加載測試頁面並呈現javascript。看來有三類應用可以解決這個問題,並且三個都沒有打上標記。web性能測試,呈現javascript

1)Jmeter,apachebench,tsung,Grinder,Iago 它爲什麼不工作:它不呈現JavaScript。這些都是方便的工具,但它們不適用於此目的。

2)Watir,Selenium 這些工具非常出色,它們使用真正的瀏覽器並呈現javascript/ajax,但是,它們主要是爲功能測試而設計的,而不是性能測試。您可以創建自己的應用程序以將這些內容用於負載測試,但收集所有性能指標並將它們聚合起來將是一個巨大的痛苦。

如果只有前兩種網絡性能測試的組合,那就太棒了。

第三個選項解決了這個問題,但不幸的是你必須付出代價。 3)Web負載測試服務 像Keynote Load Pro,BrowserMob和其他服務都很棒,它們解決了使用真實瀏覽器和渲染JavaScript的問題。唯一的問題是,我不想花300美元來運行一次該死的負載測試(這是誇張的,但不是真的,取決於你使用的虛擬用戶數量)。

所以,這個選項將無法正常工作,除非我想出血錢。

是否有解決此問題的測試設備?這似乎是一個巨大的漏洞,需要一個沒有人解決的開源工具。商業公司主宰這個領域(以及那些想聘請全職開發人員編寫硒性能測試框架的人)。

+0

@PMD UBIK-INGENIERIE否決?這是一個真正的問題。你能否至少說出你爲什麼投票棄權? –

+1

不,我沒有投票。我只是刪除了Jmeter作爲標籤,因爲在我看來,這不是Jmeter的問題 –

回答

1

關於jmeter,ab,tsung等的好處是它們可以在相對較短的時間內爲您提供聚合指標,但它們無法執行javascript。他們無法測量DOM的創建速度。他們不會加載外部資源,如圖像,JavaScript,樣式。他們對壓力測試很有幫助,但這不是這種情況。

當測量網絡的性能,你需要知道:

  • 你到底要測量? - domLoading,domInteractive,domContentLoaded或者其他Performance Timing Interface,
  • 你想使用哪種統計方法? - p95median。平均不是最好的選擇。
  • 什麼時候? - 總是在同一時間進行測試,以使測試具有可比性,
  • 從哪個位置? - 你可以做的最好的是產生專門的服務器位於密切到您的產品,
  • 你有多想相信結果? - 選擇樣本數據的大小,例如,如果你接受95%的置信區間的誤差3%的保證金,然後選擇1067

對於做可以使用https://github.com/msn0/sweter這樣綜合性能測量。它測量timeToFirstByte,domInteractivedomComplete時間。它可以安排在同一時間運行測試。Sweter可以將原始數據報告給ElasticSearch,控制檯,json文件或任何你想要的地方。

不同的話題是真實用戶測量。已經有很好的工具,例如NewRelic

0

那麼你還沒有提到你真正想測量的指標。但我認爲你可以使用兩個簡單的工具來測試服務器端和瀏覽器的性能。

  1. PhantomJS和HAR文件:PhantomJS是一個Webkit無頭瀏覽器,具有JavaScript API。你可以使用Javascript編寫腳本來完成幾乎所有的事情(包括JavaScript渲染)。使用它來生成HAR文件,以便您可以分析所有請求中的性能瓶頸。

  2. 導航計時API:現代瀏覽器都支持它給你約時序細節渲染的瀏覽器,包括像domLoading所有重要指標導航計時數據,domInteractive等