Java——xmind测试用例转excel格式(xmind格式解析)
xmind内容主要结构是以json格式构成的,将.xmind文件后缀改成.zip,可以看见一个content.json文件,整个思维导图的内容及结构就在这个文件中。
本小项目所用xmind用例模板如图:
图标含义:
- 开始图标表示前置条件("markerId": "task-start")
- 数字图标表示用例及优先级("markerId": "priority-3")
将其后缀改为.zip,打开可见一个content.json文件,里面即为xmind内容及组成结构:
打开该文件,可以用JSON在线解析及格式化验证工具(https://www.json.cn/)格式化一下,方便观察结构组成:
[
{
"id":"5aebd6f249aa3e09c508bba69b",
"class":"sheet",
"title":"画布 1",
"rootTopic":{
"id":"b9aa22deba98b3b20c7ac8aca2",
"class":"topic",
"title":"根目录,不导入",
"structureClass":"org.xmind.ui.map.unbalanced",
"children":{
"attached":[
{
"id":"b58888b5ceebbf0e68dada0656",
"title":"模块1",
"children":{
"attached":[
{
"id":"86d91b46-78b0-4be0-adc5-28c5de6d1176",
"title":"这是前置条件,前面需要加图标",
"markers":[
{
"markerId":"task-start"
}
],
"children":{
"attached":[
{
"id":"c6100b2e-1a29-490d-920c-4514a2bc96d8",
"title":"这是用例名,需要加图标1-4",
"markers":[
{
"markerId":"priority-3"
}
],
"children":{
"attached":[
{
"id":"31edfe34-d973-404e-bde3-6ce06c82882f",
"title":"步骤1",
"children":{
"attached":[
{
"id":"5851a9b0-5546-4e58-a4a8-2bf535feb2fc",
"title":"结果1"
}
]
}
},
{
"id":"7fcce725-a816-4831-92a2-2996c5285124",
"title":"结果2"
},
{
"id":"fec20ab8-caec-4bd0-a41e-e35c13e9354b",
"title":"步骤3",
"children":{
"attached":[
{
"id":"c3c53f4e-4299-47dc-b2a1-844a3a878b15",
"title":"结果3"
}
]
}
}
]
}
},
{
"id":"7e730e6c-be56-4397-abcc-f58833441ce4",
"title":"这是用例名2",
"markers":[
{
"markerId":"priority-2"
}
],
"children":{
"attached":[
{
"id":"4a8b8fe8-ac98-4d14-abe6-8e522492a86a",
"title":"步骤1&结果1"
},
{
"id":"9f5c6a48-c4c2-45b8-b9e2-51df29015fb3",
"title":"步骤2&结果2"
},
{
"id":"2d53504f-e658-4060-8507-ed90b04a9419",
"title":"结果",
"titleUnedited":true
}
]
}
}
]
}
},
{
"id":"11988da4-2a01-4d2c-b8e6-4de49998779f",
"title":"模块1-1",
"children":{
"attached":[
{
"id":"a7289a52-ac9f-48ba-a1ce-9fa86dd10010",
"title":"/模块1-1用例没有前置条件",
"markers":[
{
"markerId":"priority-1"
}
],
"children":{
"attached":[
{
"id":"c32ad9cc-f68e-4373-9b70-77dc92177a14",
"title":"步骤1",
"children":{
"attached":[
{
"id":"22136d6c-dc41-46f9-a601-8c1868eaed69",
"title":"结果1"
}
]
},
"titleUnedited":true
}
]
}
},
{
"id":"7aaaaeaf-103c-46dc-8163-b6ba069f61cb",
"title":"模块1-1用例,没有步骤和结果",
"markers":[
{
"markerId":"priority-3"
}
]
},
{
"id":"63574e0d-9597-42af-9f2c-3ad987682281",
"title":"模块1-1用例只有结果",
"markers":[
{
"markerId":"priority-2"
}
],
"children":{
"attached":[
{
"id":"9e1c42ed-f948-41b5-b993-2e768f976625",
"title":"结果1"
},
{
"id":"05ec053e-77e5-4e6a-91f4-d5992a85e737",
"title":"结果1"
}
]
}
}
]
}
}
]
}
},
{
"id":"193b56735e689ae86a01d91513",
"title":"模块2",
"children":{
"attached":[
{
"id":"0f6c8c6d-5bb5-4536-94ba-cdbedbca149e",
"title":"这是前置条件,前面需要加图标",
"markers":[
{
"markerId":"task-start"
}
],
"children":{
"attached":[
{
"id":"637a8703-0633-45c9-83ff-ec49513c7e6e",
"title":"/模块2用例1",
"markers":[
{
"markerId":"priority-2"
}
],
"children":{
"attached":[
{
"id":"a061a8f2-8d38-4213-9399-ea3913e25feb",
"title":"步骤1&结果1"
},
{
"id":"a8f06d8e-801d-4acd-9ae2-01b99e7fb63e",
"title":"步骤2&结果2"
}
]
}
}
]
},
"titleUnedited":true
}
]
}
}
]
},
"extensions":[
{
"content":[
{
"content":"2",
"name":"right-number"
}
],
"provider":"org.xmind.ui.map.unbalanced"
}
]
},
"theme":{
(此处省略展示具体样式信息)
},
"topicPositioning":"fixed"
}
]
所以我们要做的就是解析这个json文件然后拿到相应节点的内容填充到相应的excel单元格当中,可以看出文本类容主要集中在title标签中,xmind的json路径比较深,没有做标记的话不好区分,俗话说没有规矩不成方圆,所以我们需要定义xmind用例的格式这样才好去解析它。