分布式压测工具Grinder的Hello World示例教程

(20) 2024-04-22 16:01:01

本文以压测一个HTTP服务来说明Grinder的使用方法。本文的脚本是Windows脚本,Linux的脚本与此相似。需要指出的是Console只能部署在带有图形界面的操作系统上,否则启动时会报java.awt的异常。而Agent则不需要图形界面。

  • Grinder安装
    • 下载grinder-3.11-binary.zip,解压压缩包,得到文件夹grinder-3.11
    • 创建文件夹grinder-3.11-console和grinder-3.11-agent。将文件夹grinder-3.11下的所有文件和子文件夹同时复制给grinder-3.11-console和grinder-3.11-agent

    • 分布式压测工具Grinder的Hello World示例教程 (https://mushiming.com/)  第1张

  • 配置Console

    • cd 到grinder-3.11-console下

    • 创建配置文件grinder.properties。Console的grinder.properties优先级高于Agent的grinder.properties,如果二者有相同的配置项则最终执行Console的配置。

      # 每个Agent开启多少个进程
      grinder.processes=2
      # 每个Agent进程开启多少个线程
      grinder.threads=3
      # 每一个线程执行多少遍测试脚本
      grinder.runs=100
      
    • 创建startConsole.cmd,假设项目的根目录是C:\document\project\grinder-3.11-console

      set GRINDERPATH=C:\document\project\grinder-3.11-console
      java -classpath %GRINDERPATH%\lib\grinder.jar net.grinder.Console
      
    • 创建grinder.py

      from net.grinder.script.Grinder import grinder
      from net.grinder.script import Test
      from net.grinder.plugin.http import HTTPRequest
       
      test1 = Test(1, "Hello World")
      request1 = HTTPRequest()
      test1.record(request1)
       
      class TestRunner:
          def __call__(self):
              result = request1.GET("http://192.168.16.15:8080/webservice?d=c_load_test ")
      
    • 在cmd窗口运行如下命令,打开Console应用界面

      C:\document\project\grinder-3.11-console>startConsole.cmd
      2018-08-21 08:48:42,245 INFO  org.eclipse.jetty.server.Server: jetty-7.6.1.v20120215
      2018-08-21 08:48:42,417 INFO  org.eclipse.jetty.server.AbstractConnector: Started SelectChannelConnector@:6373
      

      分布式压测工具Grinder的Hello World示例教程 (https://mushiming.com/)  第2张

  • 配置Agent

    • cd到 grinder-3.11-agent目录下

    • 创建startAgent.cmd

      set GRINDERPATH=C:\document\project\grinder-3.11-agent
      java -classpath %GRINDERPATH%\lib\grinder.jar net.grinder.Grinder %GRINDERPATH%\grinder.properties
      
    • 创建grinder.properties

      grinder.consoleHost=127.0.0.1
      grinder.consolePort=6372
    • 创建grinder.py,实际运行的时候会执行console目录下的grinder.py,但agent目录下这个grinder.py也必须有否则会报错。

      from net.grinder.script.Grinder import grinder
      from net.grinder.script import Test
       
      test1 = Test(1, "Hello World")
       
      class TestRunner:
          def __call__(self):
      
    • 在cmd窗口运行如下命令,启动Agent

      C:\document\project\grinder-3.11-agent>startAgent.cmd
      2018-08-21 11:26:21,395 INFO  agent: The Grinder 3.11
      2018-08-21 11:26:21,427 INFO  agent: connected to console at localhost/127.0.0.1:6372
      2018-08-21 11:26:21,427 INFO  agent: waiting for console signal
      

       

    • 在Console的进程标签页里,如果代理进程处于已连接状态,则准备就绪。

    • 分布式压测工具Grinder的Hello World示例教程 (https://mushiming.com/)  第3张

  • 点击启动Worker进程,开始测试。

  • 分布式压测工具Grinder的Hello World示例教程 (https://mushiming.com/)  第4张

  • 然后再点击开始收集统计数据。
  • 分布式压测工具Grinder的Hello World示例教程 (https://mushiming.com/)  第5张

相关文章:

《分布式压测工具Grinder的示例教程 : headers及Cookie设置》

THE END

发表回复