2010-10-18 64 views
1

嗯,我有以下問題。我想強調測試部署在Tomcat服務器上的我的應用程序 。我想測試的情況如下: 用戶上傳文件,文件被轉碼爲另一種格式,新文件被 下載回用戶設備。 我使用線程模擬每個用戶(三種操作模式爲三種方法)。 我創建了一個類型爲newFixedThreadPool(30)的線程池執行器,並且我執行了 這三個方法實現了Runnable的一個類的run方法, 在for循環中被調用了300次迭代(每次迭代 是一個新用戶)。 在主:帶線程池執行程序的壓力測試應用程序

ExecutorService的執行人= Executors.newFixedThreadPool(NTHREDS);

for (int i = 0; i < 300; i++) { 
    Runnable worker = new MyRunnable(i); 
     executor.execute(worker); 
    } 
executor.shutdown(); 

和MyRunnable類

公共無效的run(){
testPostFile();testPSXFileRename(); testGetFile(); }

public static void testPostFile() {} 
    public static void testPSXFileRename() {} 
    public static void testGetFile(); 

是我的做法正確嗎?或者是,我錯過了

  • 1線程= 1個用戶(帖子,轉碼,獲取)

  • 第二個線程= 1個用戶(帖子,轉碼,獲取)等

有棘手的部分

回答

2

看來你正在嘗試做負載測試和一些單元測試。嘗試並分開你的任務。

當談到負載/壓力測試時,JMeter是一個很好的開源方式來執行負載測試。 JMeter允許你記錄腳本,然後你可以根據它來模擬負載。您可以搜索YouTube的某些getting started videos

如果您正在進行單元測試,請使用JUnit

讓你的單元測試確保事情在功能上是正確的,並通過負載測試來確定你的服務器在負載下如何反應。

+0

謝謝。我知道這些工具,但我想開發自己的代碼 – Antonis 2010-10-18 19:26:05

+0

還有其他建議嗎? – Antonis 2010-10-19 10:25:34

+1

你知道你的服務器可以承受多少負載嗎?一次產生300個請求可能無法爲您提供所需的負載測試。如果這300個請求每個需要2ms,那麼在您有時間捕捉正在發生的事情之前,所有事情都可能完成。您可能希望通過在每次迭代之間進行休眠來將這些空間隔開,以便在系統上獲得一致的負載。可能添加第二個循環來控制X數量的線程被控制的次數。 – Sean 2010-10-19 13:13:14