zoukankan      html  css  js  c++  java
  • 命令行模式运行jmeter,主从方式运行jmeter

    jmeter很小,很快,使用方便,可以在界面运行,可以命令行运行。简单介绍下命令行运行的方式:

     sh jmeter.sh  -n -t my-script.jmx -R 10.6.5.31,10.6.5.35,10.6.5.36,10.6.5.37,10.6.5.72 -l 8.jtl

    上面一条命令应该可以满足大部分需求。

        -n:使用命令行模式运行
        -t:指定要运行的jmx脚本
        -R:指定使用那些slave节点压测
        -l:压测记录保存在哪里
    使用-R指定节点时,当然要首先在这些节点上启动jmeter-server的服务,-l指定日志,jmeter运行过程中的所有请求记录,都会保存在这个jtl文件中。

    调试压测请求

    命令行下,如果想查看每个请求返回的结果,需要修改jmeter.properties配置文件,

        #jmeter.save.saveservice.assertion_results=none
        #jmeter.save.saveservice.data_type=true
        #jmeter.save.saveservice.label=true
        #jmeter.save.saveservice.response_code=true
        # response_data is not currently supported for CSV output
        #jmeter.save.saveservice.response_data=false
        # Save ResponseData for failed samples
        #jmeter.save.saveservice.response_data.on_error=false
        #jmeter.save.saveservice.response_message=true
        #jmeter.save.saveservice.successful=true
        #jmeter.save.saveservice.thread_name=true
        #jmeter.save.saveservice.time=true
        #jmeter.save.saveservice.subresults=true
        #jmeter.save.saveservice.assertions=true
        #jmeter.save.saveservice.latency=true
        #jmeter.save.saveservice.samplerData=false
        #jmeter.save.saveservice.responseHeaders=false
        #jmeter.save.saveservice.requestHeaders=false
        #jmeter.save.saveservice.encoding=false
        #jmeter.save.saveservice.bytes=true
        #jmeter.save.saveservice.url=false
        #jmeter.save.saveservice.filename=false
        #jmeter.save.saveservice.hostname=false
        #jmeter.save.saveservice.thread_counts=false
    

    将上面的注释打开,并且值修改成true,就会打开该条记录,jmeter就会将该条信息输出到我们指定的jtl文件中,不要要注意压测过程中,会产生大量的这样的记录,真正压测时,最好不要开太多的日志记录。

    实时查看压测结果

    jmeter命令行下,也可以实时查看压测结果,同样是修改配置文件jmeter.properties。

        # Summariser - Generate Summary Results - configuration (mainly applies to non-GUI mode)
        #---------------------------------------------------------------------------
        #
        # Define the following property to automatically start a summariser with that name
        # (applies to non-GUI mode only)
        #summariser.name=summary
        #
        # interval between summaries (in seconds) default 30 seconds
        #summariser.interval=30  //这个表示统计频率
        #
        # Write messages to log file
        #summariser.log=true
        #
        # Write messages to System.out
        #summariser.out=true //是否将统计结果输出到控制台


    打开上面的summariser.name、summariser.interval、summariser.out这三个配置项,保存,重新运行jmeter,应该就可以在shell里看到统计信息了。

        Remote engines have been started
        Waiting for possible shutdown message on port 4445
        summary +   3036 in     3s = 1001.6/s Avg:    25 Min:    14 Max:    58 Err:  3036 (100.00%) Active: 61 Started: 58 Finished: 0
        summary +  25670 in  10.3s = 2494.7/s Avg:    61 Min:    11 Max:   190 Err: 25670 (100.00%) Active: 261 Started: 258 Finished: 0
        summary =  28706 in  13.1s = 2192.0/s Avg:    57 Min:    11 Max:   190 Err: 28706 (100.00%)
        summary +  27300 in  10.3s = 2654.9/s Avg:   129 Min:    10 Max:   407 Err: 27300 (100.00%) Active: 461 Started: 458 Finished: 0
        summary =  56006 in  23.1s = 2426.7/s Avg:    92 Min:    10 Max:   407 Err: 56006 (100.00%)
        summary +  27200 in  10.4s = 2606.1/s Avg:   202 Min:    10 Max:   528 Err: 27200 (100.00%) Active: 660 Started: 657 Finished: 0
        summary =  83206 in  33.1s = 2512.8/s Avg:   128 Min:    10 Max:   528 Err: 83206 (100.00%)
        summary +  26300 in    11s = 2478.3/s Avg:   284 Min:    11 Max:   702 Err: 26300 (100.00%) Active: 861 Started: 858 Finished: 0
        summary = 109506 in  43.1s = 2541.1/s Avg:   166 Min:    10 Max:   702 Err: 109506 (100.00%)
        summary +  26200 in    11s = 2439.0/s Avg:   355 Min:    10 Max:   866 Err: 26200 (100.00%) Active: 1000 Started: 997 Finished: 0
        summary = 135706 in  53.1s = 2556.0/s Avg:   202 Min:    10 Max:   866 Err: 135706 (100.00%)
    

    这里的错误率是100%,正常情况下应该是0%。

    使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源。使用命令

    jmeter -n -t <testplan filename> -l <listener filename>

    D:Jmeterin>jmeter -n -t testplan.jmx -l listener.jtl
    Created the tree successfully using testplan.jmx
    Starting the test @ Thu Oct 29 11:23:49 CST 2009 (1256786629265)
    Waiting for possible shutdown message on port 4445
    Generate Summary Results +     5 in   8.5s =    0.6/s Avg:   981 Min:   296 Max:  2344 Err:     0 (0.00%)
    Generate Summary Results +     1 in   0.2s =    4.3/s Avg:   232 Min:   232 Max:   232 Err:     0 (0.00%)
    Generate Summary Results =     6 in   9.6s =    0.6/s Avg:   856 Min:   232 Max:  2344 Err:     0 (0.00%)
    Tidying up ...    @ Thu Oct 29 11:24:02 CST 2009 (1256786642453)
    ... end of run
            这次我们可以清晰地看到每个线程的执行情况。
            这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:

      • -h 帮助 -> 打印出有用的信息并退出
      • -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
      • -t 测试文件 -> 要运行的 JMeter 测试脚本文件
      • -l 日志文件 -> 记录结果的文件
      • -r 远程执行 -> 启动远程服务
      • -H 代理主机 -> 设置 JMeter 使用的代理主机
      • -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
          执行结果可以使用 GUI 模式下的聚合报告查看,比如你想要看 addCustomerScript201411060954.jtl 的报告,可以

            打开 JMeter GUI 界面 -> 测试计划 -> 添加线程组 -> 添加聚合报告 -> 点击"所有数据写入一个文件"下的 "浏览..." 按钮找到你刚生成的 jtl 文件就可以对执行结果进行直观分析了:

    聚合报告





    如何生成html测试报告

    如果未生成结果文件(.jtl),可运行如下命令生成报告:

    jmeter -n -t test.jmx -l result.jtl -e -o /tmp/ResultReport
    

    参数:
    -n :以非GUI形式运行Jmeter
    -t :source.jmx 脚本路径
    -l :运行结果保存路径(.jtl),此文件必须不存在
    -e :在脚本运行结束后生成html报告
    -o :保存html报告的地址, 此文件必须不存在

    如果已经生成结果文件(.jtl),可运行如下命令生成报告

    jmeter -g result.jtl -o /tmp/ResultReport
    

    Parameters:
    -g :specifies the existing result file(.jtl)



    打开页面 /tmp/ResultReport 文件夹中的 **index.html ** 可查看报告

    我们可以通过修改 ** user.properties** 文件来配置报告, 详细说明和配置可参考 Jmeter性能测试html报告

    报告详解

     
     

    Dashboard

    Test and Report informations
    • 测试和报告信息: 测试结果保存文件/测试开始时间/测试结束时间/展示过滤器。
    APDEX(Application Performance Index)
    • 应用程序性能满意度的标准,范围在 0-1之间,1表示达到所有用户均满意,可以在配置文件设置
    • Requests Summary: 请求的通过率(OK)与失败率(KO),百分比显示。
    • Statistics: 数据分析,基本将 Summary Report 和 Aggrerate Report 的结果合并。
    • Errors: 错误情况,依据不同的错误类型,将所有错误结果展示。

    Charts

    • 用图表的形式展示测试数据,让测试报告更加 直观。
    • 特点:
      • 将测试过程中 经常使用的数据,用图表的形式展示,让测试结果更加直观
      • 每个图表数据,有两种展示形式。
      • 支持请求样例过滤显示
      • 支持导出 PNG图片格式
    Over Time
    • Response Times Over Time: 响应时间
    • Bytes Throughput Over Time: 字节 接收/发送的数量
    • Latencies Over Time: 延迟时间
    Throughput
    • Hits Per Second: 每秒点击率
    • Codes Per Second: 每秒状态码数量
    • Transactions Per Second: 每秒事务量
    • Response Time Vs Request: 响应时间点请求的 成功/失败数
    • Latency Vs Request: 延迟时间点请求的 成功/失败数
    Response Times
    • Response Time Percentiles: 响应时间百分比
    • Active Threads Over Time: 激活线程数
    • Time Vs Threads: 测试过程中的线程数时续图
    • Response Time Distribution: 响应时间分布




     
  • 相关阅读:
    快速幂取模
    程序人生系列之新闻发布系统 0105
    JavaWeb之博客系统(四)
    [转]树状数组
    题目:免费午餐
    题目:删数问题
    题目:三元组
    题目:分子团
    题目:[汪老师结婚]婚礼上的袭击
    题目:[SBN号码]
  • 原文地址:https://www.cnblogs.com/jack1989/p/8178290.html
Copyright © 2011-2022 走看看