首页 技术 正文
技术 2022年11月11日
0 收藏 943 点赞 2,488 浏览 3659 个字

工具介绍:

  •   jmeter

接口编写,调试,执行。

  •   ant

Ant是Java的生成工具,都是用来编译、生成;Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录、复制文件等功能,所以可以直接点击Ant文件,即可编译生成你的项目。

Ant由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。

在这个框架内,ant通过xml构建文件创建一个项目。这个项目执行了1、运行jmeter脚本的任务;2、生成测试记录和测试结果报告。

  • jenkins

执行ant的build文件,何时执行,执行记录等。也就是说,如果不需要记录版本等,用ant+jmeter即可完成简单的自动化接口构架。

主要配置:

1、让ant运行jmeter脚本

将jmeter的extras文件中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中,该包相当于是ant和jmeter连接的桥梁,作用是使Ant运行时能够找到”org.programmerplanet.ant.taskdefs.jmeter.JMeterTask”这个类,从而成功触发JMeter脚本。

2、优化报告内容

Jmeter默认的报告展示的信息比较少,不是很方便定位问题。要查看构建的详细信息,需要另行设置。

修改Jmeter的bin目录下jmeter.properties文件的配置。

1、jmeter.save.saveservice.output_format=csv修改为xml。作用是使Jmeter报告输出文件格式为xml。这一步很重要,不修改会导致格式报错。

2、下列设置全部设置为true,即全部显示在文件内。这样执行完脚本后就会保存这些结果到.jtl文件里面。这属于优化内容。可根据需求设置。

  3、给ant创建build文件

build.xml:Ant根据该文件运行jmeter脚本(关键文档,需要配置正确)

主要作用就是把生成的.jtl数据文件转换为.html格式的报告。(前提:下载style文件jmeter.results.shanhe.me.xsl放到jmeter的extras目录下)

网上代码很多,可根据需求摘取。

<?xml version="1.0" encoding="UTF-8"?><project name="ant-jmeter-test" default="run" basedir=".">     <tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property name="basedirectory" value="D:\Work\jmeter\apache-jmeter-5.1.1\extras" />
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\Work\jmeter\apache-jmeter-5.1.1" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="E:\java\JmeterTest\resultLog\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="E:\java\JmeterTest\resultLog\html" />
<!-- Name of test (without .jmx) -->
<property name="test" value="Test"/>
<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${time}.html" /> <path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path> <!--主要执行任务,包括2个子任务-->
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target> <!--test任务-->
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="E:\工作内容\测试项目\配置中心测试2.0" includes="配置中心接口自动化测试.jmx" /> </jmeter>
</target> <!--report任务-->
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt classpathref="xslt.classpath" rel="external nofollow"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target> </project>

具体属性的含义:

in:生成的.jtl文件的路径

out:生成的.html文件的路径

style:从.jtl转换成.html所使用的样式,这些文件也在extras目录下,上文中写的前提内容。

  4、Jenkins配置

  5、Jenkins执行成功后,查看html报告

常见问题

1、保存文件问题

报这样的错误是因为 :jmeter默认保存的是csv格式的文件,需要修改成xml格式。将jmeter.properties文件中#jmeter.save.saveservice.output_format=csv改为jmeter.save.saveservice.output_format=xml (#也要去掉)。

2、响应乱码导致构建失败

接口实际返回的是excel文档,响应信息出现乱码问题。导致jenkins构建报错。

去jtl文件内查看,是有乱码问题

解决方案:导出文件内容存到本地,修改responsdata。jmeter导出请求后加BeanShell或者JSR223 后置处理器,代码如下:

//将导出内容存到本地
byte[] result=prev.getResponseData();
String file_name="E:\\jmeter脚本\\apitest\\TerminalDevicePoint.xlsx";
File file =new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
//修改responsedata内容
if(file.exists())
{
prev.setResponseData("导出成功","utf-8");
log.warn("导出成功");
}
else
{
prev.setResponseData("导出失败","utf-8");
log.warn("导出失败");
}
上一篇: 题解-P3810
下一篇: UF_VEC 向量相关
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,133
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297