jmeter使用

编写测试用例

文档

http接口测试(webservice)

  • HTTP Request Defaults 请求默认信息
    HTTP Request中没有配置的话,会从这里取值

  • User Defined Variables 定义变量
    使用${param}取值

  • HTTP Request http请求配置

  • 文件上传配置
    Parameter Name : 服务器MultipartFile参数对象名
    File Path : 客户端上传的文件路径
    MIME type : multipart/form-data

  • jmeter中JSON Extractor用法

执行测试用户

集群运行

  • slave节点
    jmeter.properties
    1
    2
    3
    4
    ## slave server端口
    server_port=1099
    ## 关闭https服务
    server.rmi.ssl.disable=true

./jmeter-server 启动slave节点
./bin/jmeter-server -Djava.rmi.server.hostname=192.168.5.121 多网卡需要指定IP

  • master节点
    jmeter.properties
    1
    2
    3
    4
    5
    ## 配置多个slave的ip:port
    remote_hosts=192.168.18.141:1099,192.168.18.141:2099

    ## 关闭https服务
    server.rmi.ssl.disable=true

jmeter -n -t my_test.jmx -l log.jtl -e -o reports 运行脚本

jmeter-maven-plugin

  • 远程slave节点运行配置示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <plugin>
    <groupId>com.lazerycode.jmeter</groupId>
    <artifactId>jmeter-maven-plugin</artifactId>
    <version>2.8.0</version>
    <configuration>
    <!-- -testfile xxx.jmx -->
    <!--<guiTestFile>result/test01.jmx</guiTestFile>-->

    <!-- 测试脚本 *.jmx文件目录,默认路径src/test/jmeter -->
    <testFilesDirectory>testFiles</testFilesDirectory>

    <!-- 设置jmeter jvm参数 -->
    <jMeterProcessJVMSettings>
    <xms>1024</xms>
    <xmx>1024</xmx>
    <arguments>
    <argument>-Dfile.encoding=UTF-8</argument>
    </arguments>
    </jMeterProcessJVMSettings>

    <!-- bin/jmeter.properties -->
    <propertiesJMeter>
    <language>en</language>
    <!--<remote_hosts>${remoteConfig.serverList}</remote_hosts>-->

    <!-- java.io.FileNotFoundException: rmi_keystore.jks -->
    <server.rmi.ssl.disable>true</server.rmi.ssl.disable>
    </propertiesJMeter>

    <!-- 使用远程jmeter-slave执行jmx脚本 -->
    <remoteConfig>
    <startServersBeforeTests>true</startServersBeforeTests>
    <!-- slave集群 -->
    <serverList>192.168.5.41:7777,192.168.5.121:7777</serverList>
    <!-- 执行完测试用例关闭slave进程 -->
    <!--<stopServersAfterTests>true</stopServersAfterTests>-->
    </remoteConfig>

    <!-- bin/user.properties -->
    <propertiesUser>
    <TestServerName>192.168.5.133</TestServerName>
    <TestServicePort>80</TestServicePort>
    <NumberOfUsers>1</NumberOfUsers>
    <QPSValue>200</QPSValue>
    </propertiesUser>

    <generateReports>true</generateReports>
    <testResultsTimestamp>false</testResultsTimestamp>
    <resultsFileNameDateFormat>yyyyMMddhhmmss</resultsFileNameDateFormat>
    </configuration>

    </plugin>
  • jmx脚本位置
    src/test/jmeter

  • 运行
    mvn jmeter:jmeter

查看测试报告

JMeter聚合报告(Aggregate Report)理解
https://jmeter.apache.org/usermanual/component_reference.html#listeners

快捷使用

windows快速打开jmx脚本

  • 1.配置JMETER_HOME及PATH环境变量

    1
    保证 jmeter --? 命令可用
  • 2.编写openJmeter.bat脚本

    1
    2
    3
    4
    5
    jmeter -t %1 -j C:\%HOMEPATH%\.jmeter\jmeter.log

    %1 获取到双击的jmx文件路径
    -t 指定打开的jmx文件
    -j 指定log文件
  • 3.设置jmx文件的默认打开程序为openJmeter.bat即可

    1
    配置完成后,双击jmx文件即可使用jmeter图形界面程序打开