iT邦幫忙

0

壓力測試(錄制)程式

  • 分享至 

  • xImage

DEAR ALL

請問有無好用的壓力測試(錄制)的程式可以使用????

有FREE的嗎???

沒使用過這部份的軟體,所以問題上會較無法點出重點,再麻煩各位多多包含一下了,謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

10
fillano
iT邦超人 1 級 ‧ 2013-08-22 01:23:05
最佳解答

Apache Jmeter...這個很多人用,應該不難找資料。

看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2013-08-22 01:27:42 檢舉

...疑,我回過了...我以為我沒講到軟體XD

fillano iT邦超人 1 級 ‧ 2013-08-22 01:45:36 檢舉

用jmeter的話:

  1. 在「測試計畫」,至少先加一個執行緒群組
  2. 在「工作台」,新增一個http代理伺服器
  3. 設定代理伺服器,目標選擇到執行緒群組,或是裡面的控制器,這樣錄製的結果才會放進去(存檔的時候,工作台會被清空)
  4. 設定瀏覽器,把代理伺服器指向jmeter設定的port(host就是localhost)
  5. 按下http代理伺服器中的「開始」按鈕
  6. 使用瀏覽器瀏覽要測試的目標
  7. 按下http代理伺服器中的「停止」按鈕,結束錄製

根據測試腳本的需求,通常還需要調整錄好的東西。

klm2242 iT邦研究生 1 級 ‧ 2013-08-22 11:15:02 檢舉

除了這一套外,還有其他套嗎????

fillano iT邦超人 1 級 ‧ 2013-08-22 13:33:45 檢舉

花錢的話,有很多...例如HP的LoadRunner。

有特別的需求,讓你無法選擇Apache Jmeter嗎?

fillano iT邦超人 1 級 ‧ 2013-08-22 13:39:45 檢舉

也可以在這裡找找:http://www.opensourcetesting.org/performance.php,不過需要自己去過濾。我用過的主要還是Jmeter。

另外,對岸有專門討論測試的大站,也可以去找找:http://www.51testing.com/html/index.html

klm2242 iT邦研究生 1 級 ‧ 2013-08-23 10:13:26 檢舉

好的,謝謝fillano,我再思考一下好了!!!

klm2242 iT邦研究生 1 級 ‧ 2013-08-23 10:28:29 檢舉

突然想到一個問題,再讓我問一下~~@@~
JMeter可以做到說,我今天開一個網頁出來,然後點選新增=>輸入資料=>儲存,這樣子大概跑個100次嗎??
或者是做到新增=>輸入資料=>計算資料這樣嗎??

simon0627 iT邦新手 2 級 ‧ 2013-08-23 13:38:57 檢舉

然後點選新增=>輸入資料=>儲存,這樣子大概跑個100次嗎??
或者是做到新增=>輸入資料=>計算資料這樣嗎??

....感覺你比較需要一個按鍵記錄精靈毆飛

klm2242提到:
JMeter可以做到說,我今天開一個網頁出來,然後點選新增=>輸入資料=>儲存,這樣子大概跑個100次嗎??

可以

不過這不是JMeter的原意
JMeter的原意是
1.錄一個「新增->輸入資料=>儲存」
2.Concurrent 來個100個步驟1,看程式會不會掛
汗

fillano iT邦超人 1 級 ‧ 2013-08-23 16:58:24 檢舉

透過jmeter的proxy錄製下來的,是你操作網頁時實際發生的http request。所以測試過程是執行這些錄製下來的http request,記錄他的response,並不是真的去你的網頁上點選操作。測試是一個環環相扣的過程,如果你想確認頁面操作的問題,那應該透過像是casper.js或是selenium這一類的工具來做,這種測試方式通常就叫做整合測試。如果怕jmeter的錄製過程中因為頁面操作的問題而導致錄製的動作出問題,那你應該先解決整合測試中找到的問題,再來做壓力測試。

另外,就算不使用script,jmeter還支援設定變數資料來源,可以讓你建立比較複雜的測試資料,就看你的需求。

fillano iT邦超人 1 級 ‧ 2013-08-23 17:06:42 檢舉

計算資料...如果是在前端,那用jmeter恐怕無法模擬,因為他只是執行http request而已。而且前端跟你的伺服器負載無關,你用整合測試來驗證就可以了。

如果是在後端,那你讓後端程式來算就好了XD

jmeter也有驗證的功能,可以檢查http response是否符合預期,不過我沒有用過就是了。程式邏輯的問題,還是不要混在壓力測試中檢查。

