1.在命令行执行pip install xmind2testcase -U
2.到python中xmind2testcase的安装路径(我的路径是D:\python\Lib\site-packages\xmind2testcase)下新建一个文件夹,命名为web
3.在命令行cd到刚刚创建的web文件夹,执行pip freeze > requirements.txt
4.命令行执行pip install -r requirements.txt -U
PS:请尽量使用xMind8 Update9版本编写测试用例,否则可能出现无法转换的情况
5.运行python安装目录下的application.py文件(我的文件位置在D:\python\Lib\site-packages\webtool\application.py)
6.命令行会显示本地生成的网页网址,直接复制到浏览器进入即可
实现效果如下:
一.安装
具体安装步骤可见:禅道安装教程
二.xmind2testcase转换库针对禅道代码改良
默认下xmind2testcase转换的csv文件导入禅道时,不会添加用例类型和测试阶段。这里通过修改代码的方式使其导入时具有默认值,免去了导入后还要手动填写的麻烦。
找到 parser.py
在 config = { 中添加
#用例类型的配置
'type_sep': '\n----\n',
在 def parse_a_testcase(case_dict, parent): 中
#修改
#testcase.summary = summary if summary else testcase.name
#改为
#设置批注默认值为'无'
testcase.summary = summary if summary else "无"
#添加
#用例类型赋值,默认为'无'
execution_type = gen_testcase_type(topics)
testcase.execution_type = execution_type if execution_type else '无'
#代码底部添加方法
#从xmind的内容中获取用例类型的值
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)
找到 zentao.py
#修改
#case_apply_phase = '迭代测试'
#改为
#测试阶段的csv输出
case_apply_phase = gen_case_apply_phase(testcase_dict['summary'])
#修改方法
#def gen_case_type(case_type):
# mapping = {1: '手动', 2: '自动'}
# if case_type in mapping.keys():
# return mapping[case_type]
# else:
# return '手动'
#改为
#测试类型默认值转换
def gen_case_type(case_type):
if case_type=='无':
return '功能测试'
else:
return case_type
#添加方法
#测试阶段默认值转换
def gen_case_apply_phase(case_apply_phase):
if case_apply_phase=='无':
return '功能测试阶段'
else:
return case_apply_phase
三.使用(仅限本地自己管理用例,主要与xmind转换得到的csv文件结合使用)
1.进入禅道页面,选择产品——添加产品,填写产品名称和代号,保存。
2.点击测试——维护模块,添加测试模块
3.进入测试用例页面,点击导出模板,在导出文件中查看禅道给各个模块分配的序号(前提是每个模块内必须至少有一条用例)
4.给xmind编写的测试用例里的模块加上序号标注(如果是直接使用excel写测试用例导入同理,在所属模块中添加序号标注)
5.点击测试——用例——导入,选择导入csv
再点击保存
1.前往site-packages中的xmind2testcase中的zentao.py文件,增加xmind_to_zentao_xlsx_file_by_pandas函数
import pandas as pd #使用pandas包来写入excel的,需要引入
def xmind_to_zentao_xlsx_file_by_pandas(xmind_file): #xmind导出禅道用例模板的xlsx格式
"""Convert XMind file to a zentao xlsx file"""
xmind_file = get_absolute_path(xmind_file)
logging.info('Start converting XMind file(%s) to zentao file...', xmind_file)
testcases = get_xmind_testcase_list(xmind_file)
fileheader = ["所属模块", "用例标题", "前置条件", "步骤", "预期", "关键词", "优先级", "用例类型", "适用阶段"]
zentao_testcase_rows = []
for testcase in testcases:
row = gen_a_testcase_row(testcase)
zentao_testcase_rows.append(row)
zentao_file = xmind_file[:-6] + '.xlsx'
df = pd.DataFrame(data=zentao_testcase_rows, columns=fileheader) #构造数据
df.to_excel(zentao_file, index=False) #写入文件,设置不需要索引
logging.info('Convert XMind file(%s) to a zentao csv file(%s) successfully!', xmind_file, zentao_file)
return zentao_file
2.前往python安装目录下(我的位置为D:\python\Lib\site-packages\webtool)的application.py中,添加路由
@app.route('//to/zentao_xlsx' )
def download_zentao_xlsx_file(filename):
full_path = join(app.config['UPLOAD_FOLDER'], filename)
if not exists(full_path):
abort(404)
zentao_xlsx_file = xmind_to_zentao_xlsx_file_by_pandas(full_path)
filename = os.path.basename(zentao_xlsx_file) if zentao_xlsx_file else abort(404)
return send_from_directory(app.config['UPLOAD_FOLDER'], filename, as_attachment=True)
再将zentao.py的xmind_to_zentao_xlsx_file_by_pandas函数导入进来
3.前往前往python安装目录下(我的位置为D:\python\Lib\site-packages\webtool\templates)的index.html中添加xlsx的访问路径
<a href="{{ url_for('download_zentao_xlsx_file',filename=record[1]) }}">xlsx</a> |
4.在同级目录的preview.html中添加xlsx的访问路径
/ <a href="{{ url_for('download_zentao_xlsx_file',filename= name) }}">Get Zentao xlsx</a>
5.至此,xmind2testcase改装完毕,再次运行application.py(D:\python\Lib\site-packages\webtool\application.py)即可查看效果
1.用xmind写好测试用例
2.启动xmind转换网页,将xmind文件转换为excel文件
3.新建空文件夹,将得到的excel文件与加工脚本(原生转换的excel格式不太好看,也不太符合业务要求,我自己编写了一个小脚本规范一下excel格式)放入
4.双击运行脚本
5.excel文件加工完成,取出excel文件
6.以后再想加工excel文件,直接将文件放入此文件夹,重复上述两步即可
1.用xmind写好测试用例
2.启动xmind转换网页,将xmind文件转换为csv文件
3.将csv文件导入禅道