日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

XMind2TestCase自定义测试用例设计模板

發布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XMind2TestCase自定义测试用例设计模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

思維導圖生成測試用例

  • 背景
  • 示例展示
  • 安裝XMind2TestCase
    • 改動后的用例模板
    • 生成的測試用例
  • 改源碼
    • zentao模塊
    • parser模塊
  • 執行
    • API調用
  • web界面
    • 命令行
  • 導入禪道
  • 結語


背景

引用官方的說明

軟件測試過程中,最重要、最核心就是測試用例的設計,也是測試童鞋、測試團隊日常投入最多時間的工作內容之一。
然而,傳統的測試用例設計過程有很多痛點:

  • 使用Excel表格進行測試用例設計,雖然成本低,但版本管理麻煩,維護更新耗時,用例評審繁瑣,過程報表統計難…
  • 使用TestLink、TestCenter、Redmine等傳統測試管理工具,雖然測試用例的執行、管理、統計比較方便,但依然存在編寫用例效率不高、思路不夠發散、在產品快速迭代過程中比較耗時等問題…
  • 公司自研測試管理工具,這是個不錯的選擇,但對于大部分小公司、小團隊來說,一方面研發維護成本高,另一方面對技術要有一定要求…

基于這些情況,現在越來越多公司選擇使用思維導圖這種高效的生產力工具進行用例設計,特別是敏捷開發團隊。

事實上也證明,思維導圖其發散性思維、圖形化思維的特點,跟測試用例設計時所需的思維非常吻合,所以在實際工作中極大提升了我們測試用例設計的效率,也非常方便測試用例評審。

但是與此同時,使用思維導圖進行測試用例設計的過程中也帶來不少問題:

  • 測試用例難以量化管理、執行情況難以統計;
  • 測試用例執行結果與BUG管理系統難以打通;
  • 團隊成員用思維導圖設計用例的風格各異,溝通成本巨大;

于是,這時候 XMind2TestCase 就應運而生了,該工具基于 Python 實現,通過制定測試用例通用模板, 然后使用 XMind 這款廣為流傳且開源的思維導圖工具進行用例設計。 其中制定測試用例通用模板是一個非常核心的步驟(具體請看使用指南),有了通用的測試用例模板,我們就可以在 XMind 文件上解析并提取出測試用例所需的基本信息, 然后合成常見測試用例管理系統所需的用例導入文件。這樣就將 XMind 設計測試用例的便利與常見測試用例系統的高效管理結合起來了!

當前 XMind2TestCase 已實現從 XMind 文件到 TestLink 和 Zentao(禪道) 兩大常見用例管理系統的測試用例轉換,同時也提供 XMind 文件解析后的兩種數據接口 (TestSuites、TestCases兩種級別的JSON數據),方便快速與其他測試用例管理系統打通。


示例展示

官方的示例

Web轉換工具

轉換后用例預覽

禪道(ZenTao)導入結果示例


安裝XMind2TestCase

pip3 install xmind2testcase

或者升級

pip3 install -U xmind2testcase
# 實踐 在開始之前先定義咋們的測試用例模板,官方的用例模板不太適合我的書寫習慣,所以我把它稍微改改,先看看官網的,適合你就不用改啦。 ## 官方用例模板

改動后的用例模板

生成的測試用例

