使用python實現乙個通用協議測試工具

2021-09-06 05:25:06 字數 682 閱讀 1976

學習python也有一段時間,當初學的時候就是因為找不到什麼有效方法來實現乙個通用的協議測試工具.

實際場景如下:針對伺服器與客戶端通訊的私有協議(一般為二進位製流),通常彼此的除錯需要花費好些時間,且兩方面都需要有專人參與,費時費力,當時就設想,能否做乙個通用工具,通過xml配置協議結構,初始值,進行自動測試呢.原先有同事進行過這方面的探索,用c++實現了乙個協議測試工具,感覺工作量比較大,且通用性比較差,將其用到另乙個私有協議,需要改動太多的**.

當時就在考慮用c++編寫是否合適,後來在網上搜尋,發現python開發效率很高,且沒有型別申明的麻煩,最重要的是可以邊解釋,邊執行,當時就在想,是否用它能完成心中的構想.

學了幾個月python後,嘗試用其寫各種工具,發現開發效率相當高,應是到了實現構想的時候了.

羅列一下實際工具的樣子:

1、有介面(這樣才足夠友好)

2、可以讀取配置檔案(此配置檔案描述協議的結構,及解析的約束條件,考慮用xml實現)

3、列印出通訊的資料(傳送的結構,收回的結構)

實施的步驟:

1、實現乙個介面,內有load按鈕,相關訊息可以列印出來。

2、實現乙個讀取xml檔案的程式,並整理出xml格式

3、實現乙個通訊模組,完成傳送和接收資料功能。

4、整合成乙個簡單的通用協議測試工具

5、根據實際需要進行修正,使得更具實用性。

Go 寫乙個後台協程的通用套路

根據乙個 goroutine 是否直接依賴使用者互動,我們可以將 goroutine 分為兩大類,一類是直接依賴使用者互動的前台協程,比如 http server handler等 另一類是不直接依賴使用者互動的後台協程,比如 http server,定時任務協程等。前台協程隨使用者的互動開始執行,...

python協程初步 乙個生成器的實現

和列表那種一下佔據長度為n的記憶體空間不同的是,生成器在呼叫的過程中逐步佔據記憶體空間,因此有著很大的優勢 def myfibbo num a,b 0,1 count 0 while counta,b a b,a print b count 1 執行 myfibbo 10 def myfibbo n...

乙個通用純C佇列的實現

佇列並不是很複雜的資料結構,但是非常實用,這裡實現乙個佇列是因為在我的另一篇部落格非常精簡的linux執行緒池實現中要用到。佇列api定義如下 ifndef queue h included define queue h included typedef struct queue queue t q...