统计容器中应用的黑盒测试覆盖率
发布时间:2020-02-16 05:33:34 所属栏目:资源 来源:测试架构之道
导读:随着 互联网 的繁荣发展, 测试 人员的整体水平也在不断的提升,各大公司对测试人员的要求也早已不再只停留在 功能测试 上。Docker、CI/CD、DevOps等等,这些不断提升开发质量和效率的流程和 技术 无不提醒着测试人员丰富自己的技术栈。为了保证覆盖更多的
随着互联网的繁荣发展,测试人员的整体水平也在不断的提升,各大公司对测试人员的要求也早已不再只停留在功能测试上。Docker、CI/CD、DevOps等等,这些不断提升开发质量和效率的流程和技术无不提醒着测试人员丰富自己的技术栈。为了保证覆盖更多的场景、保证产品和交付质量,我们决定统计接口/黑盒测试的覆盖率。 JaCoCo 简单点来说,JaCoCo通过使用探针技术修改Jar文件、Class文件的字节码进行插桩,插桩后使用Jacocoagent的方式dump出jacoco.exec文件,通过第三方工具,解析exec文件后可得到覆盖率。Jacoco的插桩方式一共有两种: 1.On-the-fly:JVM中通过-javaagent参数指定特定的jar文件启动Instrumentation的代理程序,代理程序在通过Class Loader装载一个class前判断是否转换修改class文件,将统计代码插入class,测试覆盖率分析可以在JVM执行测试代码的过程中完成。 2.Offline:在测试前先对文件进行插桩,然后生成插过桩的class或jar包,测试插过桩 的class和jar包后,会生成动态覆盖信息到文件,最后统一对覆盖信息进行处理,并生成报告。 在本次的黑盒测试覆盖率统计的实践过程中,我们采用的是On-the-fly的插桩模式,可以在运行中进行埋点和数据采集,可以实时的拿到覆盖率统计数据而无需中途停止服务或重启服务。 实际场景 我们的项目部署在容器中,容器通过K8S集群进行调度和管理,整个项目部署的流程由搭建在K8S集群外的Jenkins管理,实际部署的场景如下图所示:![]() ![]() ![]() (编辑:徐州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |