🔥 交流讨论:欢迎加入我们一起学习!
🔥 资源分享:耗时200+小时精选的「软件测试」资料包
🔥 教程推荐:火遍全网的《软件测试》教程
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
jmeter+ant接口自动化测试与性能测试实战
首先需要安装和配置jmeter和ant 环境
jmeter与ant整合
在ant的lib目录下把ant-jmeter-1.1.1.jar 复制到jmeter的extras目录下。
邮件的插件activation.jar ,commons-email-1.2.jar ,mail.jar 放到jmeter的lib目录下
测试脚本
在jmeter文件下边新建一个tests文件夹 ,report存放html测试报告和jtl文件信息
script存放的是要测试的接口脚本
build.xml文件信息
<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<property name="jmeterPath" value="E:\apache-jmeter-5.4.1"/>
<property name="mailhost" value="smtp.qq.com"/>
<property name="username" value="xxxx@qq.com"/>
<property name="password" value="sszhgagfkdynbbeaa"/>
<property name="mailfrom" value="xxxx@qq.com"/>
<property name="mail_to" value="xxxx@qq.com,"/>
<property name="mailsubject" value="API测试报告"/>
<property name="mail_port" value="587"/>
<property name="message" value="Hi!请查收下,API测试报告,如有任何疑问,请联系我,谢谢!"/>
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property name="jmeter.home" value="${jmeterPath}" />
<property name="jmeter.result.jtl.dir" value="${jmeterPath}\tests\report\jtl" />
<property name="jmeter.result.html.dir" value="${jmeterPath}\tests\report\html" />
<property name="htmlReportNameSummary" value="testReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html" />
<target name="run">
<antcall target="test" />
<antcall target="report" />
<antcall target="sendEmail" />
</target>
<!--执行接口测试-->
<target name="test">
<echo>执行接口自动化测试</echo>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!--要执行的测试脚本-->
<testplans dir="${jmeterPath}\tests\script" includes="ApiPerformance.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!--解决报告中NAN字段显示问题-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer-2.7.2.jar"/>
</path>
<!--生成HTML测试报告-->
<target name="report">
<echo>生成接口自动测试报告</echo>
<xslt classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
<!--复制图片-->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<!--自动发送邮件-->
<target name="sendEmail">
<echo>发送自动化测试报告</echo>
<mail mailhost="${mailhost}"
user="${username}"
password="${password}"
mailport="${mail_port}"
subject="${mailsubject}"
messagemimetype="text/html"
tolist="${mail_to}">
<from address="${mailfrom}" />
<attachments>
<fileset dir="${jmeter.result.html.dir}">
<include name="${htmlReportNameSummary}${time}.html"/>
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</attachments>
<message>
${message}
</message>
</mail>
</target>
</project>
在build.xml文件路径下,执行ant
生成的测试报告内容
性能报告
把bin目录下的jmeter.properties文件添加jmeter.save.saveservice.output_format=csv
在tests目录下新建一个performanceReport文件夹。
执行命令:
jmeter -n -t script/ApiPerformance.jmx -l api.jtl -e -o performanceReport/
执行成功后会生成性能测试报告:
测试报告:
jmeter+influxdb+grafana实时监控
Influx安装
执行命令:wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate
解压安装:执行命令:rpm -ivh influxdb-1.7.0.x86_64.rpm
修改默认的配置文件 /etc/influxdb/influxdb.conf
执行命令:vim /etc/influxdb/influxdb.conf,将最终修改的配置如下:
[[graphite]]
# Determines whether the graphite endpoint is enabled.
enabled = true
database = "jmeter" # 数据库名称
retention-policy = ""
bind-address = ":2003" # 端口
protocol = "tcp"
consistency-level = "one"
修改以下信息
[meta]
dir = "/usr/local/influxdb/meta" #存放最终存储的数据,文件以.tsm结尾
[data]
dir = "/usr/local/influxdb/data" #存放数据库元数据 wal
wal-dir = "/usr/local/influxdb/wal" #存放预写日志文件
修改HTTP端口信息
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true
# The bind address used by the HTTP service.
bind-address = ":8086"
修改完成后执行:wq保存退出
上边设置了存放数据的目录为/usr/local/influxdb,需要手动创建并授权
mkdir -pv /usr/local/influxdb/
chown -R influxdb:influxdb /usr/local/influxdb/
启动与开机自启
systemctl restart influxdb
systemctl enable influxdb
创建数据库及用户
执行命令如下:
JMeter配置
然后发送请求后,在服务器上查看influxdb是否有接收数据成功
Grafana安装
安装比较简单详细步骤参考:https://www.cnblogs.com/wx170119/p/13330638.html
然后执行jmeter
最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!