zoukankan      html  css  js  c++  java
  • 精准测试系列《二》

    前期的文章:精准测试系列《一》讲解了 SuperJacoco 这个工具是什么,以及 SuperJacoco 能为我们测试解决哪些问题,以及现存在的一些问题。

    今天要分享的内容是:如何部署 SuperJacoco。
    先来看看下面这张图:

    Step1:看 super-jacoco 服务是如何部署的?
    需准备的前置条件:

    1、mvn 环境变量的配置。

    2、linux 所有在服务器上面的 maven setting.xml 文件的仓库地址配置。

    3、git 的账号及密码要在工程的配置文件中配置好,用于去 git 仓库拉取代码。

    4、copy jacoco-cli 到 linux 服务器下的 /root 目录下,编译打包好 super-jacoco.jar ,copy 到部署的服务器上。

    启动命令:nohup java -jar super-jacoco.jar &

    查看服务启动命令:tail -f nohup.out 

    通过这个命令查看日志来判断服务是否正常的启动

    备注:

    1、服务启动前我们需要把数据库准备好

    2、代码里面的数据库配置准备好

    3、项目中的启动端口要配置好

    Step2:被测服务器如何配置?
    我们需要找到被测服务的启动脚本,修改启动参数,如下所示:
    export JAVA_OPTS="$JAVA_OPTS -javaagent:/home/q/jacoco/lib/jacocoagent.jar=includes=com.maxim.*,output=tcpserver,port=9098,address=10.7.36.35 -Xverify:none"
    重启服务即可。

    备注:

    1、请求计算覆盖率接口中传入的 port 参数是--javaagent 里面设定的端口,用于获取 exec文件。

    2、接口中传入的 subModule 是指当前工程的一个模块,可以根据模块 + 本次变更的代码共两个条件来进行覆盖率的计算。

    3、被测试的服务一旦重启后就会丢失之前统计到的覆盖率数据。

    4、还要配置好被测服务器到 git 仓库拉取代码的相关信息,如:git命令安装等

    Step3:环境管理平台如何构建?
    我在实现这个平台时主要分为5个部分,第一版(比较简单)如下图所示:

    1、添加要部署工程的相关信息,并入库。

    2、点击部署,从库中提取配置好的要部署工程信息,然后调用 jenkins API 完成部署,并异步回写 jobId 和 jobStatus(主要是用来判断 job 服务是否成功)。

    3、测试人员针对本次发布的内容进行回归验证(这里针对的是小版本的增量代码变更回归验证)。

    4、执行统计操作是从 database 中提取相关信息组装好后发送给上面启动好的 super-jacoco 的服务,并异步回写覆盖率状态到库中。

    5、获取覆盖率报告是从 database 中提取一个 uuid 的值后发送给上面启动好的 super-jacoco 的服务, 并异步回写报告超链到库中。

    备注:调用的 api 中可以指定模块进行增量代码的覆盖率统计。
    至此,整个部署与开发的工作就完成了。
    可以来欣赏一下报告,如下图所示:

     

    欢迎关注【无量测试之道】公众号,回复【领取资源】
    Python编程学习资源干货、
    Python+Appium框架APP的UI自动化、
    Python+Selenium框架Web的UI自动化、
    Python+Unittest框架API自动化、

    资源和代码 免费送啦~
    文章下方有公众号二维码,可直接微信扫一扫关注即可。

    备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

     

     添加关注,让我们一起共同成长!

  • 相关阅读:
    SQL---一次插入多条数据【使用Union】
    SQL--联合查询【Union】
    也说梦想----2015年终总结
    csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)
    csharp:Nhibernate Procedure with CreateSQLQuery and GetNamedQuery
    csharp: Domain-Driven Design(领域驱动设计)
    csharp:VerifyCode in winform or webform
    csharp: DBNull and DateTime
    csharp: DataRelation objects to represent a parent/child/Level relationship
    csharp: .NET Object Relationional Mapper (ORM)- SubSonic
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/14793808.html
Copyright © 2011-2022 走看看