前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ngrinder简单安装

Ngrinder简单安装

作者头像
高楼Zee
发布2019-10-24 11:03:21
8120
发布2019-10-24 11:03:21
举报
文章被收录于专栏:7DGroup7DGroup

背景

nGrinder(http://naver.github.io/ngrinder/)是基于Grinder开源项目,但由NHN(据说是韩国最大的互联网公司)公司的nGrinder开发团队进行了重新设计和完善(所以叫做nGrinder)。nGrinder是一款非常易用,有友好简洁的用户界面和controller-agent分布式结构的强大的压力测试工具。它是由一个controller和连接它的多个agent组成,用户可以通过web界面管理和控制测试,以及查看测试报告,controller会把测试分发到一个或多个agent去执行。用户可以设置使用多个进程和线程来并发的执行该脚本,而且在同一线程中,来重复不断的执行测试脚本,来模拟很多并发用户 nGrinder的测试是基于一个python/groovy的测试脚本,用户按照一定规则编写测试脚本以后,controller会将脚本以及需要的其他文件分发到agent,用Jython执行。并在执行过程中收集运行情况、响应时间、测试目标服务器的运行情况等。并保存这些数据生成运行报告,以供以后查看. nGrinder的一大特点就是非常容易使用,安装也非常容易,可以做到开箱即用,测试新手也可以很容易就开始测试任务。当然,如果想执行一些比较复杂场景的性能测试,就需要测试人员对python有一定认识。

1、Ngrinder架构图

  • nGrinder是基于Grinder的开源的web性能测试平台,由韩国最大互联网公司NHN公司的开发团队进行了重新设计和完善。特性:开源、易用、高可用、可扩展
  • 单节点支持3000并发、支持分布式、可监控被测服务器、可录制脚本、开源、平台化。

2、下载war包到本地

访问github:

https://github.com/naver/ngrinder/releases

注意:默认情况下,nGrinder用8080作为web端访问的端口。

3、下载tomcat

需要配置jdk环境变量,网上找资料配置

http://tomcat.apache.org/

或者点击:

https://tomcat.apache.org/download-90.cgi

4、解压使用

把下载好的【ngrinder-controller-3.4.3.war】包放到Tomcat的webApps文件夹中

注意: !小心,永远不要将war文件放在包含像这样的文件夹的空间中 "C:\Program Files\Tomcat\webapps" 否則下載不了grinder-agent 端.

5、运行startup.bat

6、浏览器访问

http://localhost:8080/ngrinder/login

打开nGrinder首页后,默认账号admin密码admin进入

7、简单使用一把,登录成功如下:

说明工具比较成熟,开箱即能用

8、安装agent

下载后并且解压到相对目录

运行成功如下:

平台验证是否有agent客户端

显示客户端:

9、输入压测地址

咱们用baidu页面简单做一个测试:

输入要压测的请求地址:

该页面都是中文一看就知道怎么操作:

点击输入相关内容后保存并运行:

选择:

查看相关信息:

10、查看结果

查看详细结果:

11、查看脚本

下面就能看到文件夹,继续点击去就能看到脚本:

脚本如下:

代码语言:javascript
复制
import static net.grinder.script.Grinder.grinder
import static org.junit.Assert.*
import static org.hamcrest.Matchers.*
import net.grinder.plugin.http.HTTPRequest
import net.grinder.plugin.http.HTTPPluginControl
import net.grinder.script.GTest
import net.grinder.script.Grinder
import net.grinder.scriptengine.groovy.junit.GrinderRunner
import net.grinder.scriptengine.groovy.junit.annotation.BeforeProcess
import net.grinder.scriptengine.groovy.junit.annotation.BeforeThread
// import static net.grinder.util.GrinderUtils.* // You can use this if you're using nGrinder after 3.2.3
import org.junit.Before
import org.junit.BeforeClass
import org.junit.Test
import org.junit.runner.RunWith

import java.util.Date
import java.util.List
import java.util.ArrayList

import HTTPClient.Cookie
import HTTPClient.CookieModule
import HTTPClient.HTTPResponse
import HTTPClient.NVPair

/**
 * A simple example using the HTTP plugin that shows the retrieval of a
 * single page via HTTP.
 *
 * This script is automatically generated by ngrinder.
 *
 * @author admin
 */
@RunWith(GrinderRunner)
class TestRunner {

    public static GTest test
    public static HTTPRequest request
    public static NVPair[] headers = []
    public static NVPair[] params = []
    public static Cookie[] cookies = []

    @BeforeProcess
    public static void beforeProcess() {
        HTTPPluginControl.getConnectionDefaults().timeout = 6000
        test = new GTest(1, "www.baidu.com")
        request = new HTTPRequest()
        grinder.logger.info("before process.");
    }

    @BeforeThread 
    public void beforeThread() {
        test.record(this, "test")
        grinder.statistics.delayReports=true;
        grinder.logger.info("before thread.");
    }

    @Before
    public void before() {
        request.setHeaders(headers)
        cookies.each { CookieModule.addCookie(it, HTTPPluginControl.getThreadHTTPClientContext()) }
        grinder.logger.info("before thread. init headers and cookies");
    }

    @Test
    public void test(){
        HTTPResponse result = request.GET("https://www.baidu.com/", params)

        if (result.statusCode == 301 || result.statusCode == 302) {
            grinder.logger.warn("Warning. The response may not be correct. The response code was {}.", result.statusCode); 
        } else {
            assertThat(result.statusCode, is(200));
        }
    }
}

以上简单操作,后期再次分享参数化与分布式压测;

送大家一句话:成功是努力的结果,并不是运气,平时的努力让我们拥有较高能力,失败不是缺乏能力、不是运气不好,而是缺乏努力,把其他领域的新技能、新话题、新内容纳入自己的系统中。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 7DGroup 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 1、Ngrinder架构图
  • 2、下载war包到本地
  • 3、下载tomcat
  • 4、解压使用
  • 把下载好的【ngrinder-controller-3.4.3.war】包放到Tomcat的webApps文件夹中
  • 5、运行startup.bat
  • 6、浏览器访问
  • 8、安装agent
  • 9、输入压测地址
  • 10、查看结果
  • 11、查看脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档