Jacoco 似乎不能直接生成变更代码的覆盖率,sonarQube 可以
基本思路,先把期望结果保存成文件,把返回的结果跟跟期望结果对比,如果返回的 html 比较简单,直接当成一个字符串对比就好了,次次可能会变化的部分想办法用正则表达式去除。如果 html 比较复杂,比如包含大量 js 或者 css 代码,可以用一些开源的操作 dom 的库只把有用的节点取出来校验。我用 node 做有两个经常用到的库 cheerio 和 jsdom,其他语言去 Github 搜一下。又或者使用 XML 的一些方法比如 xpath 取有用的节点校验。
RobotFramework 就是干这个的,而且已经相当成熟了,支持 selenium 等很多测试工具,支持写循环和 if else 逻辑判断,log 和 report 也非常强大。而且提供很灵活的编程接口,可以根据需要自己扩展比如定时跑,多进程跑,发送邮件报告,保存结果到 db 等等,编程语言是 python
个人觉得更好的办法是起一个测试服务器(PC 就行了)通过 http service 提供接口给持续集成来调用,可以更好的解耦。