天天看點

使用知行之橋EDI系統做壓力測試時如何快速清除檔案記錄

作者:蘇月蔚

在EDI項目實施完成後,為了保證EDI系統可以在大資料量并發的情況下穩定運作,我們需要做壓力測試。

在做壓力測試時,會在短時間内産生大量的檔案,例如測試同時生成10000個EDI封包,多個端口短時間内可能就會産生大量的檔案及日志。如果需要性能調優,需要測試工作流在不同參數下的運作速度,我們需要進行多次測試,需要反複核對檔案處理的記錄,之前的測試記錄會讓我們核對起來不太友善。或者在做完壓力測試之後,我們需要清理不需要的檔案及記錄,如果打開每個端口的輸入和輸出清單去手動删除,無疑是比較麻煩的,今天的文章就來講解一下如何快速清除壓力測試産生的檔案及日志。

首先來了解一下知行之橋EDI系統的檔案、日志存儲的過程,端口處理完消息檔案之後,會産生傳輸日志以及檔案。端口處理過的檔案可以選擇是否保留消息副本,若不勾選,則無法在 輸出 和 輸入 頁籤下載下傳消息副本。

使用知行之橋EDI系統做壓力測試時如何快速清除檔案記錄

傳輸日志會預設存儲在知行之橋自帶的檔案資料庫中(Windows版為SQLite,Linux版為Derby)。

那麼在處理日志和檔案記錄時,可以參考以下兩種方式:

1.如果僅需清除日志,可以建立Script 端口,調用以下函數快速清除所有端口或指定端口的日志檔案

函數名稱(ops) 作用 參數
portDeleteTransactionLogs 删除傳輸日志

入參:ConnectorId=端口ID

Direction=需要删除的檔案夾可設定為send、receive

portListPorts 根據端口清單進行循環 出參:portid=目前端口名稱

腳本寫法參考:

删除全部傳輸日志

1

2

3

4

5

6

7

<rsb:call op="portListPorts" out="out">

<rsb:set attr="data.ConnectorId" value="[out.portid]"/>

<rsb:set attr="data.Direction" value="Send"/>

<rsb:call op="portDeleteTransactionLogs" in="data" />

<rsb:set attr="data.Direction" value="Receive"/>

<rsb:call op="portDeleteTransactionLogs" in="data" />

</rsb:call>

删除指定端口傳輸日志

1

2

3

4

5

6

<rsb:set attr="data.ConnectorId" value="端口名"/>

<rsb:set attr="data.Direction" value="Send"/>

<rsb:set attr="data.WorkspaceId" value="工作區ID"/>

<rsb:call op="portDeleteTransactionLogs" in="data" />

<rsb:set attr="data.Direction" value="Receive"/>

<rsb:call op="portDeleteTransactionLogs" in="data" />

使用知行之橋EDI系統做壓力測試時如何快速清除檔案記錄

如上圖所示,将以上腳本寫入Script端口的 設定 頁籤。

在Script端口的 輸出 頁籤,手動點選接收,此時會執行Script端口中所寫的腳本,等待執行完成即可。

使用知行之橋EDI系統做壓力測試時如何快速清除檔案記錄

2.删除所有日志以及檔案

知行之橋EDI系統的檔案存儲于data檔案夾,日志存儲于db的檔案資料庫中,如果需要重置可以對這兩個檔案夾進行删除,例如在進行多輪壓力測試時需要省去繁雜的删除記錄操作,快速進入下一輪,在測試結束後再統一清除記錄,可以參考以下操作步驟:

1)導出目前工作流

2)停止知行之橋服務

3)對data、db檔案夾進行重命名,例如data_backup1,db_backup1

4)重新開機知行之橋服務,這個時候可以發現,data、db檔案夾重新生成

5)導入工作流

6)待所有測試任務結束後,批量删除備援的檔案夾,例如rm -rf data_backup*

以上就是快速清除傳輸日志以及檔案的方法,其實此方法不止适用于壓力測試,如果需要手動删除檔案記錄、删除檔案釋放磁盤的空間,除了可以使用知行之橋自帶的歸檔/删除功能,也可以采用本文描述的方法。

使用知行之橋EDI系統做壓力測試時如何快速清除檔案記錄 | EDI通信專家