jmeter输出html报告

目录

一、windows下html报告生成

1、相关安装和下载

(1)java安装(忽略)

(2)jmeter安装(忽略)

(3)ant安装

(4)jmeter的html报告优化插件

2、ant剧本配置

​ (1)build.xml

(2)jmeter.properties修改

(3)运行

(4)发送邮件

二、jmeter压测

1、liunx安装jmeter

2、jenkins任务配置

(1)手工将脚本放入执行的机器上

(2) jenkins配置内容​

(3)问题解决 

 3、jenkins配置参数驱动jmeter压测脚本

4、curl方式执行jenkins


一、windows下html报告生成

方案:jmeter自带的html报告不展示每个请求的详细情况,使用ant工具制作工作流(执行jmeter脚本--->生成html报告--->发送邮件)

1、相关安装和下载

(1)java安装(忽略)

(2)jmeter安装(忽略)

(3)ant安装

       第一步:下载地址  http://ant.apache.org/bindownload.cgi

       第二步:下载后解压到想要安装的目录,我放入了 jmeter的根目录下

       第三步:将jmeter所在的目录下extras子目录里的ant-jmeter-1.1.1.jar复制到ant所在目录lib子                          目录之下,这样ant运行时才能找到”                                                                                                 org.programmerplanet.ant.taskdefs.jmeter.JMeterTask”这个类,从而成功触发                               JMeter脚本。

       第四步:配置环境变量

                       ANT_HOME   F:\apache-Ant

                      CLASSPATH    %ANT_HOME%\lib   (这里注意java的配置,在java后面追加)

                       Path        %ANT_HOME%\bin

                     

(4)jmeter的html报告优化插件

      作用:是用来配置jmeter报告的样式

      第一步:下载地址  http://shanhe.me/download.php?file=jmeter.results.shanhe.me.xsl

       第二步:放在jmeter的extras目录下

2、ant剧本配置

我创建了一个独立的目录jmeterAutoTest方便梳理思路

jmeter输出html报告_第1张图片 (1)build.xml

      作用: build.xml文件是ant命令执行的文件

      内容主要修改点:所有路径的地方修改为自己的

      路径解析:testplans的路径下为需要运行的脚本---->

                        执行结果jtl文件放在jmeter.result.jtl.dir--->

                        将jtl文件解析为html结果放在jmeter.result.html.dir

      jmeter.results.shanhe.me.xsl插件使用也在里!!!!


    
        
    
    
    
    
    
       
    
    
    
  
    
    
    
     
    
        
        
    
    
        
        
            
            
        
    

    
        
        
    

    
        
            
    
        
        
            
                
                
            
        
    

(2)jmeter.properties修改

jmeter.save.saveservice.output_format=xml

# The below properties are true when field should be saved; false otherwise
#
# assertion_results_failure_message only affects CSV output
jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
jmeter.save.saveservice.assertion_results=none
#
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=true
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
# Only available with HttpClient4
#jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=true
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
#jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=false
jmeter.save.saveservice.hostname=false
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=false
jmeter.save.saveservice.idle_time=true

(3)运行

将调试好的脚本放入build.xml中testplans指向的路径

jmeter输出html报告_第2张图片

在build.xml文件所在的目录下(ant默认会找当前目录下的build.xml文件)

jmeter输出html报告_第3张图片

jmeter输出html报告_第4张图片

如果 style="${jmeter.home}/extras/jmeter-results-report_21.xsl"> 

结果样式为:(没有请求的详细内容)

jmeter输出html报告_第5张图片

(4)发送邮件

第一步:下载插件

commons-email.jar :http://www.xwood.net/_site_domain_/_root/5870/5930/5932/9330/9352/t_c46454.html

activation-1.1.1.jar:https://maven.ityuan.com/maven2/javax/activation/activation/1.1.1

javax.mail.jar:https://maven.java.net/content/repositories/releases/com/sun/mail/javax.mail/1.6.0/

三个插件都放入ant的lib目录下

第二步:修改build.xml文件




    
        
    
    
    
    

    
    
    
    
    
    
    
    
    

    
    
    
    
    
    
    
    
    
    
    

    
        
        
        
    

    
        发送测试报告
            
            

                
                    
                        
                    
                

                
                ${message}
                
            

    

    
    
        
        
    

    
        
        
            
            

            
        
    

    
     
     
              
              

       

    

