2016-06-14 87 views
0

我被分配在生產目前關於騾子流應用以下任務:如何測試Mule應用程序流?

  • 到商店客戶端IP它是使用Web服務
  • 爲了實現限制到十次,每次IP控制可以每天向網站詢問

我對Java核心和SQL有一定的瞭解,但是對於Mule來說是空的背景。我可以問的所有人都處於相同的情況。

一旦我得到了應用程序包(一個是目前在生產中)運行起來,我已經停止,並添加以下內容到流量:一些初步

  1. 子流任務,我添加了一個數據庫元素來存儲正在使用web服務的計算機的IP(user_request是我剛剛在存儲IP和連接日期的DB中創建的表):

insert into user_request values (#[MULE_REMOTE_CLIENT_ADDRESS], #[function:datestamp:dd-MM-yy])

  • 問網站,數據庫元件執行一個選擇查詢,以提供一個選擇一些輸入。根據請求做是爲了網站或不是那些投入的價值:
  • 數據庫(選擇) - >選擇 - >問問要不要網站取決於選擇輸出

    所以,在那裏,我已經加入到執行選擇和額外的輸出是當前IP和當天user_request表的計數,因此它可以提供選擇與原來的輸入像往常一樣也是這個額外的數據庫元素一個(我只複製我添加的suquery):

    SELECT COUNT(*) as TRIES FROM USER_REQUEST 
    WHERE IP_ADDRESS=#[MULE_REMOTE_CLIENT_ADDRESS] 
    AND REQUEST_DATE=#[function:datestamp:dd-MM-yy] 
    
  • 選擇,我已經加入該條件的路徑最後問的網站:
  • #[payload.get(0).TRIES < 10]

    達到此點,應用程序運行並沒有發生錯誤,但我不知道如何測試它。流量從哪裏開始?我如何測試它,因爲我是用戶?

    此外,如果您在上面使用的語法中看到任何錯誤,如果您告訴我,我將不勝感激。

    在此先感謝!

    回答

    3

    munit將要求您首先了解該過程的基本知識,但它是mule的主要測試工具。有了它,您將創建一個測試套件來執行各種流程,並驗證在給定知道輸入時正確的處理以可重複的方式進行。在測試中,您可以模擬關鍵調用,例如寫入數據庫,以便實際調用但未實際完成,以便不修改您的數據庫表。同樣,在讀取數據庫時,您可以實際進行調用以獲取已知數據,也可以返回模擬測試數據以執行流程中的所有路徑。

    +0

    好主意!!我將嘗試學習munit的基礎知識來設置項目的測試套件(我有一些關於junit的背景知識,也許它可以幫助我)...事情是,該項目還沒有任何測試¬¬..所以我想也許我會爲項目開發munit測試電池,然後將其更改添加到核心,然後再進行一些額外的測試以測試整個修改的項目....謝謝! – Arcones