一、目前市面上接口工具
postman+Newman+git+Jenkins
jmeter+Ant+git+Jenkins
二、jmeter常用组件
必须:
测试计划
线程组
取样器
辅助:
逻辑控制
前置处理器
后置处理器
断言
定时器
配置元件
监听器
执行顺序:
配置元件》前置处理器》定时器》取样器》后置处理器》断言》监听器
作用域:
组件对于其父组件,同级组件,同级组件的子组件起作用
三、非GUI方式运行
只有非GUI(命令行)运行方式:jmeter
具体步骤如下:
先通过命令进入存放【.jmx】文件的文件夹
1.-n -t
-n 表示非GUI方式运行jmeter脚本,不能单独使用。
-t 表示用来指定jemter脚本
运行截图如下:(第一次运行的时候文件夹里最好只要有【.jmx】文件,防止其他报错)
运行之后会在存放【.jmx】文件的文件夹下面生成一个日志文件【jmeter.log】,没什么作用
2.-l
-l表示指定报告文件。文件格式是jtl格式,这种格式可以通过jmeter的任意监听器查看。
使用jmeter监听器查看文件
特别注意:必须要修改配置文件jmeter.propties才能使用。
修改完成后重启jmeter,让配置生效。
3.-e -o(执行前把所有非用例的文件全部删除)
-e 表示生成HTML网页格式的报告。不能单独使用,必须和-o一起使用。
-o 表示指定存放HTML网页格式报告的文件夹。文件夹必须是空目录。
配置文件jmeter.propties要改一下哈,不然无法识别
运行命令:
jmeter -n -t 光年.jmx -l results.jtl -e -o result
点击,显示一个基本的html报告
四、通过Ant和Build执行Jmeter的脚本并且生成详细报告
1.下载Ant
2.配置build.xml,用于构建报告(存放在【.jmx】文件同一目录下)。
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="C:\apache-jmeter-5.5\apache-jmeter-5.5" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="C:\apache-jmeter-5.5\apache-jmeter-5.5\TestCase\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="C:\apache-jmeter-5.5\apache-jmeter-5.5\TestCase\html" />
<!-- jmeter生成html格式的结果报告的前缀-->
<property name="ReportName" value="接口自动化汇总接口" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<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="C:\apache-jmeter-5.5\apache-jmeter-5.5\TestCase" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="report">
<tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"