zoukankan      html  css  js  c++  java
  • jmeter-00 JMeter 运行过程

    一.GUI mode 图形化界面运行

      to run JMeter, run the jmeter.bat (for Windows) or jmeter (for Unix) file. These files are found in the bin directory. 

    windows中,bin目录下可用脚本有:

    jmeter.bat

      run JMeter (in GUI mode by default)

    jmeterw.cmd

      run JMeter without the windows shell console (in GUI mode by default)

    jmeter-n.cmd

      drop a JMX file on this to run a non-GUI test

    jmeter-n-r.cmd

      drop a JMX file on this to run a non-GUI test remotely

    jmeter-t.cmd

      drop a JMX file on this to load it in GUI mode

    jmeter-server.bat

      start JMeter in server mode

    mirror-server.cmd

      runs the JMeter Mirror Server in non-GUI mode

    shutdown.cmd

      Run the Shutdown client to stop a non-GUI instance gracefully

    stoptest.cmd

      Run the Shutdown client to stop a non-GUI instance abruptly

    Linux/Unix 中,bin目录下可用脚本有:

    jmeter

      run JMeter (in GUI mode by default). Defines some JVM settings which may not work for all JVMs.

    jmeter-server

      start JMeter in server mode (calls jmeter script with appropriate parameters)

    jmeter.sh

      very basic JMeter script (You may need to adapt JVM options like memory settings).

    mirror-server.sh

      runs the JMeter Mirror Server in non-GUI mode

    shutdown.sh

      Run the Shutdown client to stop a non-GUI instance gracefully

    stoptest.sh

      Run the Shutdown client to stop a non-GUI instance abruptly

    二.Non-GUI mode( Command-line mode) 非图形化界面运行 

      For load testing, you must run JMeter in this mode

    命令选项有:

    D:apache-jmeter-3.3in>jmeter -?
        _    ____   _    ____ _   _ _____       _ __  __ _____ _____ _____ ____
       /   |  _  /   / ___| | | | ____|     | |  /  | ____|_   _| ____|  _ 
      / _  | |_) / _ | |   | |_| |  _|    _  | | |/| |  _|   | | |  _| | |_) |
     / ___ |  __/ ___  |___|  _  | |___  | |_| | |  | | |___  | | | |___|  _ <
    /_/   \_\_| /_/   \_\____|_| |_|_____|  \___/|_|  |_|_____| |_| |_____|_| \_ 3.3 r1808647
    
    Copyright (c) 1999-2017 The Apache Software Foundation
    
            --?
                    print command line options and exit
            -h, --help
                    print usage information and exit
            -v, --version
                    print the version information and exit
            -p, --propfile <argument>
                    the jmeter property file to use
            -q, --addprop <argument>
                    additional JMeter property file(s)
            -t, --testfile <argument>
                    the jmeter test(.jmx) file to run. "-t LAST" will load last
                    used file
            -l, --logfile <argument>
                    the file to log samples to
            -i, --jmeterlogconf <argument>
                    jmeter logging configuration file (log4j2.xml)
            -j, --jmeterlogfile <argument>
                    jmeter run log file (jmeter.log)
            -n, --nongui
                    run JMeter in nongui mode
            -s, --server
                    run the JMeter server
            -H, --proxyHost <argument>
                    Set a proxy server for JMeter to use
            -P, --proxyPort <argument>
                    Set proxy server port for JMeter to use
            -N, --nonProxyHosts <argument>
                    Set nonproxy host list (e.g. *.apache.org|localhost)
            -u, --username <argument>
                    Set username for proxy server that JMeter is to use
            -a, --password <argument>
                    Set password for proxy server that JMeter is to use
            -J, --jmeterproperty <argument>=<value>
                    Define additional JMeter properties
            -G, --globalproperty <argument>=<value>
                    Define Global properties (sent to servers)
                    e.g. -Gport=123
                     or -Gglobal.properties
            -D, --systemproperty <argument>=<value>
                    Define additional system properties
            -S, --systemPropertyFile <argument>
                    additional system property file(s)
            -f, --forceDeleteResultFile
                    force delete existing results files before start the test
            -L, --loglevel <argument>=<value>
                    [category=]level e.g. jorphan=INFO, jmeter.util=DEBUG or com
                    .example.foo=WARN
            -r, --runremote
                    Start remote servers (as defined in remote_hosts)
            -R, --remotestart <argument>
                    Start these remote servers (overrides remote_hosts)
            -d, --homedir <argument>
                    the jmeter home directory to use
            -X, --remoteexit
                    Exit the remote servers at end of test (non-GUI)
            -g, --reportonly <argument>
                    generate report dashboard only, from a test results file
            -e, --reportatendofloadtests
                    generate report dashboard after load test
            -o, --reportoutputfolder <argument>
                    output folder for report dashboard

    举例:

    jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

    GUI mode should only be used for creating the test script, NON GUI mode must be used for load testing

    三、分布式运行

    (1)控制机:也可以参与脚本的运行,同时它也担负着管理远程负载机指挥远程负载机运行的任务,并且收集远程负载机的测试结果。

    (2)负载机:向被测应用服务器发起负载的机器。负载机首先要启动一个客户端程序(Agent:jmeter-server.bat),这样控制机才能接管负载机。控制机会把运行的脚本隐蔽地发送到远程负载机,但是如果运行的测试脚本有参数文件及依赖的jar包时,控制机并不能把它们发送到远程负载机,这种情况就需要手动拷贝了。

    (3)远程运行逻辑:

      远程负载机首先启动Agent程序,待控制机连接;

      控制机连接上远程负载机;

      控制机发送指令(脚本及启动命令)启动线程;

      负载机运行脚本,回传状态(包括测试结果)

      控制机收集结果并显示。

    举例:在10.1.102.68 机器中启动jmeter 作为控制机,在10.1.102.75 机器中启动jmeter作为负载机。

    方式一:控制机以GUI方式运行

    1.首先在68 jmeter 的jmeter.properties 中指定"remote_hosts" (修改了jmeter.properties 文件需要重新启动JMeter才可以生效)

    # Remote Hosts - comma delimited
    remote_hosts=10.1.102.75
    #remote_hosts=localhost:1099,localhost:2010

    2.在75 中,启动JMeter Agent 程序,如

    3. 在68中,启动jmeter,做一个简单配置,如下:

    点击远程全部启动即可。

     此时如果正常运行,则75中的agent 控制台中输出如下:

     方式二:控制机通过非GUI方式运行

    1. 配置测试计划

    2. 在75 中,启动JMeter Agent 程序,如

    3. 在68中, 命令行执行如下:

    D:apache-jmeter-3.3in>jmeter -n -t F:jmeter_workspace测试计划-远程运行实例.jmx -l F:jmeter_workspace
    emote.jtl -R 10.1.102.75
    Creating summariser <summary>
    Created the tree successfully using F:jmeter_workspace测试计划-远程运行实例.jmx
    Configuring remote engine: 10.1.102.75
    Starting remote engines
    Starting the test @ Fri Nov 03 17:19:54 CST 2017 (1509700794827)
    Remote engines have been started
    Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445

    此时如果正常运行,则75中的agent 控制台中输出如下:

     四、通过命令行覆盖属性配置

    Java system properties and JMeter properties can be overridden directly on the command lin (instead of modifying jmeter.properties). To do so, use the following options:

    -D[prop_name]=[value]

      defines a java system property value.

    -J[prop_name]=[value]

      defines a local JMeter property.

    -G[prop_name]=[value]

      defines a JMeter property to be sent to all remote servers.

    -G[propertyfile]

      defines a file containing JMeter properties to be sent to all remote servers.

    -L[category]=[priority]

      overrides a logging setting, setting a particular category to the given priority level

     举例:

    jmeter -Duser.dir=/home/mstover/jmeter_stuff -Jremote_hosts=127.0.0.1 -Ljmeter.engine=DEBUG

    实例:从命令行中,指定运行线程数与url

    命令行执行命令:

    jmeter -n -t "mock_api .jmx" -JthreadCount=5 -Durl=10.1.102.75

    五、命令行选项与properties配置的处理顺序

    1. -p propfile
    2. jmeter.properties (or the file from the -p option) is then loaded
    3. -j logfile
    4. Logging is initialised
    5. user.properties is loaded
    6. system.properties is loaded
    7. all other command-line options are processed

      

    ***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
  • 相关阅读:
    redis消息队列
    redis数据结构及使用场景
    HTTP状态码
    ASP.NET处理管道初谈
    kNN(k邻近算法)
    HeadFirst
    Python学习笔记——进程、线程、网络编程
    Python学习笔记-20180428——处理JSON
    Python学习笔记-20180426
    基于百度地图的 JavaScript API示例学习
  • 原文地址:https://www.cnblogs.com/guanfuchang/p/7779371.html
Copyright © 2011-2022 走看看