标签:title Excel topics excel 用例 xmind 模板
前言
废话不多说,因为工作需要,写这个工具就是为了方便编写以及上传测试用例
由于用例需要上传禅道,还需要按照禅道上的Excel模板来写,但是之前用脑图写习惯了,再加上强逼症,用禅道下载的Excel模板写非常难受,于是就百度找教程并借鉴部分代码。
实现原理:首先制定一套xmind模板规则,然后解析xmind用例数据,然后处理数据,写入Excel模板中
1、定制ximd模板规则
所属模块-相关需求-用例标题-前置条件-操作步骤-预期结果
没有前置条件时可以忽略
2、xmind数据解析(吐槽:俄罗斯套娃一样)
写好了xmind模板(demo)
首先要提取Xmind文件分支内容
[
{
'title': '画布1',
'topic': {
'title': 'A',
'topics': [
{
'title': 'B1'
},
{
'title': 'B2',
'topics': [
{
'title': 'C1'
},
{
'title': 'C2'
}
]
},
{
'title': 'B3'
}
]
},
'structure': 'org.xmind.ui.map.unbalanced'
}
]
内容装在一个list里,字典最外层title为“画布1”,
topic装有我们需要的内容(可以看出其他位置叫topics),
这是xmind文件中没有的,经验证这是个固定值,可以忽略。
然后通过取list,A是字典中value值,key为title,其子节点装在topics的分支中。
处理后是这样,最外层是dict:
{
'title': 'A',
'topics': [
{
'title': 'B1'
},
{
'title': 'B2',
'topics': [
{
'title': 'C1'
},
{
'title': 'C2'
}
]
},
{
'title': 'B3'
}
]
}
需要一层层取子节点才可以得到我们想要的A\B2\C1、A\B2\C2,
节点值永远在title里,而子节点却在dict、list里的dict里,
而且子节点里有的只有一个title,有的有一个title加一个topics,
不难发现,有topics的是还有其子节点的
处理数据的逻辑大概是下面这样的:
如果 输入字典:
当字典只有有title时:
操作1
当字典有title和topics时:
操作2
如果 输入list:
遍历list里的字典:
对每个字典进行操作3
如果 输入的既不是字典也不是list:
输出值
3、写入Excel
处理后的data数据:
('所属模块#1', '相关需求#1', '用例标题:B1', '无', '操作步骤', '预期结果', '', 1, '功能测试')
('所属模块#1', '相关需求#1', '用例标题:B1', '无', '操作步骤', '预期结果', '', 1, '功能测试')
('所属模块#1', '相关需求#1', '用例标题:B2', '前置条件', '操作步骤', '预期结果', '', 1, '功能测试')
('所属模块#1', '相关需求#1', '用例标题:B2', '前置条件', '操作步骤', '预期结果', '', 1, '功能测试')
写入模板文件:
from openpyxl import load_workbook
def save_excel(self,template, data, new_file):
'''
把数据写入模板用例中
:param template: Excel用例模板文件
:param data: xmind转化后的data数据
:param new_file: 保存至新的Excel表
:return:
'''
wb = load_workbook(template)
sheet = wb.active
for i in data:
print(i)
self.color_handle(str(i))
sheet.append(i)
wb.save(new_file)
print("运行结束!")
4、pyqt5可视化界面
5、写入data后的Excel用例文件
最后上传Excel用例至禅道即可
标签:title,Excel,topics,excel,用例,xmind,模板 来源: https://www.cnblogs.com/qvchuang/p/15256605.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。