当前位置: 主页 > 行业资讯 > 大数据培训 > 深圳大数据培训机构 如何使用emma统计代码执行覆盖率

深圳大数据培训机构 如何使用emma统计代码执行覆盖率

2018-04-02 17:17:34 作者:光环大数据 栏目:未知

光环大数据作为国内知名的高端IT就业培训机构,多年来培养无数高薪人才!为了让更多人了解大数据、人工智能、数据分析、python等相关技能,光环大数据免费提供学习视频、2周免费跟班试听课程,如有需要,可点击留言

光环大数据的大数据培训班,只聘请精英讲师,确保教学的整体质量与教学水准,讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需,通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。
深圳大数据培训机构
告诉你如何使用emma统计代码执行覆盖率,深圳大数据培训(光环大数据)专家就针对如何使用emma统计代码执行覆盖率这一问题做一个详细的分解。希望能在工作中对你有所帮助!

 

使用 emma 2.1 (emma-stable-2.1.5320-lib)

 

1. 新建 /home/q/java/emmalib 目录, 将emma.jar 与 emma_ant.jar 放入
 

2. 复制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh
 

修改启动语句
 

nohup java -Xmx1800M -Xms800m -Xbootclasspath/p:/home/q/java/emmalib/emma.jar -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -XX:+AggressiveOpts -XX:+UseParallelGC -server -classpath "$jarFile" com.qunar.common.mobileArc.MobileServer conf/TaLog.property conf/TripServer.property >> $LOG_HOME/error.log 2>&1 &
 

复制 /server/bin/mobileserver/stopServer.sh 到 stopServer_emma.sh
 

添加覆盖率导出命令
 

插入 emma 统计代码
 

使用root账号
 

1. 备份mobileserver.jar
 

cp /server/TripAssistant/mobile-server.jar $MOB_JAR_BAK/mobile-server.jar.{$timestamp}
 

2. 执行插入命令
 

java -cp /home/q/java/emmalib/emma.jar emma instr -m overwrite -cp mobile-server.jar -out coverage.em
 

输出如下:
 

EMMA: processing instrumentation path ...
 

EMMA: instrumentation path processed in 3117 ms
 

EMMA: [1000 class(es) instrumented, 126 resource(s) copied]
 

EMMA: metadata merged into [/server/TripAssistant/coverage.em]
 

3. 运行mobileserver runServer_emma.sh
 

sudo sh /server/bin/mobileserver/stopServer.sh && sudo sh /server/bin/mobileserver/runServer_emma.sh
 

在 /server/mobileserverlog/error.log中可见:
 

EMMA: collecting runtime coverage data ...
 

EMMA: runtime controller started on port [47653]
 

emma control 进程已启动
 

[root@l-wap4.beta.cn1.qunar.com /server/mobileserverlog]# netstat -na | grep 47653
 

tcp 0 0 0.0.0.0:47653 0.0.0.0:* LISTEN 20926/java
 

4. 执行 覆盖率文件导出命令
 

java -cp /home/q/java/emmalib/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec
 

可见输出:
 

EMMA: processing control command sequence ...
 

EMMA: executing [coverage.get (coverage.ec,true,true)] ...
 

EMMA: coverage.get: local copy of coverage data merged into [/server/TripAssistant/coverage.ec]
 

EMMA: coverage.get: command completed in 79 ms
 

EMMA: control command sequence complete

并且当前目录生成文件 coverage.ec
 

5. 生成报告
 

java -cp /home/q/java/emmalib/emma.jar emma report -r html -in coverage.em,coverage.ec
 

指定源代码生产覆盖率报告(需先上传源码)
 

java -cp /home/q/java/emmalib/emma.jar emma report -r html -in /server/TripAssistant/coverage.em,/server/TripAssistant/coverage.ec -Dreport.html.out.file=mycoverage/coverage.html -sp /home/liang.zhou/mob_code_dir/mobs_trunk/src/main/java
 

emma 方式启动 mobserver
 

==================================
 

1. 判断mobserver.jar size, 大于5M 为已插入过, 小于5M为未插入(需要执行插入)
 

2. 执行插入
 

3. 启动
 

4. 检查启动状态
 

47653 端口打开
 

mobileserver 进程打开
 

emma 方式停止 mobserver
 

==================================
 

1. 检查47653端口打开状态, 检查coverage.em是否存在
 

2. 导出覆盖率文件 coverage.ec, 备份coverage.em (加上时间戳)
 

3. 导出覆盖率HTML report (加上对应时间戳)
 

4. kill mobserver 进程
 

ls -lt mobile-server.jar
 

判断 $? == 0
 

判断mobile-server.jar size是否大于 5M
 

#!/bin/bash
   function stop_mob_server(){
   #!/bin/bash
   function stop_mob_server(){
   pid=`ps aux | grep MobileServer | grep -v grep | awk '
   Unknown macro: {print $2}
  '`
   ` kill -9 $
   Unknown macro: {pid}
   `
   sleep 1
   echo "Stop mobileserver success."
   }
   #判断 emma ctl 是否启动
   port_check_result=`netstat -na | grep 47653 | awk '
   Unknown macro: {print $1}
   '`
   if [ -z $
   Unknown macro: {port_check_result}
   ]; then
    echo "Emma ctl port 47653 is not LISTEN. Coverage.ec export operation aborted."
   else
   #emma ctl 为启动状态,导出 coverage.ec, 并备份至 /home/q/mobsrv_cov
   if []
   fi

想知道更多关于IT行业的信息吗?想远远不如行动,行动起来,一起加入光环大数据,一起进入IT行业,跟着光环大数据的脚步,一起走进如今的互联网信息时代,带给你不一样的色彩生活——【深圳大数据培训】


光环大数据作为国内知名的高端IT就业培训机构,多年来培养无数高薪人才!为了让更多人了解大数据、人工智能、数据分析、python等相关技能,光环大数据免费提供学习视频、2周免费跟班试听课程,如有需要,可点击留言
Tags标签 大数据培训

领取资料

X
立即免费领取

请准确填写您的信息

点击领取