zoukankan      html  css  js  c++  java
  • jmeter场景运行之非GUI运行测试

      选择非GUI方式运行jmeter脚本是因为jmeter可视化界面及监听器动态展示结果都比较消耗负载机资源,在大量并发情况下GUI方式会导致负载机资源紧张,会对性能测试结果造成影响,这里的影响并不是指被测系统的性能受到影响,比如响应时间变长之内的,而是影响了负载机的生成。比如:非GUI方式100个线程可以产生100TPS负载,GUI方式产生80TPS负载,如果一台机器只能支持100个线程运行,那么我们只能多加机器来运行测试计划,这样一台负载机变为两台。非GUI方式不显示界面,对负载机的资源消耗会小一些。

      jmeter运行测试计划实际上是通过运行ApacheJMeter.jar来完成的。

    1:jmeter -help查看参数

    2:命令参数详解:

    3:运行脚本实例:

    java -jar D:工具软件接口测试工具apache-jmeter-2.13apache-jmeter-2.13inApacheJMeter.jar -n -t D:Jmeter脚本云商户管理台Script.jmx -l D:Jmeter脚本云商户管理台 esult esult.jtl

    4:查看运行结果

    脚本运行完成后可以在D:Jmeter脚本云商户管理台 esult目录下找到result.jtl文件

     打开结果文件

    4.1:GUI界面打开执行脚本

    4.2:随意选择一个监听,点击右边-》所有数据写入文件-》选择结果文件

    5:实现远程负载机设置

    通过远程运行jmeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力,一个jmeter客户端实例,理论上可以控制任意多的远程jmeter实例,并通过他们收集测试数据。这样一样,就有了如下特性:

    *   保存测试采样数据到本地机器

    *   通过单台机器管理多个jmeter执行引擎。

    *   没有必要将测试计划复制到每一台机器,jmeter GUI客户端会将它发往每一台jmeter服务器。

    *   每一台jmeter远程服务器都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划。

    使用多台机器产生负载的操作步骤如下:

    (1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。

    (2) 运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.9.99 和192.168.9.130 作为agent)

    (3)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件:

    查找:
    remote_hosts=127.0.0.1
    修改为:
    remote_hosts=192.168.9.99:1099,192.168.9.130:1099 

    这里要特别注意端口后,有些资料说明端口1644为jmeter的controller 和agent 之间进行通信的默认RMI端口号,但是在测试时发现,设置为1644运行不成功,改成1099后运行通过。另外还要留意agent的机子是否开启了防火墙等。

    (4)启动controller 机子上的jmeter应用jmeter.bat,选择菜单“运行”--->“远程启动”,来分别启动agent ,也可以直接选择“远程全部启动”来将所有的agent启动。

    遇到的常见问题:

    1、在Controller端上控制某台机器Run,提示"Bad call to remote host"。

    解决方法:检查被控制机器上的jmeter-server有没有启动,或者JMeter.properties中remote_hosts的配置错误。

    2、Agent机器启动Jmeter_server.bat时,后台提示:"could not find ApacheJmeter_core.jar"

    解决方法:确定在Agent机器安装jdk,并设置环境变量

    3、查看1099端口是否被占用

    netstat -ano | findstr "1099"
    tasklist | findstr "1099"

    4:其它说明:

      1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。

      2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

      3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

    远程负载机配置文档:https://blog.csdn.net/russ44/article/details/54729461

  • 相关阅读:
    二分法
    php冒泡排序
    php位运算
    php学习函数如何执行的
    php学习 打星星
    小程序的学习备注
    一个IP与多个域名绑定
    apache、mysql、php核心、phpmyadmin的安装及相互关联
    php虚拟主机配置( 输入网址 对应 ip地址)
    ORA-01084: OCI 调用中的参数无效
  • 原文地址:https://www.cnblogs.com/qiaoli0726/p/9629139.html
Copyright © 2011-2022 走看看