快速設計測試案例並匯入TestLink
本文我們將使用xmind設計測試案例,並匯入到TestCase管理系統TestLink。
原理
Xmind生成的思維導圖以 .xmind 為副檔名,其實這本質上是一個zip壓縮檔案。這裡略帶一點小知識。
zip這一世界通用壓縮標準是美國20世紀80年代著名程式設計師Phil Katz 發明的。當時為了對抗商業壓縮軟體ARC(缺錢買不起),Philip Katz 製作出了PKZIP,因為免費而且開放,越來越多的軟體都內嵌支援zip,包括Windows作業系統。你可以使用任何一種文字編輯器開啟zip檔案,檔案的頭兩個字母為 PK。
xmind解壓以後,裡面主要由一些xml檔案構成,解析content.xml 和 comment.xml 就可以獲得思維導圖的結構和主要文字內容。
xmind2testlink
這是一個我使用Python實現對xmind進行解析的PyPI包,有了它你可以很方便地將xmind轉化成其他系統使用的格式,比如TestLink。
安裝和使用
使用pip可以快速安裝xmind2testlink。
pip install xmind2testlink -U
安裝後預設就提供了命令列轉換功能,可以將xmind轉成可以匯入testlink的xml檔案。
xmind2testlink /path/to/testcase.xmind
Generated: testcase.xml
如果你想自己程式設計使用中間物件,可以匯入xmind_parser或者testlink_parser中的方法。
from xmind2testlink.xmind_parser import *
from xmind2testlink.testlink_parser import *
# do your stuff
使用須知 v1
並不是所有的xmind都可以順利被xmind2testlink識別,因為我是按照一定規律去分析xmind結構的,所以如果你要使用這個小工具,那麼請你遵循一些簡單的遊戲規則。
輸出結果:
如圖,你的xmind應該和上圖結構一致:
- 預設的中心主題不會被轉換,預設從第一層子主題開始轉換。
- 第一層子主題會被識別為 TestSuite。
- TestSuite 的子主題 會被識別為 TestCase。
- TestCase 的下級分支為 TestStep 和 Expected Result。
- 你可以給 TestSuite,TestCase加上 Note,這會被識別為Summary 欄位。
- 你可以給TestCase 加上 Comment,這會被識別為 Preconception 欄位。
- 你可以使用數字Marker來為TestCase定義優先順序。
- 你可以使用感嘆號
!
來註釋掉不想匯入的任意分支。
使用須知 v2
在使用V1的規則一段時間後,發現不是特別xmind,xmind真正強大的地方在於發散思維整理,如果按照前面的規則使用xmind,會有很大的限制,於是我升級了xmind2testlink,稱之為V2。看圖:
輸出結果:
基於V1,補充的規則如下:
- 根主題必須加上一個小星星,這是用來區分V1和V2的標識。
- 第一層子主題還是會被識別為 TestSuite。
- 之後的主題可以自由擴充套件,如果一個主題被標記了priority那麼意味著case到此結束。
- 如果沒有主題被標記priority,預設case取到最後一個主題。
- 預設使用空格連線case子主題,你可以指定其他連線符(根主題的最後一個字元)。
- TestCase 的下級分支為 TestStep 和 Expected Result。
- 所有case子主題的Summary和Preconception會被連線起來。
- 你可以給 TestSuite,TestCase加上 Note,這會被識別為Summary 欄位。
-
!
開頭的所有主題都會被自動忽略,可以用來隱藏或者註釋某些不想匯入的內容。
照舊,這裡有一個示例檔案(Test case by xmind v2.xmind),看一下就明白了。其實Github上的英文文件描述更清楚一下,有能力的你還是去看一下。
進階用法
可能不是每個人都瞭解Python或者安裝了Python,那麼這是你可以將xmind2testlink部署成一個網站,步驟也非常簡單。
# clone this git repo ahead
cd /path/to/xmind2testlink/web
pip install -r requirements.txt -U
python application.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
這時你啟動瀏覽器就可以看到一個web版的轉換介面。
這是一個由Flask寫的簡單程式,你可以將其部署到專門的伺服器,詳情請查閱官方文件。
小結
其實在實現一個小工具的過程中,從構思想法到實現,有很多內容和未知需要去探索。xmind2testlink 涉及到的知識點也不少,比如 PyPI 打包釋出,python讀取zip檔案,解析xml,Flask,網站前後期,伺服器部署,持續整合,單元測試等等,我個人收穫不小。
如果你工作或生活也有各種想法,不如動手去做,失敗了沒啥大不了的,萬一成功了呢。
關於作者:Toby Qin, Python 技術愛好者,目前從事測試開發相關工作,轉載請註明原文出處。