执行命令:

jmeter输出html报告_第6张图片

jmeter输出html报告_第7张图片

说说 我163邮箱的授权码哪里得来的

jmeter输出html报告_第8张图片

二、jmeter压测

目的:将jmeter压测脚本放置在liunx机器上运行,并使用jenkins触发、展示结果、发送邮件

1、liunx安装jmeter

java安装:https://blog.csdn.net/qq_42815754/article/details/82968464

jmeter安装:wget https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz(解压就行了)

2、jenkins任务配置

(1)手工将脚本放入执行的机器上

后期可以使用git管理脚本(jenkins如何拉去git代码自行脑补吧)

jmeter输出html报告_第9张图片

(2) jenkins配置内容

jmeter输出html报告_第10张图片

 构建后加上两个插件解析报告jmeter输出html报告_第11张图片

jmeter输出html报告_第12张图片 邮件配置

jmeter输出html报告_第13张图片

邮件内容




(本邮件是Jenkins自动发送,请勿回复!)

hi, 韩芳jmeter-jenkins测试报告:
${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志

构建信息
测试报告:
附件解压查看

 执行后jenkins的结果展示(dashboard报告和jtl的报告)

jmeter输出html报告_第14张图片

jmeter输出html报告_第15张图片 邮件展示

jmeter输出html报告_第16张图片

(3)问题解决 

 第一个问题:

一个变量只能使用两次,4次http的请求中前两次没有问题第三个请求失败,在liunx环境执行报错这个,但是windows却没有这个问题,我也是头疼(怀疑bat和sh执行文件不同,有机会可以研究下)

jmeter输出html报告_第17张图片

 解决办法:https://www.cnblogs.com/glumer/p/11363156.html

jmeter输出html报告_第18张图片 第二个问题:jenkins不展示js的问题,导致jmeter的dashboard展示不了

 解决:https://testerhome.com/topics/9476

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", ""

jmeter输出html报告_第19张图片

 3、jenkins配置参数驱动jmeter压测脚本

jmeter输出html报告_第20张图片

jmeter输出html报告_第21张图片

jmeter输出html报告_第22张图片

 jenkins中的执行shell

jmeter输出html报告_第23张图片

#清除历史数据
rm -rf /home/guobin1/jmeter/log/*
rm -rf /home/guobin1/jmeter/*.jtl
rm -rf /home/guobin1/jmeter/result/*
rm -rf /home/guobin1/jmeter/result-*.tar.gz

#jmeter的命令行模式执行脚本
# -n -t 已命令行方式执行后面的jmx脚本
# -l 指定jtl的结果
# -j 指定输出日志
# -e -o 指定dashboard的报告输出路径,一定要保证是空的
# -J 对jmeter脚本动态传入参数化值
/home/guobin1/jmeter/apache-jmeter-5.4.1/bin/jmeter.sh  -n -t /home/guobin1/jmeter/script/one.jmx -l /home/guobin1/jmeter/jmeter-${BUILD_NUMBER}-${BUILD_ID}.jtl -j  /home/guobin1/jmeter/log/jmeter-${BUILD_NUMBER}-${BUILD_ID}.log -e -o /home/guobin1/jmeter/result -JthreadNum=${threadNum} -JloopNum=${loopNum} -JrampupTime=${rampupTime} -Jip=${ip}

# 打包结果做邮件附件
tar -zcf result-${BUILD_NUMBER}.tar.gz result

4、curl方式执行jenkins

方便运维,研发使用

jmeter输出html报告_第24张图片

#不带参数方式
curl -v -X GET "http://(jenkins的ip):8080/jenkins/job/hf-test-allure/build?token=123456" --user 用户名:密码

# 带参数方式
curl -v -X GET "http://(jenkins的ip):8080/jenkins/job/hf-test-allure/buildWithParameters?token=123456&loopNum=100&rampupTime=10" --user 用户名:密码

不想使用自己的账户密码,可以创建一个公共的账号

jmeter输出html报告_第25张图片jmeter输出html报告_第26张图片

参考文章:https://www.cnblogs.com/nzg-noway/p/6909821.html

https://www.cnblogs.com/yifeixu/p/11742452.html

https://www.cnblogs.com/poloyy/p/13280899.html

你可能感兴趣的:(jenkins,java)