前言(僅看介紹本身的可以略過)
在離職後的一段時間裡,個人總結了過去幾年工作的心得,結合以往的工作經驗。重新思考并重構了前些年做的一些東西(主要是測試相關),産生了設計AutoTest這樣的一個測試工具/系統的想法,當然其實這樣的想法一直都有自己也曾試圖慢慢去完善及實作,不過工作的原因一直沒有太大進展。而離職後自己并沒有忙于找工作,也使得自己有時間去實作自己的想法。
另外有篇關于AutoTest的系統設計的簡單介紹 【一個基于.NET平台的自動化/壓力測試系統設計簡述(可獨立運作,提供源碼)】
AutoTest被設計為一個基于協定的支援分布式部署測試系統/工具。
AutoTest支援自定義協定的定制,除支援基礎協定外,可根據公司或項目的特殊要求定制所需要的通信協定(定制過程僅需要修改AutoTest執行庫檔案,定制可參見【如何添加一種新Case協定】)
AutoTest以Runner為單個執行體,runner的行為由case檔案(腳本)檔案決定,工具本身可以加載任意數目runner(可以選擇加載不同case檔案),并且支援runner的并行執行,AutoTest同時支援分布式部署,您可以将case檔案即測試任務部署到遠端主機,AutoTest可以連接配接這些遠端主機,并控制這些遠端主機上runner以獲得更高性能。
AutoTest的case檔案(腳本)是一種基于xml并且完全符合xml規範的簡單描述檔案,該檔案描述case的執行方式,如執行需要的資料,斷言的處理,遇到錯誤的行為,及運作次數,延時等等您可能需要限定的内容。case檔案包含一個執行器描述(提供您協定可能需要的基礎資料,比如對于序列槽的序列槽号,波特率等,對于telnet的ip,登陸名密碼等···),還有任意數量的project節點,project中包含單個case體或循環體

以上為主runner運作時界面,主runner中每個case執行時都會顯示獨立的執行過程,并會在界面上有明顯回報動作,執行完成後,您可以選擇輸出測試報告,測試報告以html的形式呈現,報告中會包含執行細節。
上圖為多runner同時執行的界面,這裡可以建構或虛拟許多不同的使用者行為對測試對象進行測試。您可以指定任意runner加載任意的case檔案,然後選擇任意的runner進行執行或者一起執行
上圖為AutoTest連接配接遠端主機進行測試,要連接配接遠端主機您需要先在遠端主機上運作AutoTest的分布式部署程式(上圖中的3台遠端測試主機實際上運作在一台主機上)
使用分布式測試時請先在防火牆中允許您指定的服務端口(或關閉防火牆)
關于Case檔案
目前case檔案支援簡單的參數化,您可以預定義一些您需要的需要且可能随時改變的資料設定為可參數化的資料,這些資料可以在case檔案中如變量一樣被使用,也可以在運作中被運作結果所替代或新增。(跟其類似的還支援簡單的靜态資料如随機數,系統時間等等)
支援的斷言包括【default/is/not/like/endwith/startwith/contain/uncontain】
斷言支援多種動作,如達/未達到條件時,跳轉(goto)到指定case,或者失敗後進行重試,或進行語音提示報警
對于多條cace組成的業務可以選擇性進行循環(循環中支援任意次的循環嵌套)
更多關于Case檔案的内容見【CASE 檔案 範例】