背景:在每次代码改动的时候,如果全量回归用例,在用例规模不大的时候运行时间还可以接受,但是在随着用例规模增大,全量回归接口测试用例耗时将变得越来越慢,而且,代码可能就修改了几行方法,也只需要部分测试用例即可覆盖,这时候就非常有必要精准推荐测试用例了,只需要针对性的部分用例即可覆盖到相关的被修改的方法,减少不必要的测试。

本方案是在基于接口测试的场景下实现的,主要核心思想是通过 jacoco 的覆盖率数据,解析类和方法的覆盖率,绑定用例关系,建立知识库,这样就可以实现用例和代码的双向绑定。

具体方法是并发运行接口测试用例,收集每个 caseId 对应的探针数据,这个方案的难点是需要改造 jacoco 的 agent,改造探针的数据结构,使用 map 来存取探针数据,key 为 caseId,以 caseId 来划分探针覆盖率数据,这样子就可以实现并发收集用例相关的覆盖率数据了。在收集覆盖率数据完成后,解析覆盖率数据,过滤出类和方法有覆盖率的数据,绑定用例,最终把类和方法关联的用例存入数据库,建立知识库。在做用例推荐的时候,diff 出来差异代码,通过知识库去查找关联的 caseId,最终实现精准用例推荐功能。

原文链接:https://blog.csdn.net/qq_34418450/article/details/145157266


↙↙↙阅读原文可查看相关链接,并与作者交流