iT邦幫忙

0

casperjs有人有使用過嗎?

  • 分享至 

  • xImage

我想測網頁操作的一些壓力測試的部份~
請問有人使用過casperjs這一套的嗎
或者有其他free的軟體比較好用的??

我想測試到例如:我點一個銷貨單,然後按新增=>填資料=>儲存這些流程這樣~

player iT邦大師 1 級 ‧ 2013-07-17 18:13:31 檢舉
網站壓力測試工具
http://blog.lyhdev.com/2013/02/10-ab-siege-curl-loader-httperf.html
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

16
fillano
iT邦超人 1 級 ‧ 2013-07-16 13:05:48
最佳解答

我自己是用Apache Jmeter

它有proxy可以讓你錄製腳本,還可以用多台機器協同發動測試。casperjs比較適合拿來做整合測試,畢竟一個headless browser的overhead有點大。

另外,在使用jmeter前,可以用ab來建立一些性能數據來做分析的基礎。如果想知道系統在正常使用狀況下的一些數據,可以用fiddler2錄製操作過程,它可以根據錄製的操作過程彙整一些數據做為壓測的比較基礎。

看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2013-07-16 13:17:30 檢舉

我通常還會分析伺服器的log,看看伺服器記錄的受壓狀況,主要是統計測試時的request per second。不過為了取得需要的統計數據,程式是自己寫的。

klm2242 iT邦研究生 1 級 ‧ 2013-07-16 14:14:39 檢舉

感謝你的詳細解釋~~~如果我要了解您所說的這些的話,有何參考資料可給我看的呢???以您所熟悉的壓力測試方法的話,我需要了解那些??麻煩了,謝謝!

klm2242 iT邦研究生 1 級 ‧ 2013-07-16 14:17:54 檢舉

補充一下,以您所說的測試方法的話,前置作業到執行的流程您總共做了那些呢?

fillano iT邦超人 1 級 ‧ 2013-07-16 16:53:39 檢舉

通常還是會一面做一面改...

  1. 用ab,逐步提高concurrent level,看看系統的瓶頸點
  2. 用fiddler2收集一般使用狀況下的數據,例如模仿使用者登入、操作系統一段時間,然後看看這一段時間的request量、流量、不同file type以及response status的統計等等,還有實際與系統互動所花的時間(使用時其實有很多idle time)。fiddler2的記錄很詳盡,有些數字如果他並沒有統計,其實也可以利用他的記錄來跑出來。
  3. 用jmeter錄製腳本,然後用腳本來做壓力測試(需要不斷調整腳本,讓他貼近實際使用狀況)
  4. 從伺服器log來分析伺服器收到的request per second做比對(1, 3都需要)

通常在測試前,會有一些目標(例如預計的會員數目),然後用2配合一些假設,可以估計系統要承載這樣的會員數目,會需要怎樣的條件。然後再用jmeter來做測試,看看系統在受壓的條件下,是否可以正常運行。

通常需要非常多的測試機(跑jmeter),才能產生足夠的壓力,之前在AWS做測試,8台micro instance還打不趴一台large instance。

另外,壓力測試也可能需要好幾個回合,第一次是針對程式本身的效能瓶頸,然後針對系統最佳化,最後可能做上線前的負載力驗證等等。

用AWS有一些好處,就是他提供了一些monitor機制可以做參考,從使用量的報表也可以撈出一些參考資訊。

要自己分析server log的話,寫程式也會碰到一些....之前測試就有跑出上百萬筆的資料/超過500mb的log,程式沒寫好會把記憶體吃光XD。

fillano iT邦超人 1 級 ‧ 2013-07-16 16:58:13 檢舉

不過micro instance對於硬體資源的限制頗多,跑一段時間就會看到steal time飆到90%,然後可使用的cpu大概在6~7%...也許腳本沒問題的話,多花一點錢用好一點的instance跑會比較OK。

klm2242 iT邦研究生 1 級 ‧ 2013-07-16 17:51:55 檢舉

