1、背景java
軟件測試過程當中,最重要、最核心就是測試用例的設計,也是測試童鞋、測試團隊平常投入最多時間的工做內容之一。python
然而,傳統的測試用例設計過程有不少痛點:git
基於這些狀況,如今愈來愈多公司選擇使用思惟導圖這種高效的生產力工具進行用例設計,特別是敏捷開發團隊。github
事實上也證實,思惟導圖其發散性思惟、圖形化思惟的特色,跟測試用例設計時所需的思惟很是吻合,因此在實際工做中極大提高了咱們測試用例設計的效率,也很是方便測試用例評審。web
可是與此同時,使用思惟導圖進行測試用例設計的過程當中也帶來很多問題:json
綜合以上狀況,咱們能夠發現不一樣的測試用例設計方式,各有各個的優劣。markdown
那麼問題來了,咱們能不能將它們各自優勢合在一塊兒呢?這樣不就能夠提高咱們的效率了!ide
因而,這時候 XMind2TestCase 就應運而生了,該工具基於 Python 實現,經過制定測試用例通用模板,
而後使用 XMind 這款廣爲流傳且開源的思惟導圖工具進行用例設計。
其中制定測試用例通用模板是一個很是核心的步驟(具體請看使用指南),有了通用的測試用例模板,咱們就能夠在 XMind 文件上解析並提取出測試用例所需的基本信息,
而後合成常見測試用例管理系統所需的用例導入文件。這樣就將 XMind 設計測試用例的便利與常見測試用例系統的高效管理結合起來了!工具
當前 XMind2TestCase 已實現從 XMind 文件到 TestLink 和 Zentao(禪道) 兩大常見用例管理系統的測試用例轉換,同時也提供 XMind 文件解析後的兩種數據接口
(TestSuites、TestCases兩種級別的JSON數據),方便快速與其餘測試用例管理系統打通。測試
pip3 install xmind2testcase
pip3 install -U xmind2testcase
Usage:
xmind2testcase [path_to_xmind_file] [-csv] [-xml] [-json]
Example:
xmind2testcase /path/to/testcase.xmind => output testcase.csv、testcase.xml、testcase.json
xmind2testcase /path/to/testcase.xmind -csv => output testcase.csv
xmind2testcase /path/to/testcase.xmind -xml => output testcase.xml
xmind2testcase /path/to/testcase.xmind -json => output testcase.json
Usage:
xmind2testcase [webtool] [port_num]
Example:
xmind2testcase webtool => launch the web testcase convertion tool locally -> 127.0.0.1:5001
xmind2testcase webtool 8000 => launch the web testcase convertion tool locally -> 127.0.0.1:8000
import json
import xmind
from xmind2testcase.zentao import xmind_to_zentao_csv_file
from xmind2testcase.testlink import xmind_to_testlink_xml_file
from xmind2testcase.utils import xmind_testcase_to_json_file
from xmind2testcase.utils import xmind_testsuite_to_json_file
from xmind2testcase.utils import get_xmind_testcase_list
from xmind2testcase.utils import get_xmind_testsuite_list
def main():
xmind_file = 'docs/xmind_testcase_template.xmind'
print('Start to convert XMind file: %s' % xmind_file)
zentao_csv_file = xmind_to_zentao_csv_file(xmind_file)
print('Convert XMind file to zentao csv file successfully: %s' % zentao_csv_file)
testlink_xml_file = xmind_to_testlink_xml_file(xmind_file)
print('Convert XMind file to testlink xml file successfully: %s' % testlink_xml_file)
testsuite_json_file = xmind_testsuite_to_json_file(xmind_file)
print('Convert XMind file to testsuite json file successfully: %s' % testsuite_json_file)
testcase_json_file = xmind_testcase_to_json_file(xmind_file)
print('Convert XMind file to testcase json file successfully: %s' % testcase_json_file)
testsuites = get_xmind_testsuite_list(xmind_file)
print('Convert XMind to testsuits dict data:\n%s' % json.dumps(testsuites, indent=2, separators=(',', ': '), ensure_ascii=False))
testcases = get_xmind_testcase_list(xmind_file)
print('Convert Xmind to testcases dict data:\n%s' % json.dumps(testcases, indent=4, separators=(',', ': ')))
workbook = xmind.load(xmind_file)