我本地沒搭建禪道,用Excel表格來展示,跟禪道一致。

  • 我這里用例標題集成了前置條件+用例描述,方便禪道執行多條用例時在用例標題里能看到前置條件,不然得點擊進去用例詳情才能看到,因人而異
  • 大家都看到123這些標識,它們有兩個作用,1是標記這里是測試用例描述,2是標記優先級
  • 一條測試用例對應一個期待結果

  • 改源碼

    zentao模塊

    1.case_apply_phase屬性:用例階段我固定了功能測試

    def gen_a_testcase_row(testcase_dict):case_module = gen_case_module(testcase_dict['suite'])case_title = testcase_dict['name']case_precontion = testcase_dict['preconditions']case_step, case_expected_result = gen_case_step_and_expected_result(testcase_dict['steps'])case_keyword = ''case_priority = gen_case_priority(testcase_dict['importance'])case_type = gen_case_type(testcase_dict['execution_type'])case_apply_phase = '功能測試'# case_apply_phase = gen_case_apply_phase(testcase_dict['summary'])'''生成測試用例的字段在這里'''row = [case_module, case_title, case_precontion, case_step, case_expected_result, case_keyword, case_priority, case_type, case_apply_phase]return row

    測試階段默認值轉換

    def gen_case_apply_phase(case_apply_phase):if case_apply_phase=='無':return '功能測試階段'else:return case_apply_phase

    2.把用例優先級的高中低換了下

    # 沒有定義用例優先級則默認3級 def gen_case_priority(priority):# mapping = {1: '高', 2: '中', 3: '低'}mapping = {1: 1, 2: 2, 3: 3,4:4}if priority in mapping.keys():return mapping[priority]else:return 3

    parser模塊

    1.把原先的產品名(中心主題)改為功能模塊名,輸出文件名字一致

    def sheet_to_suite(root_topic):"""convert a xmind sheet to a `TestSuite` instance"""suite = TestSuite()root_title = root_topic['title']separator = root_title[-1]if separator in config['valid_sep']:logging.debug('find a valid separator for connecting testcase title: %s', separator)config['sep'] = separator # set the separator for the testcase's titleroot_title = root_title[:-1]else:config['sep'] = ' 'suite.name = root_title# 直接用產品名字作為功能模塊名global my_titlemy_title = root_titlesuite.details = root_topic['note']suite.sub_suites = []for suite_dict in root_topic['topics']:suite.sub_suites.append(parse_testsuite(suite_dict))return suite def parse_testsuite(suite_dict):testsuite = TestSuite()#直接用產品名字作為模塊名,在sheet_to_suite定義全局變量my_titletestsuite.name = my_titletestsuite.details = suite_dict['note']testsuite.testcase_list = []logging.debug('start to parse a testsuite: %s', testsuite.name)for cases_dict in suite_dict.get('topics', []):for case in recurse_parse_testcase(cases_dict):testsuite.testcase_list.append(case)logging.debug('testsuite(%s) parsing complete: %s', testsuite.name, testsuite.to_dict())return testsuite

    3.用例類型和用例階段設置

    def parse_a_testcase(case_dict, parent):testcase = TestCase()topics = parent + [case_dict] if parent else [case_dict]testcase.name = gen_testcase_title(topics)preconditions = gen_testcase_preconditions(topics)testcase.preconditions = preconditions if preconditions else '無'summary = gen_testcase_summary(topics)'''testcase.summary:用例階段,配合gen_testcase_type使用'''testcase.summary = summary if summary else '無'execution_type = gen_testcase_type(topics)'''testcase.execution_type:用例類型'''testcase.execution_type = execution_type if execution_type else '無'testcase.importance = get_priority(case_dict) or 2step_dict_list = case_dict.get('topics', [])if step_dict_list:testcase.steps = parse_test_steps(step_dict_list)# the result of the testcase take precedence over the result of the teststeptestcase.result = get_test_result(case_dict['markers'])if testcase.result == 0 and testcase.steps:for step in testcase.steps:if step.result == 2:testcase.result = 2breakif step.result == 3:testcase.result = 3breaktestcase.result = step.result # there is no need to judge where test step are ignoredlogging.debug('finds a testcase: %s', testcase.to_dict())return testcase def gen_testcase_type(topics):'''用例階段調用'''labels = [topic['label'] for topic in topics]labels = filter_empty_or_ignore_element(labels)return config['type_sep'].join(labels)

    我這里需要改動的代碼到這里結束了

    執行

    API調用

    這里說下我這里執行,官網有比較詳細的執行教程點這里跳轉
    這段代碼加在zentao.py下運行即可

    if __name__ == '__main__':xmind_file = '/Users/xxx/Downloads/xMind2testCase示例.xmind'zentao_csv_file = xmind_to_zentao_csv_file(xmind_file)print('Conver the xmind file to a zentao csv file succssfully: %s', zentao_csv_file)

    web界面

    使用命令,端口可自定義

    xmind2testcase webtool 8000

    命令行

    用法:

    xmind2testcase [path_to_xmind_file] [-csv] [-xml] [-json]

    示例:

    xmind2testcase /path/to/testcase.xmind => output testcase.csv、testcase.xml、testcase.jsonxmind2testcase /path/to/testcase.xmind -csv => output testcase.csvxmind2testcase /path/to/testcase.xmind -xml => output testcase.xmlxmind2testcase /path/to/testcase.xmind -json => output testcase.json

    導入禪道

    1.將XMind用例文件解析為禪道導入文件,用禪道的用例上傳功能,把xx.csv上傳即可

    xmind2testcase XMind測試用例模板.xmind -csv ==> XMind測試用例模板.csv

    2.將XMind用例文件轉成json數據,用禪道的接口post上去,我本地沒有環境,沒法給出示例,有環境的小伙伴幫忙補充一下。

    結語

    以上是根據我個人使用習慣來自定義,不一定適合各位小伙伴,有自定義需求的小伙伴可以看看源碼或者留言評論私信。

    最后的最后,各位的關注、點贊、收藏、碎銀子打賞是對我最大的支持,謝謝大家!
    需要源碼的小伙伴關注微信公眾號ID:gameTesterGz
    或掃描二維碼關注回復xmind用例即可

    總結

    以上是生活随笔為你收集整理的XMind2TestCase自定义测试用例设计模板的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。