一、监控服务器性能
1、PerfMon插件
2、ServerAgent
3、监控目标服务器性能简介及演示
一、docker应用
1、docker环境安装
2、docker基本命令
3、docker实战部署
二、性能测试监控
1、搭建grafana+Prometheus+jmeter性能监控平台
2、搭建grafana+influxdb+jmeter性能监控平台
三、持续集成
1、持续集成的概念
2、Jenkins+Ant+Jmeter环境搭建
2.1 配置Jmeter、Ant、Jenkins环境
https://blog.csdn.net/weixin_46457203/article/details/105860961
2.2 使用Ant+Jmeter+Jenkins搭建接口自动化
3、持续集成配置文件讲解
<?xml version="1.0" encoding="GBK"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<target name="run">
<antcall target="clear1" />
<antcall target="test1" />
<antcall target="report1" />
<antcall target="sendmail1" />
</target>
<target name="test1">
<echo message="开始执行jmeter脚本..."></echo>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="jmeter家目录" resultlog="jtl路径\1.jtl">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="脚本路径" includes="脚本名称" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="jmeter中lib路径" includes="xalan*.jar"/>
<fileset dir="jmeter中lib路径" includes="serializer*.jar"/>
</path>
<target name="report1">
<echo message="开始转换执行结果..."></echo>
<tstamp> <format property="time" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt classpathref="xslt.classpath"
force="true"
in="jtl路径\1.jtl"
out="html路径\1.html"
style="jmeter中exaters的路径+jmeter-results-detail-report_21的名称">
<param name="titleReport" expression="xxxxx"/>
<param name="dateReport" expression="${time}"/>
</xslt>
<!-- jmeter-results-detail-report_21 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝-->
<copy todir="html的路径">
<fileset dir="jmeter中exaters的路径">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<target name="clear1">
<!-- 每次执行前先删除清空jtl和html文件夹,释放空间 -->
<echo message="释放空间,清空jtl和html文件夹中 ..."></echo>
<delete dir="jtl的路径" />
<delete dir="html的路径" />
<!-- 删除单个文件-- >
<delete file="jtl的路径\1.jtl" />
<sleep seconds="2"/>
<echo message="释放完成 ..."></echo>
</target>
<target name="sendmail1">
<!--把报告进行压缩打包-->
<jar jarfile="report的路径.rar" basedir="html的路径"/>
<!--把文件贴到邮件正文-->
<loadfile property="html" srcFile="html的路径\1.html" encoding="UTF-8">
<filterchain>
<expandproperties />
</filterchain>
</loadfile>
<mail mailhost="smtp.126.com"
mailport="25" subject="邮件标题"
messagemimetype="text/html" tolist="norma_bai@163.com"
user="norma_bai@163.com" password="邮箱授权码">
<from address="norma_bai@163.com"/>
<!--发送附件-->
<fileset dir="在jmeter中创建的文件夹">
<include name="report.rar"/>
</fileset>
<message><![CDATA[
<p>维度电影项目组收:</p>
<pre> ${html} </pre>
<p>自定义邮件内文字</p>
]]></message>
</mail>
</target>
</project>
<?xml version="1.0" encoding="GBK"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<target name="run">
<antcall target="clear1" />
<antcall target="test1" />
<antcall target="report1" />
<antcall target="sendmail1" />
</target>
<target name="test1">
<echo message="开始执行jmeter脚本..."></echo>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="D:\tools\apache-jmeter-5.0" resultlog="E:\Jmeter\result\1.jtl">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="E:\Jmeter\scrpit" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="D:\tools\apache-jmeter-5.0\lib" includes="xalan*.jar"/>
<fileset dir="D:\tools\apache-jmeter-5.0\lib" includes="serializer*.jar"/>
</path>
<target name="report1">
<echo message="开始转换执行结果..."></echo>
<tstamp> <format property="time" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt classpathref="xslt.classpath"
force="true"
in="E:\Jmeter\result\1.jtl"
out="E:\Jmeter\html\1.html"
style="D:\tools\apache-jmeter-5.0\extras\jmeter-results-detail-report_21.xsl">
<param name="titleReport" expression="测试报告"/>
<param name="dateReport" expression="${time}"/>
</xslt>
<!-- jmeter-results-detail-report_21 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="E:\Jmeter\html">
<fileset dir="D:\tools\apache-jmeter-5.0\extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<target name="clear1">
<!-- 每次执行前先删除清空jtl和html文件夹,释放空间 -->
<echo message="释放空间,清空jtl和html文件夹中 ..."></echo>
<delete dir="E:\Jmeter\result" />
<delete dir="E:\Jmeter\html" />
<!-- 删除单个文件-->
<delete file="E:\Jmeter\1.rar" />
<sleep seconds="2"/>
<echo message="释放完成 ..."></echo>
</target>
<target name="sendmail1">
<!--把报告进行压缩打包-->
<jar jarfile="E:\Jmeter\1.rar" basedir="E:\Jmeter\html"/>
<!--把文件贴到邮件正文-->
<loadfile property="html" srcFile="E:\Jmeter\html\1.html" encoding="UTF-8">
<filterchain>
<expandproperties />
</filterchain>
</loadfile>
<mail mailhost="smtp.qq.com"
mailport="25" subject="测试结果"
messagemimetype="text/html" tolist="273153@qq.com"
user="273153@qq.com" password="nwybggd">
<from address="273153@qq.com"/>
<!--发送附件-->
<fileset dir="E:\Jmeter">
<include name="1.rar"/>
</fileset>
<message><![CDATA[
<p>项目组收:</p>
<pre> ${html} </pre>
<p>自定义邮件内文字</p>
]]></message>
</mail>
</target>
</project>
1、获取QQ邮箱授权码
2、build.xml需保持为ANSI编码,否则执行过程中会出现乱码
4、实现步骤
4.1 首先根据ant和jmeter验证脚本可以正常执行
在当前目录下输入cmd命令,然后输入ant命令,检查脚本能否正常执行
注意点:若报错ant不是内部命令,则检查环境变量path路径,将%ANT_HOME%修改为ant的绝对路径
4.2 在Jenkins工具内完成以下操作
- 在全局工具配置中添加JDK和ANT的绝对路径
- 新建任务
- 设置构建触发器
- 该任务的构建环境选择全局工具配置中设置的ant和JDK
- 该任务的构建栏位选择Execute Windows batch command,输入ant命令(即cmd下的ant命令)
- 然后再在该任务的构建栏位添加invoke ant,选择ant版本,在build file中输入build.xml的完整路径
- 将4.1步已验证的脚本放入jmeter的任务目录之下
- 修改build.xml中相关的文件路径,均指向jmeter工作空间下的任务目录
4.3 点击build now立即构建,或者按照触发器构建后,检查构建日志
构建失败原因一:’ant’ 不是内部或外部命令,也不是可运行的程序
解决办法:修改环境变量path:ant路径为绝对路径:D:\tools\apache-ant-1.9.14\bin
构建失败原因二:build.xml不在Jenkins工作空间下该任务的目录下
构建失败原因三:原因是未修改build.xml中的脚本路径,导致scrpit目录不存在
ssh-rsa 2048 0b:02:4b:74:9d:ee:20:ba:20:b5:79:4a:37:6b:33:9a
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