{"id":24624972,"url":"https://github.com/tobyqin/xmind2testlink","last_synced_at":"2025-09-15T02:22:34.368Z","repository":{"id":57497744,"uuid":"83559462","full_name":"tobyqin/xmind2testlink","owner":"tobyqin","description":"Convert xmind to test link xml files, support xmind pro and xmind zen.","archived":false,"fork":false,"pushed_at":"2020-05-17T01:48:07.000Z","size":1697,"stargazers_count":113,"open_issues_count":1,"forks_count":49,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-07-19T22:31:13.603Z","etag":null,"topics":["conversion","testcase","testlink","xmind"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tobyqin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-01T13:50:01.000Z","updated_at":"2025-06-25T10:25:15.000Z","dependencies_parsed_at":"2022-08-28T19:41:10.459Z","dependency_job_id":null,"html_url":"https://github.com/tobyqin/xmind2testlink","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/tobyqin/xmind2testlink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobyqin%2Fxmind2testlink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobyqin%2Fxmind2testlink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobyqin%2Fxmind2testlink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobyqin%2Fxmind2testlink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobyqin","download_url":"https://codeload.github.com/tobyqin/xmind2testlink/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobyqin%2Fxmind2testlink/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271732740,"owners_count":24811393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conversion","testcase","testlink","xmind"],"created_at":"2025-01-25T04:12:19.838Z","updated_at":"2025-09-15T02:22:34.337Z","avatar_url":"https://github.com/tobyqin.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xmind2testlink\n\n[![Test Package](https://github.com/tobyqin/xmind2testlink/workflows/Test%20Package/badge.svg)](https://github.com/tobyqin/xmind2testlink/actions)\n[![PyPI](https://img.shields.io/pypi/v/xmind2testlink.svg)](https://pypi.org/project/xmind2testlink/)\n\nWith xmind2testlink, you will be able to convert [xmind](https://www.xmind.net/) tests to [testlink](http://www.testlink.org/) tests xml files. You should have python installed before running it. See also [xmindparser](https://github.com/tobyqin/xmindparser).\n\n**Requirement:** python 2.7 or 3.4 +\n\n\u003e 中文说明：[xmind2testlink - 快速设计测试案例并导入TestLink](https://tobyqin.github.io/posts/2017-07-27/use-xmind-to-design-testcase/)，如果你的xmind中包含中文或者unicode，请使用Python 3.4+，谢谢。\n\n## Installation and quick start\n\nThe most easy to install xmind2testlink is using pip command:\n\n```\npip install xmind2testlink -U\n```\n\nNow you are ready to convert an xmind to TestLink xml:\n\n```shell\nxmind2testlink /path/to/testcase.xmind\nGenerated: testcase.xml\n\n# output json is also supported\nxmind2testlink /path/to/testcase.xmind -json\nGenerated: testcase.json\n```\n\nTo build your tools with this package, do it like this:\n\n```python\nfrom xmind2testlink.xmind_parser import *\nfrom xmind2testlink.testlink_parser import *\n\n# do your stuff\n```\n\n## Conversion Rules\n\nNow xmind2testlink has been upgraded to v2, it supports 2 kinds of conversion.\n\n### v1 rules\n\nFor old users (xmind2testlink v1), your xmind looks like below structure.\n\n![xmind2testlink_v1](web/static/guide/xmind2testlink_v1.png)\n\nThe output:\n\n![xmind2testlink_v1_out](web/static/guide/xmind2testlink_v1_out.png)\n\n**Generally to say:**\n\n1. The first sub topic =\u003e suite\n2. The sub topic of suite =\u003e test case title\n3. The sub topic of test case =\u003e test step\n4. The sub topic of test step =\u003e expected result\n\n### v2 rules\n\nLatest update: `xmind2testlink` will auto detect v1 and v2 rules by checking if descendants of testcase node (3rd level nodes)\nstill have priority maker. If yes, this file will be processed by v2 rule, else by v1 rule.\n\nV2 xmind looks like this:\n\n![xmind2testlink_v2](web/static/guide/xmind2testlink_v2.png)\n\nThe output:\n\n![xmind2testlink_v2_out](web/static/guide/xmind2testlink_v2_out.png)\n\n**Rules:**\n\n1. Mark root topic with a **star marker**, this means **v2 xmind** file. (no matter what color of star maker, optional)\n2. First sub topic =\u003e it is still converted to suite\n3. Test case title will be combined by sub topics, until:\n   1. Child topic is marked with priority\n   2. Current topic is end topic\n\nBy default, the title parts are connected by **blank space**, you can define the `connector` by last char of root topic, like this.\n\n![xmind2testlink_v2_sep](web/static/guide/xmind2testlink_v2_sep.png)\n\nThen the output will be changed to:\n\n![xmind2testlink_v2_sep_out](web/static/guide/xmind2testlink_v2_sep_out.png)\n\nNote: only valid chars can be used as a `connector`. \n\n### More detail\n\n1. `Notes` for a test suite =\u003e `details` in TestLink.\n2. `Notes` for a test case =\u003e `summary` in TestLink.\n3. `Comments` for a test case =\u003e `preconditions` in TestLink.\n4. `Priority` maker for a test case =\u003e `importance` in TestLink.\n5. `flag-green` maker for a test case =\u003e `execution type` in TestLink.\n6. Sub topics for a test case will be treated as test steps.\n   - It is okay to design test step **with action** but **without expected results**.\n7. Use `!` to ignore any test suite / test case / test step that you don't want to convert.\n8. Root topic will not be converted, just treat it as target suite node in TestLink.\n9. Free topic and notes will not be converted.\n10. Only the first sheet in xmind will be converted.\n\n### XmindZen Update\n\nNow `xmind2testlink` support xmind zen files, remember one thing, you cannot add comments for a topic in xmind zen, so we cannot create preconditions for ZEN!\n\n**Download the sample xmind files:**\n\n-  [Test case by xmind v1.xmind](web/static/guide/test_case_by_xmind_v1.xmind)\n-  [Test case by xmind v2.xmind](web/static/guide/test_case_by_xmind_v2.xmind)\n\n## Guide: Import into TestLink\n\nGo to your TestLink website, import the xml into your target test suite step by step.\n\n![testlink_import_1](doc/testlink_import_1.png)\n\nTo avoid duplicates, you might want to *Update date on Latest version*.\n\n![testlink_import_2](doc/testlink_import_2.png)\n\nOnce you click on the **Upload file** button, all the tests will be imported as they listed in xmind.\n\n![testlink_import_3](doc/testlink_import_3.png)\n\nThe field mapping looks like below figure.\n\n![testlink_import_4](doc/testlink_import_4.png)\n\n## Advanced usage\n\n### 1. Use from browser\n\nA simple web page to host this feature also has been built in  `web` folder. To start the website, here is the command:\n\n```shell\n# clone this git repo ahead\ncd /path/to/xmind2testlink/web\npip install -r requirements.txt -U\npython application.py\n\n* Running on http://127.0.0.1:5001/ (Press CTRL+C to quit)\n* Restarting with stat\n```\n\nStart a browser, then you will be able to convert xmind to TestLink via http://127.0.0.1:5001. I am not good at web design, but I am trying my best to provide a friendly interface :-)\n\n![xmind2testlink_web](web/static/guide/web.png)\n\nIf you wan to deploy this application to a web server, please checkout [Flask Deployment](http://flask.pocoo.org/docs/0.12/deploying/#deployment).\n\n### 3. Run in Docker\n\nIf you have docker installed, you just need 1 line code to run xmind2testlink.\n\n```bash\ndocker run -d --name xmind2testlink --restart always -p 3000:5001 tobyqin/xmind2testlink\n```\n\nNow go to http://localhost:3000 you will able to use xmind2testlink in browser.\n\nBuild and run your docker engine:\n\n```bash\ncd web\ndocker build -t xmind2testlink:latest .\ndocker run -d --name xmind2testlink --restart always -p 3000:5001 tobyqin/xmind2testlink\n```\n\n### 3. Batch on Windows\n\nIt is okay to batch convert all xmind files in a folder, copy the [`xmind2testlink_all.bat`](batch/xmind2testlink_all.bat) to your folder, then you will be able to convert all files by double clicking on it.\n\n```shell\n@echo off\n@echo off\necho Batch xmind to testlink...\n\npython -m pip install xmind2testlink -U \u003eNUL\npython -c \"import glob, os;[os.system('xmind2testlink \"\"{}\"\"'.format(f)) for f in glob.glob('*.xmind')]\"\n\necho OK!\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobyqin%2Fxmind2testlink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobyqin%2Fxmind2testlink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobyqin%2Fxmind2testlink/lists"}