{ "info": { "author": "Devin", "author_email": "1324556701@qq.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# XMind2TestCase\n\n> **XMind2TestCase** \u5de5\u5177\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e2a\u9ad8\u6548\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u7684\u89e3\u51b3\u65b9\u6848\uff01\n\n\n### \u4e00\u3001\u80cc\u666f\n\n\u8f6f\u4ef6\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d\uff0c\u6700\u91cd\u8981\u3001\u6700\u6838\u5fc3\u5c31\u662f\u6d4b\u8bd5\u7528\u4f8b\u7684\u8bbe\u8ba1\uff0c\u4e5f\u662f\u6d4b\u8bd5\u7ae5\u978b\u3001\u6d4b\u8bd5\u56e2\u961f\u65e5\u5e38\u6295\u5165\u6700\u591a\u65f6\u95f4\u7684\u5de5\u4f5c\u5185\u5bb9\u4e4b\u4e00\u3002\n\n\u7136\u800c\uff0c\u4f20\u7edf\u7684\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u8fc7\u7a0b\u6709\u5f88\u591a\u75db\u70b9\uff1a\n- 1\u3001\u4f7f\u7528Excel\u8868\u683c\u8fdb\u884c\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\uff0c\u867d\u7136\u6210\u672c\u4f4e\uff0c\u4f46\u7248\u672c\u7ba1\u7406\u9ebb\u70e6\uff0c\u7ef4\u62a4\u66f4\u65b0\u8017\u65f6\uff0c\u7528\u4f8b\u8bc4\u5ba1\u7e41\u7410\uff0c\u8fc7\u7a0b\u62a5\u8868\u7edf\u8ba1\u96be...\n- 2\u3001\u4f7f\u7528TestLink\u3001TestCenter\u3001Redmine\u7b49\u4f20\u7edf\u6d4b\u8bd5\u7ba1\u7406\u5de5\u5177\uff0c\u867d\u7136\u6d4b\u8bd5\u7528\u4f8b\u7684\u6267\u884c\u3001\u7ba1\u7406\u3001\u7edf\u8ba1\u6bd4\u8f83\u65b9\u4fbf\uff0c\u4f46\u4f9d\u7136\u5b58\u5728\u7f16\u5199\u7528\u4f8b\u6548\u7387\u4e0d\u9ad8\u3001\u601d\u8def\u4e0d\u591f\u53d1\u6563\u3001\u5728\u4ea7\u54c1\u5feb\u901f\u8fed\u4ee3\u8fc7\u7a0b\u4e2d\u6bd4\u8f83\u8017\u65f6\u7b49\u95ee\u9898...\n- 3\u3001\u516c\u53f8\u81ea\u7814\u6d4b\u8bd5\u7ba1\u7406\u5de5\u5177\uff0c\u8fd9\u662f\u4e2a\u4e0d\u9519\u7684\u9009\u62e9\uff0c\u4f46\u5bf9\u4e8e\u5927\u90e8\u5206\u5c0f\u516c\u53f8\u3001\u5c0f\u56e2\u961f\u6765\u8bf4\uff0c\u4e00\u65b9\u9762\u7814\u53d1\u7ef4\u62a4\u6210\u672c\u9ad8\uff0c\u53e6\u4e00\u65b9\u9762\u5bf9\u6280\u672f\u8981\u6709\u4e00\u5b9a\u8981\u6c42...\n- 4\u3001...\n\n\n\u57fa\u4e8e\u8fd9\u4e9b\u60c5\u51b5\uff0c\u73b0\u5728\u8d8a\u6765\u8d8a\u591a\u516c\u53f8\u9009\u62e9\u4f7f\u7528**\u601d\u7ef4\u5bfc\u56fe**\u8fd9\u79cd\u9ad8\u6548\u7684\u751f\u4ea7\u529b\u5de5\u5177\u8fdb\u884c\u7528\u4f8b\u8bbe\u8ba1\uff0c\u7279\u522b\u662f\u654f\u6377\u5f00\u53d1\u56e2\u961f\u3002\n\n\u4e8b\u5b9e\u4e0a\u4e5f\u8bc1\u660e\uff0c\u601d\u7ef4\u5bfc\u56fe\u5176\u53d1\u6563\u6027\u601d\u7ef4\u3001\u56fe\u5f62\u5316\u601d\u7ef4\u7684\u7279\u70b9\uff0c\u8ddf\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u65f6\u6240\u9700\u7684\u601d\u7ef4\u975e\u5e38\u543b\u5408\uff0c\u6240\u4ee5\u5728\u5b9e\u9645\u5de5\u4f5c\u4e2d\u6781\u5927\u63d0\u5347\u4e86\u6211\u4eec\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u7684\u6548\u7387\uff0c\u4e5f\u975e\u5e38\u65b9\u4fbf\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u3002\n\n\u4f46\u662f\u4e0e\u6b64\u540c\u65f6\uff0c\u4f7f\u7528\u601d\u7ef4\u5bfc\u56fe\u8fdb\u884c\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u7684\u8fc7\u7a0b\u4e2d\u4e5f\u5e26\u6765\u4e0d\u5c11\u95ee\u9898\uff1a\n- 1\u3001\u6d4b\u8bd5\u7528\u4f8b\u96be\u4ee5\u91cf\u5316\u7ba1\u7406\u3001\u6267\u884c\u60c5\u51b5\u96be\u4ee5\u7edf\u8ba1\uff1b\n- 2\u3001\u6d4b\u8bd5\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u4e0eBUG\u7ba1\u7406\u7cfb\u7edf\u96be\u4ee5\u6253\u901a\uff1b\n- 3\u3001\u56e2\u961f\u6210\u5458\u7528\u601d\u7ef4\u5bfc\u56fe\u8bbe\u8ba1\u7528\u4f8b\u7684\u98ce\u683c\u5404\u5f02\uff0c\u6c9f\u901a\u6210\u672c\u5de8\u5927\uff1b\n- 4\u3001...\n\n\u7efc\u5408\u4ee5\u4e0a\u60c5\u51b5\uff0c\u6211\u4eec\u53ef\u4ee5\u53d1\u73b0\u4e0d\u540c\u7684\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u65b9\u5f0f\uff0c\u5404\u6709\u5404\u4e2a\u7684\u4f18\u52a3\u3002\n\n\u90a3\u4e48\u95ee\u9898\u6765\u4e86\uff0c\u6211\u4eec\u80fd\u4e0d\u80fd\u5c06\u5b83\u4eec\u5404\u81ea\u4f18\u70b9\u5408\u5728\u4e00\u8d77\u5462\uff1f\u8fd9\u6837\u4e0d\u5c31\u53ef\u4ee5\u63d0\u5347\u6211\u4eec\u7684\u6548\u7387\u4e86\uff01\n\n\u4e8e\u662f\uff0c\u8fd9\u65f6\u5019 **XMind2TestCase** \u5c31\u5e94\u8fd0\u800c\u751f\u4e86\uff0c\u8be5\u5de5\u5177\u57fa\u4e8e Python \u5b9e\u73b0\uff0c\u901a\u8fc7\u5236\u5b9a**\u6d4b\u8bd5\u7528\u4f8b\u901a\u7528\u6a21\u677f**\uff0c\n\u7136\u540e\u4f7f\u7528 **[XMind](https://www.xmind.cn/)** \u8fd9\u6b3e\u5e7f\u4e3a\u6d41\u4f20\u4e14\u5f00\u6e90\u7684\u601d\u7ef4\u5bfc\u56fe\u5de5\u5177\u8fdb\u884c\u7528\u4f8b\u8bbe\u8ba1\u3002\n\u5176\u4e2d\u5236\u5b9a**\u6d4b\u8bd5\u7528\u4f8b\u901a\u7528\u6a21\u677f**\u662f\u4e00\u4e2a\u975e\u5e38\u6838\u5fc3\u7684\u6b65\u9aa4\uff08\u5177\u4f53\u8bf7\u770b[\u4f7f\u7528\u6307\u5357](https://github.com/zhuifengshen/xmind2testcase/blob/master/webtool/static/guide/index.md)\uff09\uff0c\u6709\u4e86\u901a\u7528\u7684\u6d4b\u8bd5\u7528\u4f8b\u6a21\u677f\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5728 XMind \u6587\u4ef6\u4e0a\u89e3\u6790\u5e76\u63d0\u53d6\u51fa\u6d4b\u8bd5\u7528\u4f8b\u6240\u9700\u7684\u57fa\u672c\u4fe1\u606f\uff0c\n\u7136\u540e\u5408\u6210\u5e38\u89c1**\u6d4b\u8bd5\u7528\u4f8b\u7ba1\u7406\u7cfb\u7edf**\u6240\u9700\u7684**\u7528\u4f8b\u5bfc\u5165\u6587\u4ef6**\u3002\u8fd9\u6837\u5c31\u5c06 **XMind \u8bbe\u8ba1\u6d4b\u8bd5\u7528\u4f8b\u7684\u4fbf\u5229**\u4e0e**\u5e38\u89c1\u6d4b\u8bd5\u7528\u4f8b\u7cfb\u7edf\u7684\u9ad8\u6548\u7ba1\u7406**\u7ed3\u5408\u8d77\u6765\u4e86\uff01\n\n\u5f53\u524d **XMind2TestCase** \u5df2\u5b9e\u73b0\u4ece XMind \u6587\u4ef6\u5230 TestLink \u548c Zentao(\u7985\u9053) \u4e24\u5927\u5e38\u89c1\u7528\u4f8b\u7ba1\u7406\u7cfb\u7edf\u7684\u6d4b\u8bd5\u7528\u4f8b\u8f6c\u6362\uff0c\u540c\u65f6\u4e5f\u63d0\u4f9b XMind \u6587\u4ef6\u89e3\u6790\u540e\u7684\u4e24\u79cd\u6570\u636e\u63a5\u53e3\n\uff08TestSuites\u3001TestCases\u4e24\u79cd\u7ea7\u522b\u7684JSON\u6570\u636e\uff09\uff0c\u65b9\u4fbf\u5feb\u901f\u4e0e\u5176\u4ed6\u6d4b\u8bd5\u7528\u4f8b\u7ba1\u7406\u7cfb\u7edf\u6253\u901a\u3002\n\n\n### \u4e8c\u3001\u4f7f\u7528\u793a\u4f8b\n\n#### 1\u3001Web\u5de5\u5177\u793a\u4f8b\n\n![webtool](https://raw.githubusercontent.com/zhuifengshen/xmind2testcase/master/webtool/static/guide/webtool.png)\n\n#### 2\u3001\u8f6c\u6362\u540e\u7528\u4f8b\u9884\u89c8\n\n![testcase_preview](https://raw.githubusercontent.com/zhuifengshen/xmind2testcase/master/webtool/static/guide/xmind_to_testcase_preview.png)\n\n#### 3\u3001TestLink\u5bfc\u5165\u7ed3\u679c\u793a\u4f8b\n\n![testlink](https://raw.githubusercontent.com/zhuifengshen/xmind2testcase/master/webtool/static/guide/testlink.png)\n\n#### 4\u3001\u7985\u9053\uff08ZenTao\uff09\u5bfc\u5165\u7ed3\u679c\u793a\u4f8b\n\n![zentao](https://raw.githubusercontent.com/zhuifengshen/xmind2testcase/master/webtool/static/guide/zentao_import_result.png)\n\n\n### \u4e09\u3001\u5b89\u88c5\u65b9\u5f0f\n```\npip3 install xmind2testcase\n```\n\n\n### \u56db\u3001\u7248\u672c\u5347\u7ea7\n```\npip3 install -U xmind2testcase\n```\n\n\n### \u4e94\u3001\u4f7f\u7528\u65b9\u5f0f\n\n#### 1\u3001\u547d\u4ee4\u884c\u8c03\u7528\n```\nUsage:\n xmind2testcase [path_to_xmind_file] [-csv] [-xml] [-json]\n\nExample:\n xmind2testcase /path/to/testcase.xmind => output testcase.csv\u3001testcase.xml\u3001testcase.json\n xmind2testcase /path/to/testcase.xmind -csv => output testcase.csv\n xmind2testcase /path/to/testcase.xmind -xml => output testcase.xml\n xmind2testcase /path/to/testcase.xmind -json => output testcase.json\n```\n\n#### 2\u3001\u4f7f\u7528Web\u754c\u9762\n\n![web_tool_cli](https://raw.githubusercontent.com/zhuifengshen/xmind2testcase/master/webtool/static/guide/webtool_cli.png)\n\n```\nUsage:\n xmind2testcase [webtool] [port_num]\n\nExample:\n xmind2testcase webtool => launch the web testcase convertion tool locally -> 127.0.0.1:5001\n xmind2testcase webtool 8000 => launch the web testcase convertion tool locally -> 127.0.0.1:8000\n```\n\n#### 3\u3001API\u8c03\u7528\n```\nimport json\nimport xmind\nfrom xmind2testcase.zentao import xmind_to_zentao_csv_file\nfrom xmind2testcase.testlink import xmind_to_testlink_xml_file\nfrom xmind2testcase.utils import xmind_testcase_to_json_file\nfrom xmind2testcase.utils import xmind_testsuite_to_json_file\nfrom xmind2testcase.utils import get_xmind_testcase_list\nfrom xmind2testcase.utils import get_xmind_testsuite_list\n\n\ndef main():\n xmind_file = 'docs/xmind_testcase_template.xmind'\n print('Start to convert XMind file: %s' % xmind_file)\n\n zentao_csv_file = xmind_to_zentao_csv_file(xmind_file)\n print('Convert XMind file to zentao csv file successfully: %s' % zentao_csv_file)\n\n testlink_xml_file = xmind_to_testlink_xml_file(xmind_file)\n print('Convert XMind file to testlink xml file successfully: %s' % testlink_xml_file)\n\n testsuite_json_file = xmind_testsuite_to_json_file(xmind_file)\n print('Convert XMind file to testsuite json file successfully: %s' % testsuite_json_file)\n\n testcase_json_file = xmind_testcase_to_json_file(xmind_file)\n print('Convert XMind file to testcase json file successfully: %s' % testcase_json_file)\n\n testsuites = get_xmind_testsuite_list(xmind_file)\n print('Convert XMind to testsuits dict data:\\n%s' % json.dumps(testsuites, indent=2, separators=(',', ': '), ensure_ascii=False))\n\n testcases = get_xmind_testcase_list(xmind_file)\n print('Convert Xmind to testcases dict data:\\n%s' % json.dumps(testcases, indent=4, separators=(',', ': ')))\n\n workbook = xmind.load(xmind_file)\n print('Convert XMind to Json data:\\n%s' % json.dumps(workbook.getData(), indent=2, separators=(',', ': '), ensure_ascii=False))\n\n print('Finished conversion, Congratulations!')\n\n\nif __name__ == '__main__':\n main()\n```\n\n#### 4\u3001XMind\u7528\u4f8b\u6587\u4ef6\u8f6c\u4e3aJSON\u6570\u636e\n\n![xmind_testcase_demo](https://raw.githubusercontent.com/zhuifengshen/xmind2testcase/master/webtool/static/guide/xmind_testcase_demo.png)\n\n##### \uff081\uff09\u8f6c\u4e3aTestCase JSON\u6570\u636e\n\n```\nfrom xmind2testcase.utils import get_xmind_testcase_list\nxmind_file = 'docs/xmind_testcase_demo.xmind'\ntestcases = get_xmind_testcase_list(xmind_file)\nprint(testcases)\n\n\nOutput:\n\n[\n { # \u6d4b\u8bd5\u7528\u4f8b\n \"name\": \"\u6d4b\u8bd5\u7528\u4f8b1\", # \u7528\u4f8b\u6807\u9898\n \"version\": 1, # \u7528\u4f8b\u7248\u672c\n \"summary\": \"\u6d4b\u8bd5\u7528\u4f8b1\", # \u7528\u4f8b\u6458\u8981\n \"preconditions\": \"\u524d\u7f6e\u6761\u4ef6\", # \u524d\u7f6e\u6761\u4ef6\n \"execution_type\": 1, # \u7528\u4f8b\u6267\u884c\u7c7b\u578b\uff081\uff1a\u624b\u52a8\u30012\uff1a\u81ea\u52a8\uff09\n \"importance\": 1, # \u4f18\u5148\u7ea7\uff081\uff1a\u9ad8\u30012\uff1a\u4e2d\u30013\uff1a\u4f4e\uff09\n \"estimated_exec_duration\": 3, # \u9884\u8ba1\u6267\u884c\u65f6\u95f4\uff08\u5206\u949f\uff09\n \"status\": 7, # \u7528\u4f8b\u72b6\u6001\uff081\uff1a\u8349\u7a3f\u30012\uff1a\u5f85\u8bc4\u5ba1\u30013\uff1a\u8bc4\u5ba1\u4e2d\u30014\uff1a\u91cd\u505a\u30015\u3001\u5e9f\u5f03\u30016\uff1afeature\u30017\uff1a\u7ec8\u7a3f\uff09\n \"steps\": [ # \u6d4b\u8bd5\u6b65\u9aa4\u5217\u8868\n {\n \"step_number\": 1, # \u7f16\u53f7\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa41\", # \u6b65\u9aa4\u5185\u5bb9\n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c1\", # \u9884\u671f\u7ed3\u679c\n \"execution_type\": 1 # \u6267\u884c\u7c7b\u578b\uff081\uff1a\u624b\u52a8\uff0c2\uff1a\u81ea\u52a8\uff09\n }, \n {\n \"step_number\": 2, \n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa42\", \n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c2\", \n \"execution_type\": 1\n }\n ], \n \"product\": \"\u6211\u662f\u4ea7\u54c1\u540d\", # \u4ea7\u54c1\u540d\u79f0\n \"suite\": \"\u6211\u662f\u6a21\u5757\u540d(\u6d4b\u8bd5\u96c61)\" # \u6d4b\u8bd5\u96c6\uff08\u6a21\u5757\u540d\uff09\n }, \n {\n \"name\": \"\u6d4b\u8bd5\u7528\u4f8b2\", \n \"version\": 1, \n \"summary\": \"\u6d4b\u8bd5\u7528\u4f8b2\", \n \"preconditions\": \"\u524d\u7f6e\u6761\u4ef6\", \n \"execution_type\": 1, \n \"importance\": 1, \n \"estimated_exec_duration\": 3, \n \"status\": 7, \n \"steps\": [\n {\n \"step_number\": 1, \n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa41\", \n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c1\", \n \"execution_type\": 1\n }, \n {\n \"step_number\": 2, \n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa42\uff08\u9884\u671f\u7ed3\u679c2\u53ef\u4ee5\u4e3a\u7a7a\uff09\", \n \"expectedresults\": \"\", \n \"execution_type\": 1\n }, \n {\n \"step_number\": 3, \n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa43\", \n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c3\", \n \"execution_type\": 1\n }, \n {\n \"step_number\": 4, \n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa44\", \n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c4\", \n \"execution_type\": 1\n }\n ], \n \"product\": \"\u6211\u662f\u4ea7\u54c1\u540d\", \n \"suite\": \"\u6211\u662f\u6a21\u5757\u540d(\u6d4b\u8bd5\u96c61)\"\n }, \n {\n \"name\": \"\u6d4b\u8bd5\u7528\u4f8b3\uff08\u6d4b\u8bd5\u6b65\u9aa4\u548c\u9884\u671f\u7ed3\u679c\u53ef\u4ee5\u90fd\u4e3a\u7a7a\uff09\", \n \"version\": 1, \n \"summary\": \"\u6d4b\u8bd5\u7528\u4f8b3\uff08\u6d4b\u8bd5\u6b65\u9aa4\u548c\u9884\u671f\u7ed3\u679c\u53ef\u4ee5\u90fd\u4e3a\u7a7a\uff09\", \n \"preconditions\": \"\u65e0\", \n \"execution_type\": 1, \n \"importance\": 2, \n \"estimated_exec_duration\": 3, \n \"status\": 7, \n \"steps\": [ ], \n \"product\": \"\u6211\u662f\u4ea7\u54c1\u540d\", \n \"suite\": \"\u6211\u662f\u6a21\u5757\u540d(\u6d4b\u8bd5\u96c61)\"\n }, \n {\n \"name\": \"\u6d4b\u8bd5\u6b65\u9aa42\uff08\u4f18\u5148\u7ea7\u9ed8\u8ba4\u4e3a\u4e2d\uff09\", \n \"version\": 1, \n \"summary\": \"\u6d4b\u8bd5\u6b65\u9aa42\uff08\u4f18\u5148\u7ea7\u9ed8\u8ba4\u4e3a\u4e2d\uff09\", \n \"preconditions\": \"\u65e0\", \n \"execution_type\": 1, \n \"importance\": 3, \n \"estimated_exec_duration\": 3, \n \"status\": 7, \n \"steps\": [\n {\n \"step_number\": 1, \n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa41\", \n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c1\", \n \"execution_type\": 1\n }, \n {\n \"step_number\": 2, \n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa43\", \n \"expectedresults\": \"\", \n \"execution_type\": 1\n }\n ], \n \"product\": \"\u6211\u662f\u4ea7\u54c1\u540d\", \n \"suite\": \"\u6211\u662f\u6a21\u5757\u540d(\u6d4b\u8bd5\u96c62)\"\n }, \n {\n \"name\": \"\u6d4b\u8bd5\u7528\u4f8b3\uff08\u524d\u7f6e\u6761\u4ef6\u9ed8\u8ba4\u4e3a\u7a7a\uff09 \u65e0\u8bbe\u7f6e\u4f18\u5148\u7ea7\uff0c\u8fd9\u91cc\u52a0\u5165\u7528\u4f8b\u6807\u9898\", \n \"version\": 1, \n \"summary\": \"\u6d4b\u8bd5\u7528\u4f8b3\uff08\u524d\u7f6e\u6761\u4ef6\u9ed8\u8ba4\u4e3a\u7a7a\uff09 \u65e0\u8bbe\u7f6e\u4f18\u5148\u7ea7\uff0c\u8fd9\u91cc\u52a0\u5165\u7528\u4f8b\u6807\u9898\", \n \"preconditions\": \"\u65e0\", \n \"execution_type\": 1, \n \"importance\": 2, \n \"estimated_exec_duration\": 3, \n \"status\": 7, \n \"steps\": [ ], \n \"product\": \"\u6211\u662f\u4ea7\u54c1\u540d\", \n \"suite\": \"\u6211\u662f\u6a21\u5757\u540d(\u6d4b\u8bd5\u96c62)\"\n }\n]\n```\n\n\u6d4b\u8bd5\u7528\u4f8b\u6570\u636e\u589e\u52a0\u6267\u884c\u7ed3\u679c\u5b57\u6bb5\uff1aresult\uff0c\u793a\u4f8b\u5982\u4e0b\uff1a\n\n![\u6d4b\u8bd5\u7528\u4f8b\u6570\u636e](webtool/static/guide/testcase_json_demo.png)\n\n\u8be6\u60c5\u67e5\u770b[\u4f7f\u7528\u6307\u5357](webtool/static/guide/index.md)\uff0c\u53c2\u8003\u793a\u4f8b\uff1a[testcase json](docs/xmind_to_testcase_json.json)\n\n\n##### \uff082\uff09\u8f6c\u4e3aTestSuite JSON\u6570\u636e\n\n```\nfrom xmind2testcase.utils import get_xmind_testsuite_list\nxmind_file = 'docs/xmind_testcase_demo.xmind'\ntestsuites = get_xmind_testsuite_list(xmind_file)\nprint(testsuites)\n\n\nOutput:\n\n[\n { # XMind\u753b\u5e03\uff08Sheet)\u5217\u8868\n \"name\": \"\u6211\u662f\u4ea7\u54c1\u540d\", # \u4ea7\u54c1\u540d\u79f0\n \"details\": null, # \u4ea7\u54c1\u6458\u8981\n \"testcase_list\": [], # \u7528\u4f8b\u5217\u8868\n \"sub_suites\": [ # \u7528\u4f8b\u96c6\u5217\u8868\n {\n \"name\": \"\u6211\u662f\u6a21\u5757\u540d(\u6d4b\u8bd5\u96c61)\", # \u7528\u4f8b\u96c61\u540d\u79f0\uff08\u6a21\u5757\u540d\uff09\n \"details\": null, # \u7528\u4f8b\u96c6\u6458\u8981\n \"testcase_list\": [ # \u7528\u4f8b\u5217\u8868\n { # \u5177\u4f53\u7528\u4f8b\n \"name\": \"\u6d4b\u8bd5\u7528\u4f8b1\",\n \"version\": 1,\n \"summary\": \"\u6d4b\u8bd5\u7528\u4f8b1\",\n \"preconditions\": \"\u524d\u7f6e\u6761\u4ef6\",\n \"execution_type\": 1,\n \"importance\": 1,\n \"estimated_exec_duration\": 3,\n \"status\": 7,\n \"steps\": [\n {\n \"step_number\": 1,\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa41\",\n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c1\",\n \"execution_type\": 1\n },\n {\n \"step_number\": 2,\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa42\",\n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c2\",\n \"execution_type\": 1\n }\n ]\n },\n {\n \"name\": \"\u6d4b\u8bd5\u7528\u4f8b2\",\n \"version\": 1,\n \"summary\": \"\u6d4b\u8bd5\u7528\u4f8b2\",\n \"preconditions\": \"\u524d\u7f6e\u6761\u4ef6\",\n \"execution_type\": 1,\n \"importance\": 1,\n \"estimated_exec_duration\": 3,\n \"status\": 7,\n \"steps\": [\n {\n \"step_number\": 1,\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa41\",\n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c1\",\n \"execution_type\": 1\n },\n {\n \"step_number\": 2,\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa42\uff08\u9884\u671f\u7ed3\u679c2\u53ef\u4ee5\u4e3a\u7a7a\uff09\",\n \"expectedresults\": \"\",\n \"execution_type\": 1\n },\n {\n \"step_number\": 3,\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa43\",\n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c3\",\n \"execution_type\": 1\n },\n {\n \"step_number\": 4,\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa44\",\n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c4\",\n \"execution_type\": 1\n }\n ]\n },\n {\n \"name\": \"\u6d4b\u8bd5\u7528\u4f8b3\uff08\u6d4b\u8bd5\u6b65\u9aa4\u548c\u9884\u671f\u7ed3\u679c\u53ef\u4ee5\u90fd\u4e3a\u7a7a\uff09\",\n \"version\": 1,\n \"summary\": \"\u6d4b\u8bd5\u7528\u4f8b3\uff08\u6d4b\u8bd5\u6b65\u9aa4\u548c\u9884\u671f\u7ed3\u679c\u53ef\u4ee5\u90fd\u4e3a\u7a7a\uff09\",\n \"preconditions\": \"\u65e0\",\n \"execution_type\": 1,\n \"importance\": 2,\n \"estimated_exec_duration\": 3,\n \"status\": 7,\n \"steps\": []\n }\n ],\n \"sub_suites\": [] # \u7528\u4f8b\u96c6\u4e2d\u53ef\u4ee5\u5305\u542b\u5b50\u7528\u4f8b\u96c6\uff08\u76ee\u524d\u53ea\u8981\u4ea7\u54c1\u7c7b\u522b\u4e0b\u6709\u7528\u4f8b\u96c6\uff09\n },\n {\n \"name\": \"\u6211\u662f\u6a21\u5757\u540d(\u6d4b\u8bd5\u96c62)\", # \u7528\u4f8b\u96c62\u540d\u79f0\uff08\u6a21\u5757\u540d\uff09\n \"details\": \"\u6d4b\u8bd5\u96c6\u6458\u8981\uff08\u8be6\u60c5\uff09\",\n \"testcase_list\": [\n {\n \"name\": \"\u6d4b\u8bd5\u6b65\u9aa42\uff08\u4f18\u5148\u7ea7\u9ed8\u8ba4\u4e3a\u4e2d\uff09\",\n \"version\": 1,\n \"summary\": \"\u6d4b\u8bd5\u6b65\u9aa42\uff08\u4f18\u5148\u7ea7\u9ed8\u8ba4\u4e3a\u4e2d\uff09\",\n \"preconditions\": \"\u65e0\",\n \"execution_type\": 1,\n \"importance\": 3,\n \"estimated_exec_duration\": 3,\n \"status\": 7,\n \"steps\": [\n {\n \"step_number\": 1,\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa41\",\n \"expectedresults\": \"\u9884\u671f\u7ed3\u679c1\",\n \"execution_type\": 1\n },\n {\n \"step_number\": 2,\n \"actions\": \"\u6d4b\u8bd5\u6b65\u9aa43\",\n \"expectedresults\": \"\",\n \"execution_type\": 1\n }\n ]\n },\n {\n \"name\": \"\u6d4b\u8bd5\u7528\u4f8b3\uff08\u524d\u7f6e\u6761\u4ef6\u9ed8\u8ba4\u4e3a\u7a7a\uff09 \u65e0\u8bbe\u7f6e\u4f18\u5148\u7ea7\uff0c\u8fd9\u91cc\u52a0\u5165\u7528\u4f8b\u6807\u9898\",\n \"version\": 1,\n \"summary\": \"\u6d4b\u8bd5\u7528\u4f8b3\uff08\u524d\u7f6e\u6761\u4ef6\u9ed8\u8ba4\u4e3a\u7a7a\uff09 \u65e0\u8bbe\u7f6e\u4f18\u5148\u7ea7\uff0c\u8fd9\u91cc\u52a0\u5165\u7528\u4f8b\u6807\u9898\",\n \"preconditions\": \"\u65e0\",\n \"execution_type\": 1,\n \"importance\": 2,\n \"estimated_exec_duration\": 3,\n \"status\": 7,\n \"steps\": []\n }\n ],\n \"sub_suites\": []\n }\n ]\n }\n]\n```\n\nTestSuite\u589e\u52a0\u6267\u884c\u7ed3\u679c\u7edf\u8ba1\u5b57\u6bb5\uff1astatistics\uff0c\u793a\u4f8b\u5982\u4e0b\uff1a\n\n![\u6d4b\u8bd5\u7528\u4f8b\u6570\u636e](webtool/static/guide/testsuite_json_demo.png)\n\n\u53c2\u8003\u793a\u4f8b\uff1a[testsuite json](docs/xmind_to_testsuite_json.json)\n\n\n##### \uff083\uff09XMind\u6587\u4ef6\u8f6c\u6362\u4e3aJSON\u6570\u636e\n\n\u4ee5\u4e0a\uff081\uff09TestCase\u6570\u636e\u3001\uff082\uff09TestSuite\u6570\u636e\u7684\u83b7\u53d6\uff0c\u5176\u5b9e\u662f\u57fa\u4e8e**[XMind](https://github.com/zhuifengshen/xmind)**\u8fd9\u4e2a\u5de5\u5177\uff0c\u5bf9XMind\u6587\u4ef6\u8fdb\u884c\u89e3\u6790\u548c\u6570\u636e\u63d0\u53d6\uff0c\u7136\u540e\u8f6c\u6362\u800c\u6765\u3002\n\u8fd9\u4e2a\u5de5\u5177\u662f\u5728\u8bbe\u8ba1XMind2TestCase\u65f6\uff0c\u9488\u5bf9XMind\u5355\u72ec\u62bd\u53d6\u51fa\u6765\u7684\u5e93\uff0c\u63d0\u4f9b\u4e86XMind\u601d\u7ef4\u5bfc\u56fe\u521b\u5efa\u3001\u89e3\u6790\u3001\u66f4\u65b0\u7684\u4e00\u7cfb\u5217\u65b9\u6cd5\u3002\u4f7f\u7528\u5b83\u53ef\u4ee5\u76f4\u63a5\u5c06XMind\u6587\u4ef6\u8f6c\u6362\u4e3aJSON\u6570\u636e\uff1a\n\n```\nimport xmind\nxmind_file = 'docs/xmind_testcase_demo.xmind'\nworkbook = xmind.load(xmind_file)\ndata = workbook.getData()\nprint(data)\n\n\nOutput:\n\n[\n { # XMind\u753b\u5e03(sheet)\u5217\u8868\n \"id\": \"7hmnj6ahp0lonp4k2hodfok24f\", # \u753b\u5e03ID\n \"title\": \"\u753b\u5e03 1\", # \u753b\u5e03\u540d\u79f0\n \"topic\": { # \u4e2d\u5fc3\u4e3b\u9898\n \"id\": \"7c8av5gt8qfbac641lth4g1p67\", # \u4e3b\u9898ID\n \"link\": null, # \u4e3b\u9898\u4e0a\u7684\u8d85\u94fe\u63a5\u4fe1\u606f\n \"title\": \"\u6211\u662f\u4ea7\u54c1\u540d\", # \u4e3b\u9898\u540d\u79f0\n \"note\": null, # \u4e3b\u9898\u4e0a\u7684\u5907\u6ce8\u4fe1\u606f\n \"label\": null, # \u4e3b\u9898\u4e0a\u6807\u7b7e\u4fe1\u606f\n \"comment\": null, # \u4e3b\u9898\u4e0a\u7684\u6279\u6ce8\uff08\u8bc4\u8bba\uff09\u4fe1\u606f\n \"markers\": [], # \u4e3b\u9898\u4e0a\u7684\u56fe\u6807\u4fe1\u606f\n \"topics\": [ # \u5b50\u4e3b\u9898\u5217\u8868\n {\n \"id\": \"2rj4ek3nn4sk0lc4pje3gvgv9k\",\n \"link\": null,\n \"title\": \"\u6211\u662f\u6a21\u5757\u540d(\u6d4b\u8bd5\u96c61)\", # \u5b50\u4e3b\u98981\n \"note\": null,\n \"label\": null,\n \"comment\": null,\n \"markers\": [],\n \"topics\": [ # \u5b50\u4e3b\u9898\u4e0b\u7684\u5b50\u4e3b\u9898\u5217\u8868\n {\n \"id\": \"3hjj43s7rv66uncr1srl3qsboi\",\n \"link\": null,\n \"title\": \"\u6d4b\u8bd5\u7528\u4f8b1\",\n \"note\": \"\u524d\u7f6e\u6761\u4ef6\\n\",\n \"label\": \"\u624b\u52a8\uff08\u6267\u884c\u65b9\u5f0f\u9ed8\u8ba4\u4e3a\u624b\u52a8\uff09\",\n \"comment\": null,\n \"markers\": [\n \"priority-1\"\n ],\n \"topics\": [\n {\n \"id\": \"3djn37j1fdc6081de319slf035\",\n \"link\": null,\n \"title\": \"\u6d4b\u8bd5\u6b65\u9aa41\",\n \"note\": null,\n \"label\": null,\n \"comment\": null,\n \"markers\": [],\n \"topics\": [\n {\n \"id\": \"7v0f1152popou38ndaaamt49l5\",\n \"link\": null,\n \"title\": \"\u9884\u671f\u7ed3\u679c1\",\n \"note\": null,\n \"label\": null,\n \"comment\": null,\n \"markers\": []\n }\n ]\n },\n {\n \"id\": \"2srtqqjp818clkk1drm233lank\",\n \"link\": null,\n \"title\": \"\u6d4b\u8bd5\u6b65\u9aa42\",\n \"note\": null,\n \"label\": null,\n \"comment\": null,\n \"markers\": [],\n \"topics\": [\n {\n \"id\": \"4jlbo280urmid3qkd01j7h8jnq\",\n \"link\": null,\n \"title\": \"\u9884\u671f\u7ed3\u679c2\",\n \"note\": null,\n \"label\": null,\n \"comment\": null,\n \"markers\": []\n }\n ]\n }\n ]\n },\n ...\n ]\n },\n ...\n ]\n }\n }\n]\n```\n\u5177\u4f53\u53c2\u8003\uff1a[xmind_testcase_demo.json](https://github.com/zhuifengshen/xmind2testcase/blob/master/docs/xmind_testcase_demo.json)\n\n\n### \u56db\u3001\u81ea\u52a8\u5316\u53d1\u5e03\uff1a\u4e00\u952e\u6253 Tag \u5e76\u4e0a\u4f20\u81f3 PYPI \n\n\u6bcf\u6b21\u5728 __ about __.py \u66f4\u65b0\u7248\u672c\u53f7\u540e\uff0c\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u5b9e\u73b0\u81ea\u52a8\u5316\u66f4\u65b0\u6253\u5305\u4e0a\u4f20\u81f3 [PYPI](https://pypi.org/) \uff0c\u540c\u65f6\u6839\u636e\u5176\u7248\u672c\u53f7\u81ea\u52a8\u6253 Tag \u5e76\u63a8\u9001\u5230\u4ed3\u5e93\uff1a\n\n```\npython3 setup.py pypi\n```\n\n![upload_pypi](https://raw.githubusercontent.com/zhuifengshen/xmind2testcase/master/webtool/static/guide/pypi_upload.png)\n\n\n### \u4e94\u3001CHANGELOG\n\n```\nv1.0.0\n1\u3001XMind\u7528\u4f8b\u6a21\u677f\u5b9a\u4e49\u548c\u89e3\u6790\uff1b\n2\u3001XMind\u7528\u4f8b\u8f6c\u6362\u4e3aTestLink\u7528\u4f8b\u6587\u4ef6\uff1b\n\nv1.1.0\n1\u3001XMind\u7528\u4f8b\u6587\u4ef6\u8f6c\u6362\u4e3a\u7985\u9053\u7528\u4f8b\u6587\u4ef6\uff1b\n2\u3001\u6dfb\u52a0\u4e00\u952e\u4e0a\u4f20PYPI\u529f\u80fd\uff1b\n\nv1.2.0\n1\u3001\u6dfb\u52a0Web\u5de5\u5177\u8fdb\u884c\u7528\u4f8b\u8f6c\u6362\uff1b\n2\u3001\u6dfb\u52a0\u7528\u6237\u4f7f\u7528\u6307\u5357\uff1b\n\nv1.3.0\n1\u3001XMind\u4e2d\u652f\u6301\u6807\u8bc6\u6d4b\u8bd5\u7528\u4f8b\u6267\u884c\u7ed3\u679c\uff1b\n2\u3001TestCase\u3001TestSuite\u4e2d\u6dfb\u52a0\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u7edf\u8ba1\u6570\u636e\uff1b\n3\u3001\u5b8c\u5584\u7528\u6237\u4f7f\u7528\u6307\u5357\uff1b\n```\n\n\n### \u516d\u3001\u81f4\u8c22\n**XMind2TestCase** \u5de5\u5177\u7684\u4ea7\u751f\uff0c\u53d7\u76ca\u4e8e\u4ee5\u4e0b\u56db\u4e2a\u5f00\u6e90\u9879\u76ee\uff0c\u5e76\u5728\u6b64\u57fa\u7840\u4e0a\u6269\u5c55\u3001\u4f18\u5316\uff0c\u53d7\u76ca\u532a\u6d45\uff0c\u611f\u6069\uff01\n\n- 1\u3001**[XMind](https://github.com/zhuifengshen/xmind)**\uff1aXMind\u601d\u7ef4\u5bfc\u56fe\u521b\u5efa\u3001\u89e3\u6790\u3001\u66f4\u65b0\u7684\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848(Python\u5b9e\u73b0)\uff01 \n- 2\u3001**[xmind2testlink](https://github.com/tobyqin/xmind2testlink)**\uff1a\u8df5\u884c\u4e86XMind\u901a\u7528\u6d4b\u8bd5\u7528\u4f8b\u6a21\u677f\u8bbe\u8ba1\u601d\u8def\uff0c\u540c\u65f6\u63d0\u4f9b\u4e86Web\u8f6c\u6362\u5de5\u5177\uff01\n- 3\u3001**[TestLink](http://www.testlink.org/)**\uff1a\u63d0\u4f9b\u4e86\u5b8c\u6574\u7684\u6d4b\u8bd5\u7528\u4f8b\u7ba1\u7406\u6d41\u7a0b\u548c\u6587\u6863\uff1b\n- 4\u3001**[\u7985\u9053\u5f00\u6e90\u7248(ZenTao)](https://www.zentao.net/)**\uff1a\u63d0\u4f9b\u4e86\u5b8c\u6574\u7684\u9879\u76ee\u7ba1\u7406\u6d41\u7a0b\u3001\u6587\u6863\u548c\u7528\u6237\u4ea4\u6d41\u91ca\u7591\u7fa4\uff1b\n\n\u5f97\u76ca\u4e8e\u5f00\u6e90\uff0c\u4e5f\u5c06\u575a\u6301\u5f00\u6e90\uff0c\u5e76\u4e3a\u52aa\u529b\u5f00\u6e90\u8d21\u732e\u81ea\u5df1\u7684\u70b9\u6ef4\u4e4b\u529b\u3002\u540e\u7eed\uff0c\u5c06\u7ee7\u7eed\u6839\u636e\u5b9e\u9645\u9879\u76ee\u9700\u8981\uff0c\u5b9a\u671f\u8fdb\u884c\u66f4\u65b0\u7ef4\u62a4\uff0c\n\u6b22\u8fce\u5927\u4f19\u7684[\u4f7f\u7528](https://github.com/zhuifengshen/xmind2testcase/blob/master/webtool/static/guide/index.md)\u548c[\u610f\u89c1\u53cd\u9988](https://github.com/zhuifengshen/xmind2testcase/issues/new)\uff0c\u8c22\u8c22\uff01\n\n\uff08\u5982\u679c\u672c\u9879\u76ee\u5bf9\u4f60\u6709\u5e2e\u52a9\u7684\u8bdd\uff0c\u4e5f\u6b22\u8fce _**[star](https://github.com/zhuifengshen/xmind2testcase)**_ \uff09\n\n![QA\u4e4b\u7985](http://upload-images.jianshu.io/upload_images/139581-27c6030ba720846f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n\n### LICENSE\n```\nMIT License\n\nCopyright (c) 2019 Devin https://zhangchuzhao.site\nCopyright (c) 2017 Toby Qin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/zhuifengshen/xmind2testcase", "keywords": "xmind2testCase, testcase, test, testing, xmind, \u601d\u7ef4\u5bfc\u56fe, XMind\u601d\u7ef4\u5bfc\u56fe", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "xmind2testcase", "package_url": "https://pypi.org/project/xmind2testcase/", "platform": "", "project_url": "https://pypi.org/project/xmind2testcase/", "project_urls": { "Homepage": "https://github.com/zhuifengshen/xmind2testcase" }, "release_url": "https://pypi.org/project/xmind2testcase/1.3.0/", "requires_dist": [ "xmind", "flask", "arrow" ], "requires_python": ">=3.0, <4", "summary": "XMind2TestCase\u57fa\u4e8ePython\u5b9e\u73b0\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e2a\u9ad8\u6548\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u7684\u89e3\u51b3\u65b9\u6848\uff01", "version": "1.3.0" }, "last_serial": 4680660, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "18623d4ebfba2b3f748633ef9e06f5dd", "sha256": "530bb1284949a4d695ea8a4bd3aeecd7089ae438780ddf9d27d40db46a1d6101" }, "downloads": -1, "filename": "xmind2testcase-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "18623d4ebfba2b3f748633ef9e06f5dd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.0, <4", "size": 17441, "upload_time": "2018-12-26T09:18:02", "url": "https://files.pythonhosted.org/packages/37/12/7251cf9b198d66345ae59a60b36e28c1142412151b6861f985065fdbf7d2/xmind2testcase-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b311624a38da604fce9b95ebb178fb94", "sha256": "218638088d2d5dbc187a93340a0fa2b928952bc7474983265f910643937e8cf8" }, "downloads": -1, "filename": "xmind2testcase-0.9.0.tar.gz", "has_sig": false, "md5_digest": "b311624a38da604fce9b95ebb178fb94", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 17431, "upload_time": "2018-12-26T09:18:04", "url": "https://files.pythonhosted.org/packages/e1/6f/6c72cf0f1671bc550b552fd718f2f7260ea771d97a3d1d380167d8fa3f5e/xmind2testcase-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "691aaabcb2a080c577e6fe55b5f68649", "sha256": "5258ca449f54f3980a30dbf0c9f575550f9fc0fe85d36f47328ac0cdb70691d8" }, "downloads": -1, "filename": "xmind2testcase-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "691aaabcb2a080c577e6fe55b5f68649", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.0, <4", "size": 17445, "upload_time": "2018-12-27T02:46:04", "url": "https://files.pythonhosted.org/packages/a9/43/adf554002dff5187017d65ba8bfb3cc64afce526a5ba11f2d8b9704acd36/xmind2testcase-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d9f2580fae9d8dd92a5206fdfc40884", "sha256": "2267a22c1ae36ad697d306363b3bf20f9b88318914737447ac7489986c5ea2c7" }, "downloads": -1, "filename": "xmind2testcase-0.9.1.tar.gz", "has_sig": false, "md5_digest": "3d9f2580fae9d8dd92a5206fdfc40884", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 17515, "upload_time": "2018-12-27T02:46:06", "url": "https://files.pythonhosted.org/packages/43/6e/49e68c98ed8d0c63612e9a75b1c6f3bcc1f2d4cfa7012a7df725a7401d38/xmind2testcase-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "d89423b0c89ebdd6e358b799bf2f4b01", "sha256": "e0a0ff4f25fbc5d199ff2711a344700a80b3b92db2c309ec240528815432e5e5" }, "downloads": -1, "filename": "xmind2testcase-0.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d89423b0c89ebdd6e358b799bf2f4b01", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.0, <4", "size": 37429, "upload_time": "2018-12-27T03:05:53", "url": "https://files.pythonhosted.org/packages/90/83/9a83f04425d407d15d78256818fceab67620e075e49d6e64417f44bb9243/xmind2testcase-0.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffe2254e6e2c412bb8daeb0e114c0d7d", "sha256": "32787e27b6ae7b80af5972daa34ae8340f57bb0c49a1dcc46f2d73e8661fdd8d" }, "downloads": -1, "filename": "xmind2testcase-0.9.2.tar.gz", "has_sig": false, "md5_digest": "ffe2254e6e2c412bb8daeb0e114c0d7d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 39795, "upload_time": "2018-12-27T03:05:55", "url": "https://files.pythonhosted.org/packages/c7/09/3dce6f74168488b86202cae970e9ecf7eb8cd867cc70918e990c83f59d6c/xmind2testcase-0.9.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "c9876692fdd28874c1a75a7201498713", "sha256": "a8289065a3be2fa9055fea5acefb5b7e2868d8f048e63b4cafa89a8f7f64c55b" }, "downloads": -1, "filename": "xmind2testcase-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c9876692fdd28874c1a75a7201498713", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.0, <4", "size": 41797, "upload_time": "2018-12-28T11:49:49", "url": "https://files.pythonhosted.org/packages/15/9d/ea6ca87c86ea3f42e245445cc9fb7f925d6f66c95fc34c33ea380c43ba37/xmind2testcase-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f669dc748e5fc27f12390bcc24a938e", "sha256": "f6f6f44db9ddf2f1d72e951cce92153c567fdc2b97d1dbc82f245bb62f6b179b" }, "downloads": -1, "filename": "xmind2testcase-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8f669dc748e5fc27f12390bcc24a938e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 49415, "upload_time": "2018-12-28T11:49:51", "url": "https://files.pythonhosted.org/packages/14/69/ac64330c8acdaf763158ce987e40380ef7c373af0e2afdd314e0b32b8152/xmind2testcase-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "221976af3543c3e105f19bc522889401", "sha256": "79f9fe7bb1a834d87c4c7f8495a6c425d60f0691ad9cb0f4d9d5537eb69c470a" }, "downloads": -1, "filename": "xmind2testcase-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "221976af3543c3e105f19bc522889401", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.0, <4", "size": 4775792, "upload_time": "2018-12-29T07:24:55", "url": "https://files.pythonhosted.org/packages/41/70/182ae9927c8795b577f0aead479dc2bde9c6fa6723a2c5fbb7a2adafc1cb/xmind2testcase-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd0c761fcdbd98139926ec837a55cdc0", "sha256": "2c8610fed586b6d030e72983ebcb3e9ee95bf9e0c034f9146619702f3ee7611b" }, "downloads": -1, "filename": "xmind2testcase-1.1.0.tar.gz", "has_sig": false, "md5_digest": "cd0c761fcdbd98139926ec837a55cdc0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 4781523, "upload_time": "2018-12-29T07:25:03", "url": "https://files.pythonhosted.org/packages/3c/52/abc4e69f02f92d1604de072f93b7a5eb9b22fdd52d26621fcea5187629be/xmind2testcase-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "642297f85e48fcd01119f31ebeda7cdb", "sha256": "701f67fe66be8e8cc6e3215cfdf743b3d012f745f0a46ec1d6afbfd23d7b3475" }, "downloads": -1, "filename": "xmind2testcase-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "642297f85e48fcd01119f31ebeda7cdb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.0, <4", "size": 4775827, "upload_time": "2018-12-30T12:56:50", "url": "https://files.pythonhosted.org/packages/72/2f/aaad691fe365e7d0ec7e57abc7340194d9904f19d555cc1ea5ff7218eea4/xmind2testcase-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01a63326feaa928da96b3246ec773ed3", "sha256": "61c9176ee04add6ea13ef5bfea81d36d832cc5da4ed71fb128b4c2a8a6d1c83c" }, "downloads": -1, "filename": "xmind2testcase-1.2.0.tar.gz", "has_sig": false, "md5_digest": "01a63326feaa928da96b3246ec773ed3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 4781618, "upload_time": "2018-12-30T12:56:59", "url": "https://files.pythonhosted.org/packages/f8/8d/c5bd6e7be36644878d7590903f703d971cb9f155f60fd98afadf2bb827a9/xmind2testcase-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "be72c1c122d97ffb6e22c71431f863d1", "sha256": "1cfcc6eb2a2264af7b3fe61d3b5de30038d566ec2376b3e5e6c9a9db6f2a5f6f" }, "downloads": -1, "filename": "xmind2testcase-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "be72c1c122d97ffb6e22c71431f863d1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.0, <4", "size": 5838199, "upload_time": "2019-01-10T11:02:33", "url": "https://files.pythonhosted.org/packages/e5/3a/071c9e78b423484e3d6ada1c2d0df33ad3b192a69a5a0a7d82a1db827e5f/xmind2testcase-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "277aabf11be86ee1aea235e9f683bebc", "sha256": "9d4f50796d99a609dd2c8e92957c4a93f2364d8b838c93c7193a8e1f02bed619" }, "downloads": -1, "filename": "xmind2testcase-1.3.0.tar.gz", "has_sig": false, "md5_digest": "277aabf11be86ee1aea235e9f683bebc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 5844964, "upload_time": "2019-01-10T11:02:44", "url": "https://files.pythonhosted.org/packages/fe/27/6894b7c27eb15876156f3adee5caa2147585add27682df2b760abf6d49fe/xmind2testcase-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "be72c1c122d97ffb6e22c71431f863d1", "sha256": "1cfcc6eb2a2264af7b3fe61d3b5de30038d566ec2376b3e5e6c9a9db6f2a5f6f" }, "downloads": -1, "filename": "xmind2testcase-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "be72c1c122d97ffb6e22c71431f863d1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.0, <4", "size": 5838199, "upload_time": "2019-01-10T11:02:33", "url": "https://files.pythonhosted.org/packages/e5/3a/071c9e78b423484e3d6ada1c2d0df33ad3b192a69a5a0a7d82a1db827e5f/xmind2testcase-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "277aabf11be86ee1aea235e9f683bebc", "sha256": "9d4f50796d99a609dd2c8e92957c4a93f2364d8b838c93c7193a8e1f02bed619" }, "downloads": -1, "filename": "xmind2testcase-1.3.0.tar.gz", "has_sig": false, "md5_digest": "277aabf11be86ee1aea235e9f683bebc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 5844964, "upload_time": "2019-01-10T11:02:44", "url": "https://files.pythonhosted.org/packages/fe/27/6894b7c27eb15876156f3adee5caa2147585add27682df2b760abf6d49fe/xmind2testcase-1.3.0.tar.gz" } ] }