Ngrinder Architecture Introduction
Ngrinder Groovy Scripting Usage Guide (groovy scripting structure)
Ngrinder Groovy Scripting Usage Guide (groovy maven structure)
Ngrinder Groovy Scripting Usage Guide (Import Groovy Maven project to IntelliJ)
Ngrinder's Groovy Script usage guide (HTTP request details)
Ngrinderr (version:3.4.1) is Naver (Korea's largest internet company NHN Search engine website) Open-source performance testing tools, directly deployed as Web services, support multi-user use, extensibility, customizable plugin philosophy Reliability over accuracy TPS over VUser code is always better than the GUI editor to use the correct conditions, the file system is faster than the database contract than the configuration Open Closed policy by Plugin Model one key Install need to add code? Remove same amount of code first. Overall Architecture
Ngrinder is an application that performs Groovy or Jython test scripts on a range of machines, and the internal engine is based on Grinder. Ngrinder uses controllers and agents to wrap the Grinder console and agent separately, and extends a variety of features to enable it to support concurrent testing.
The Ngrinder consists of two main components: Controller:
A web interface that provides performance testing. Coordinate the testing process. Organize and display the statistical results of tests to allow users to create and modify scripts. Agent
Load the system performance of the running test process and thread monitoring target machine on the proxy server (for example: cpu/memory)
When the agent starts, they try to connect to the controller, and then they are attached to the Agentcontrollerserver component. Agentcontrollerserver (which can be seen as a pool for an agent) manages the current agent pool. Whenever a user starts a performance test, a new console is created and the required number of agents are provided by Agentcontrollerserver. The Singleconsole (not the console in the Grinder) sends the test script and the test source to more than one specified agent, and begins to control the test flow until the end of the test. When the test is complete, the agents used is returned to the Agentcontrollerserver for later use in other tests. Similarly, Singleconsole will be returned to Consolemanager.
The biggest difference between Ngrinder and Grinder is that Ngrinder maintains multiple console instances and agents in the controller. Each console is stand-alone and all console can run concurrently. Many agents can be associated and assigned in advance, whenever necessary. Unlike Grinder, Ngrinder maximizes the utilization of agent machines. Cluster Architecture
Ngrinder support for controller cluster non-cluster mode starting from version 3.1
1. Ngrinder uses an embedded SVN service management script file, svn inventory stored in ${ngrinder_home} directory
2. Ngrinder uses EhCache to improve data retrieval performance from DB and SVN libraries.
3. Ngrinder uses Spring security to secure the system while extending the cluster mode using the Atlassian Plugin framework
1. All controllers in a cluster share the same db (database) and file system. All Ngrinder controllers must specify the same ${ngrinder_home} directory shared by NFS (Network File system).
2. Each controller can have its own special configuration and log output directory. This information will be stored in the ${ngrinder_ex_home} of each controller.
3. All controllers replicate each other's EhCache data (EhCache's cluster mode) to ensure that the controller cluster sees the same data.
Each controller can provide the same Wen content service to Ngrinder, but different test sets are processed according to region. By default, we do not provide a session cluster. So you may encounter a login problem because the session is stored in a controller and is not copied to the other controller. You may need to refer to Tomcat's session cluster configuration, or L4 's sticky session configuration. If you're not an expert on this, just let the user link to the same controller, which is easier. :-)
How to configure the cluster mode.
See the Simple cluster mode guide
View Advanced cluster Mode guide technology stack Customer tier client tier
Bootstrap
Bootstrap-slider
Jquery
Jquery Validate
Datatables
Select2
Jqplot
Codemirror Control Layer
Freemarker
Spring Security
Spring MVC
Gson
Svnkit Dav Service layer
The Grinder
Spring
EhCache Data Layer
Spring Data
H2
Cubrid
Liquibase
Svnkit