团队使用Metersphere管理用例有以下困难:
- 现有用例需要导入Metersphere。现有用例包括Excel格式和Word格式。
解决方案:- Excel格式用例转换成Metersphere导入格式(Excel)较为简单,有时仅涉及列的映射,调整列名即可。较为复杂的情况可写脚本转换,由于转换脚本不通用,不放在当前Repository里;
- Word格式用例转换成Metersphere导入格式,需识别Word用例中各字段,参见下方“Word用例转MS导入格式”
- 用例导出为固定格式,但是客户项目的用例根据客户需求有不同格式,需要做转换:
解决方案:- 交付用例为Excel列表格式的(即和Metersphere导出用例格式一样,在单个Sheet上以列表形式列出用例的),和原有Excel格式用例转换成Metersphere导入用例格式类似,调整列名、列序,或编写转换脚本(脚本不通用,此处忽略)
- 交付用例为Excel独立sheet格式的(即每个sheet一个单独的用例表格),参见下方"生成独立sheet用例"
- 交付用例为Word格式的,参见下方“生成Word格式用例”
- 将现有Word用例去除其他部分(如封面页、文档描述等),仅保留用例章节,单独保存一份文档(docx格式)——参考existing_word_tc.docx(文档内容做了些脱敏处理,仅作示意)
- 修改tc_fields_loc中各字段对应值在Word用例表格中的位置(行,列),以0起始
- 修改root_dir,source_path,dest_wb_path
- 设置tc_steps_prefix和expected_result_prefix(去除前缀后为需要提取的内容)
- 运行脚本tc_word_to_excel.py
- 将Excel文件导入Metersphere平台
对于原有Word用例中保护执行结果截图的情况,如需将截图上传至Metersphere,当前采用的方法是在Metersphere中的用例模板中添加一个富文本字段,比如“附件字段”,将embeded_images_path对应路径下生成的图片批量使用root权限上传到metersphere服务器/app/metersphere/data/image/markdown路径下,然后将第5步生成的Excel用例导入Metersphere平台(图片插入到用例的“附加字段”字段)
- Metersphere中按顺序(如用例ID)排列全部用例,全部导出,勾选全部基础字段、自定义字段,以及其他字段中的评论(需要带截图时须勾选此项)、创建人、创建时间(排序用)、更新时间等
- 检查导出的Excel用例的顺序,如果和预期输出的用例顺序不一致,手动调整(也可在生成Excel后调整Excel文档中用例顺序)
- 修改rootdir (脚本中使用当前文件路径,可修改为客户项目文件夹),rootdir下创建好tmpl_wb_path指向的用例模板文件,参加Excel分sheet用例模板.xlsx
- 设置src_wb_path
- 设置tmpl_sheet_name和tmpl_sheet_name
- 修改actual_result_loc(实际结果内容在表格中的位置索引,如A7)
- 设置need_image(若输出的用例不需要带截图,则设置为False)。需要输出截图时注意设置img_width和img_height
- 修改image_dir(用例截图所在路径,服务器上为固定地址,仅调试脚本时需要修改)
- 运行脚本populate_excel_sheets.py
注意如果导出用例需要附带截图,则本脚本需在Metersphere所在服务器执行(否则找不到图片);
如果不需要附带截图,则脚本可在本地执行
生成Word格式用例相对复杂,本文仅给出总体步骤,细节见对应脚本注释
- 从Metersphere中导出用例,参见同“生成独立sheet用例”步骤1
- 检查导出的Excel用例的顺序,如果和预期输出的用例顺序不一致,手动调整
- 将客户的WORD格式用例模板裁剪到仅保留章节层级和一张用例表格,例如existing_word_tc.docx文件的格式裁剪为Testcase_template.docx模板文件。最终的用例包含需要的所有层级,例如最低层级为1.1.1.1,模板中需要包含1.1,1.1.1,1.1.1.1三个层级,和一个用例表格,如下: