TestLink作为开源测试管理工具,可以进行测试工程、测试计划以及执行计划的管理,而且TestLink团队提供了XML-PRC的接口供第三方工具调用,接口支持程度也比较好。
Fitnesse作为开源验收测试框架,本身可以做到测试集、测试用例的执行,有较为优秀的测试执行行为的管理以及测试结果的收集。
由于Testlink大部分场合下是用于手工测试用例的管理,为了能够是Testlink对于测试用例管理的优点也用于Fitnesse上自动化测试用例的管理,也为了能够让手工测试用例和自动化回归测试用例mapping起来,方便测试管理者能够清晰知道自动化测试用例在测试项目中的比例,也为了测试管理者可以较好的管理回归测试流程,考虑将Fitnesse和Testlink进行集成。
两个平台集成的基本思路是: 1. 将Testlink上的用例和Fitnesse上的用例一一mapping. 2. 将Fitnesse上用例的执行结果能够实时反馈给Testlink上用例的执行结果。
Testlink Java api client提供了一个非常好的接口,
reportTestCaseResult(projectName,testPlanName,testCaseNameOrVisiableID,buildName,execNotes,testResultStatus)
该接口有6个参数,其中
projectName: Testlink上对应的测试工程名称
testPlanName:Testlink上测试工程对应的测试计划
testCaseNameOrVisiableID: Testlink上测试用例的名称或ID,这里的ID是指测试项目前缀加上‘-‘在加上阿拉伯数字
buildName:Testlink上对应测试计划的构建执行计划
execNotes:是指每个case执行后的备注,可以为null
testResultStatus:是指测试用例执行结果,‘p‘或者‘f‘
通过调用给接口,我们可以完成测试用例执行结果的传递。
接下去我们要解析Fitnesse执行结果的分析:
在这里我通过一个代理proxy来完成该任务,该代理需要完成Fitnesse测试执行结果的解析,测试用例ID的解析,然后完成TestLink接口的调用
如下图所示总体架构:
当然我的proxy还做了其他的事情,可以完成和Jenkins之间集成和调用。下图是最终完成的事列
上图备注是测试用例在fitnesse上的具体执行结果,可以点击查看失败用例的原因。
通过这个方法可以完成自动化测试用例和手工测试用例之间的mapping,也可以让测试人员了解哪些用例是可以通过自动化实现的。
总之使用Testlink java client api可以实现不同测试平台之间的集成,方便工具和用例的统一管理。
关于proxy代码有兴趣的话,可以上我的git hub主页获取。