笔者所在的测试团队在引入ms平台作为主力自动化测试工具前,使用的是纯python的测试框架,以excel文件参数表的形式将测试用例集输入。
引入ms平台后,其强大的场景编排和报告输出能力大大提升了测试执行效率。然而平台对数据驱动测试的支持仍不足以满足大量的测试需求。
数据驱动的现状:
很显然,ms平台的数据驱动测试完全照搬了jmeter的性能测试csv数据集模式,即用户导入csv测试数据->执行引擎将数据集逐行读取->进入循环控制器执行。但是这样的数据驱动方式存在诸多痛点:
1.自动化测试用例数据集需要经常维护,频繁的导入导出操作违背了平台化的初衷。
2.执行放在循环体里面,用例达到10条以上时,基本无法从测试报告清晰看到每条用例的具体执行结果。
3.只能一次性全量执行,无法单条执行,调试不便。
鉴于以上情况,笔者基于metersphere1.20版本对接口自动化模块进行了二次开发。最终效果如下:
a.在场景变量-csv预览的界面上增加了编辑模式,用户打开csv编辑模式开关,即可切换到编辑状态。无需上传下载,就可以在浏览器端进行数据的编辑,也支持数据行的增删。
b.实现了数据集的单条执行,对于数据驱动的用例,在调试界面增加了控件,点击数据行左侧的小按钮触发单条case执行,点击【全量执行】则自动执行所有用例,不需要配置循环控制器。
c.优化了测试报告输出。
改造后的执行引擎会自动读取数据集的第一列作为用例名称,拼接到测试场景名称的前面,形成新的测试报告名称。
测试计划报告也做了同样优化,且如果如果一个场景用例配置了数据集,那么测试计划执行时会自动将其展开成数据驱动执行。
以上就是本次数据驱动改造二次开发的效果,在这里做个分享,thx~