• 性能测试--Jmeter的Non GUI模式、集群


    Jmeter的Non GUI模式、集群

    一、Non GUI模式

    1、一般情况下在NonGUI模式下运行jmeter,有两个好处:

    • 节省系统资源,能够产生更大的负载
    • 可以通过命令行参数对测试场景进行更精细的配置

    2、示例:

    使用上一篇博文中smile task的查看所有task的脚本作为例子演示non gui模式

    jmeter -n -t scripts/c7/all_tasks.jmx -l scripts/c7/all_tasks_res.jtl -e -o scripts/c7/report
    

    上面这条命令将输入的结果保存为log.jtl,然后在运行结束时,在resport目录下生成dashboard报告。

    3、Non GUI模式下参数详解:

    • -n 表示使用non-gui模式
    • -t [JMX测试脚本的名称].
    • -l [保存JTL 测试结果文件的路径].
    • -j [JMeter log文件的路径].
    • -r 在JMeter的远程机器上运行测试,远程机器由 property " remote_hosts "指定
    • -R [远程机器列表] 在指定的远程机器上运行测试
    • -g [CSV 文件路径] 通过csv文件来创建dashboard报告
    • -e 运行结束后创建dashboard报告
    • -o 在哪个目录创建dashboard报告,该目录必须为空或者不存在

    代理相关的选项

    • -H [代理服务器的名称或ip]
    • -P [代理服务器端口]

    二、jmeter集群

     Jmeter的集群模式可以将多台机器联合起来一起产生负载,从而弥补单台机器负载生成能力不足的问题。在集群模式下,最少需要两台机器(一台client: 大脑,用于控制其他执行机的机器,此机器不产生负载压力,一台server: 真正执行test plan,产生负载压力的机器)

    1、第一步,开启server:

    JMETER_HOME/bin/jmeter-server (unix)
    JMETER_HOME/bin/jmeter-server.bat
    

    2、第二步,将server的ip添加到client的Properties文件:

    编辑JMETER_HOME/bin/jmeter.properties文件,找到remote_hosts项,将server的ip配置到这一项,有几台server就写几个ip,用逗号分隔。

    也可以在命令行中配置server ip:

    jmeter -R host1,127.0.0.1,host2
    

    3、第三步,打开jmeter gui检查配置:

     此时Run菜单下会出现"Remote Start" and "Remote Stop"菜单,如下图所示:

    4、第四步,使用none gui模式进行集群测试:

    GUI模式只能用于调试,不能用于正式的产生负载,在集群模式下也是这样。

    在client机器上使用下面的命令运行测试:

    jmeter -n -t script.jmx -r 

    or

    jmeter -n -t script.jmx -R server1,server2,…
    
    • -Gproperty=value: 在所有的server上配置属性,可以配置多次
    • -X: 测试结束后关闭servers

    更多资料:

    tips

    三、jmeter官方文档里给出了下面的减少资源使用的建议:

    • 使用无GUI的模式: jmeter -n -t test.jmx -l test.jtl
    • 尽量少使用监听器Listener;如果使用上面的-l标记,他们均可以被删除或禁用
    • 在压力测试过程中,不要使用查看结果树或在Table中查看结果监听器,仅在脚本调试阶段使用即可
    • 相比使用大量相似的样例,在一个循环中使用相同的样例,并使用变量(CSV DataSet)来实现样例的不同。[Include Controller在此步骤没有任何用,它在文件中添加所有的测试元素至测试计划中]
    • 不要使用功能模式
    • 使用CSV格式输出要优于XML
    • 仅保存需要的数据
    • 尽可能使用少的断言
    • 使用最优的脚本语言(查看JSR223部分)
  • 相关阅读:
    开发一个基于 Android系统车载智能APP
    Xilium.CefGlue利用XHR实现Js调用c#方法
    WPF杂难解 奇怪的DisconnectedItem
    (转)获取安卓iOS上的微信聊天记录、通过Metasploit控制安卓
    mac 安装npm
    mac安装Homebrew
    关于面试,我也有说的
    【分享】小工具大智慧之Sql执行工具
    领域模型中分散的事务如何集中统一处理(C#解决方案)
    小程序大智慧,sqlserver 注释提取工具
  • 原文地址:https://www.cnblogs.com/Keep-Ambition/p/8409941.html
Copyright © 2020-2023  润新知