請問1. 用ab,逐步提高concurrent level,看看系統的瓶頸點,我有使用此跑過,但只是使用ab跑首頁這樣而已,看不太出系統的瓶頸點,如果我想測到:點一個銷貨單,然後按新增=>填資料=>儲存這些流程這樣的話,那我是否要對我要測試的東西有一個了解才行??或者是我只要了解工具的操作即可呢??,再麻煩請給我一些學習上的意見一下了,謝謝!

fillano iT邦超人 1 級 ‧ 2013-07-16 20:26:15 檢舉

benchmark不是一個絕對值,通常是拿來做簡單的比較用,不過必須是在同樣的測試條件下才有比較的意義,例如都是對特定頁面做測試。如果A伺服器在-c300而B伺服器在-c600會出現比較明顯的瓶頸,那大致可以推估B伺服器可以負荷A伺服器一倍的使用量。

另外,至少要對系統有一定的熟悉,才可能錄製出有效的腳本,至少是要會操作。另外,也可能需要在系統先建立一些測試資料,例如產品、帳號等等。另外,如果你的系統會讓使用者只能單次登入,那你恐怕需要準備非常多的測試帳戶,不然同一帳戶登入,另一次登入被取消,就不能正常操作系統了,這樣系統的壓力會跟預期不一樣。所以會需要根據系統來調整腳本以及測試資料,來模擬比較真實的使用狀況。

fillano iT邦超人 1 級 ‧ 2013-07-16 20:31:51 檢舉

補充一下,web server處理靜態檔案的效能很好,所以針對.php, .asp等等的程式來做ab會比較有用。

klm2242 iT邦研究生 1 級 ‧ 2013-07-17 00:25:19 檢舉

Thanks for your help, but I using Python Language, 使用測試的話,ab準確率高嗎

ted99tw iT邦高手 1 級 ‧ 2013-07-17 10:22:48 檢舉

Thanks for your help. But I am using Python Language, I wonder if ab is good for real world test as well?

總裁 iT邦好手 1 級 ‧ 2013-07-17 10:27:31 檢舉

Vielen Dank für Ihre Hilfe. Aber ich bin mit Python Language, frage ich mich, wenn ab ist gut für die reale Welt-Test, wie gut?

ขอบคุณสำหรับความช่วยเหลือของคุณ แต่ฉันใช้ภาษา Python ผมไม่ทราบว่าเป็นการทดสอบจริงในโลกเช่นเดียวกับการเริ่มต้นที่ดี?

ご協力いただきありがとうございます。しかし、私はPython言語を使用している、私はそれが現実世界のテストだけでなく、良いスタートであるかどうか分からないのですか?

도와 주셔서 감사 해요. 하지만 난 파이썬 언어를 사용하고, 나는 그것이 실제 테스트뿐만 아니라, 좋은 시작인지 몰라?

幫樓上補上泰/日/韓版 (轉自google翻譯)

ted99tw iT邦高手 1 級 ‧ 2013-07-17 10:35:52 檢舉

費公,秀一下你超強的德文...敲碗

總裁 iT邦好手 1 級 ‧ 2013-07-17 10:41:14 檢舉

泰大,我寫的那個GOOGLE說就是德文耶...難道她騙我...怒

ted99tw iT邦高手 1 級 ‧ 2013-07-17 10:51:47 檢舉

是因為第二句不夠順...偷笑

總裁 iT邦好手 1 級 ‧ 2013-07-17 11:01:09 檢舉

不是只有一句嗎??那來第二句??...疑惑

ted99tw iT邦高手 1 級 ‧ 2013-07-17 11:13:22 檢舉

在第一句後面那句..偷笑

fillano iT邦超人 1 級 ‧ 2013-07-17 13:35:42 檢舉

There's anothter stress testing tool, 'grinder', uses Python (it's Jython in JVM.) as it's scripting language. If you have an AWS account, maybe you can try this: Bees with machine guns.... It's in Python. It can bring up several AWS instances for "attacking" a website. I don't have experiences in these two though.

Besides, ab is just an execution file. So all you have to do is to 'execute' it, no whether in Python, bash, cmd prompt or any other environment.

fillano iT邦超人 1 級 ‧ 2013-07-17 13:36:38 檢舉

Grinder is here.

我要發表回答

立即登入回答