不過的確有需要在壓力測試中驗證程式執行結果的狀況,如果你的會碰到race condition,這通常要在受壓時才會發生,那可以用驗證的功能來檢測。另外,也可以一面發動jmeter來產生壓力,然後一面跑casper.js或是selenium。有時候看數字沒感覺,我們也會在受壓的狀況下去操作系統,看看執行過程是否流暢。

klm2242 iT邦研究生 1 級 ‧ 2013-08-26 14:46:04 檢舉

感謝,我再來了解一下好了,所以我要若我只是要做「新增=>輸入資料=>儲存 ,跑1000次的話,是可以用jmeter的???

但若我要「新增=>輸入資料=>計算資料=>顯示結果=」這樣的話,就要用casper.js搭配jmeter???
是這樣嗎??

fillano iT邦超人 1 級 ‧ 2013-08-26 22:21:53 檢舉

在做壓力測試前,你應該會有一些目的,例如想知道你要測試的軟體,在你要跑的硬體與系統設定中,可以承載多少人同時使用等等。所以關鍵不是在跑1000次,而是模擬多少人同時使用。

利用他的proxy,可以把從登入,操作一些功能,登出等等過程所會發出的http request錄製下來,然後透過設定,可以用幾十個甚至上百個執行緒同時執行這個過程,來模擬同時有多人操作系統的狀況。測試完畢時,jmeter會產生統計報表,告訴你每個http request的操作狀況,包含request發出到收到response的時間(最短、最長、平均、中位數、標準差)、每秒發生多少次request(requests per second, throughput)、傳輸量等等。隨著壓力越來越大,通常時間會越久。

你可以設定一個標準,例如時間應該要在多少以內,然後看看多少人同時使用時,response time會超過標準。另外,也需要同時監測系統效能的一些指標,例如記憶體剩下多少、cpu使用的狀況等等,一起做評估。

通常透過壓力測試,也能看出很多問題,例如某個程式的response time慢很多,那可以透過修改程式讓他跑更快。有時候問題會出在伺服器的設定,例如執行緒不夠多所以無法同時承載那麼多人同時使用等等。

有時候問題也可能出在jmeter的機器的效能,無法施加足夠的壓力。由於jmeter可以同時驅動多台機器做測試,所以可以加更多的機器來達到足夠的壓力。

總之這是一個不斷反覆的過程,透過他可以觀察系統是否會在壓力下發生問題,並且驗證系統是否能承載你需要的使用量。也可以透過他了解系統會在怎樣的使用量時出現瓶頸,這樣可以在你系統到達瓶頸前做好準備(升級硬體、做cluster等等)。

klm2242 iT邦研究生 1 級 ‧ 2013-08-27 15:38:40 檢舉

謝謝,我目前在google找到這一篇Apache JMeter proxy Step-by-step.pdf的檔案在做參考~~~~這篇ok嗎?

klm2242 iT邦研究生 1 級 ‧ 2013-08-27 15:43:17 檢舉

pdf內的文章寫到HTTP Proxy指的是反向的還是正向的???我目前環境上只有反向代理伺服器

klm2242 iT邦研究生 1 級 ‧ 2013-08-27 17:10:03 檢舉

感謝您詳細的回答
不好意思,我想了一下大概發現我JMETER的疑問如下網址:
http://192.168.186.128:8069/?db=demo2#

舉這兩個為例好了~我的「路徑」是使用Chrome的檢示元素內的網頁路徑下去設定的~
然後可以通,但我想做到的是他能使用id及密碼登入demo資料庫
以及登入後可以web使用其它的模組…

我想測這個部份模擬多人使用,這部份的話,網路上好像資料不多~~~

klm2242 iT邦研究生 1 級 ‧ 2013-09-04 09:23:26 檢舉

謝謝,我知工具怎麼用了

12
海綿寶寶
iT邦大神 1 級 ‧ 2013-08-21 20:54:40

1.您不是問過了嗎?答案不符需求嗎?
2.建議可參加iT邦第6回交流聚,剛好要分享壓力測試這個主題
筆記

klm2242 iT邦研究生 1 級 ‧ 2013-08-22 11:15:21 檢舉

對,我有問過,但我想再問有無其他套~~~

klm2242 iT邦研究生 1 級 ‧ 2013-08-22 11:27:22 檢舉

謝謝,我有報名了!!@@~

我要發表回答

立即登入回答