目录
一、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
方案:jmeter自带的html报告不展示每个请求的详细情况,使用ant工具制作工作流(执行jmeter脚本--->生成html报告--->发送邮件)
第一步:下载地址 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
作用:是用来配置jmeter报告的样式
第一步:下载地址 http://shanhe.me/download.php?file=jmeter.results.shanhe.me.xsl
第二步:放在jmeter的extras目录下
我创建了一个独立的目录jmeterAutoTest方便梳理思路
作用: build.xml文件是ant命令执行的文件
内容主要修改点:所有路径的地方修改为自己的
路径解析:testplans的路径下为需要运行的脚本---->
执行结果jtl文件放在jmeter.result.jtl.dir--->
将jtl文件解析为html结果放在jmeter.result.html.dir
jmeter.results.shanhe.me.xsl插件使用也在里!!!!
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
将调试好的脚本放入build.xml中testplans指向的路径
在build.xml文件所在的目录下(ant默认会找当前目录下的build.xml文件)
如果 style="${jmeter.home}/extras/jmeter-results-report_21.xsl">
结果样式为:(没有请求的详细内容)
第一步:下载插件
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}
执行命令:
说说 我163邮箱的授权码哪里得来的
目的:将jmeter压测脚本放置在liunx机器上运行,并使用jenkins触发、展示结果、发送邮件
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(解压就行了)
后期可以使用git管理脚本(jenkins如何拉去git代码自行脑补吧)
邮件内容
(本邮件是Jenkins自动发送,请勿回复!)
hi, 韩芳jmeter-jenkins测试报告:
${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志
构建信息
- 项目名称: ${PROJECT_NAME}
- 构建编号: 第${BUILD_NUMBER}次构建
- 构建状态:${BUILD_STATUS}
- 构建日志: ${BUILD_URL}console
- 构建地址: ${BUILD_URL}
- 项目地址: ${PROJECT_URL}
测试报告:
附件解压查看
执行后jenkins的结果展示(dashboard报告和jtl的报告)
第一个问题:
一个变量只能使用两次,4次http的请求中前两次没有问题第三个请求失败,在liunx环境执行报错这个,但是windows却没有这个问题,我也是头疼(怀疑bat和sh执行文件不同,有机会可以研究下)
解决办法:https://www.cnblogs.com/glumer/p/11363156.html
第二个问题:jenkins不展示js的问题,导致jmeter的dashboard展示不了
解决:https://testerhome.com/topics/9476
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", ""
jenkins中的执行shell
#清除历史数据
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
方便运维,研发使用
#不带参数方式
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 用户名:密码
不想使用自己的账户密码,可以创建一个公共的账号
参考文章: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