nGrinder简介

nGrinder是基于Grinder开源项目,由NHN公司的开发团队进行了重新设计和完善。nGrinder是一款非常易用,有简洁友好的用户界面和controller-agent分布式结构的强大的压力测试工具。
nGrinder测试基于python测试脚本(groovy也可),用户按照一定规范编写测试脚本,controller会将脚本一集需要的资源分发到agent,用jython执行。并且在执行的过程中收集运行情况、相应时间、测试目标服务器的运行情况等。并且保存这些数据生成测试报告,以供查看。
这款框架的一大特点就是非常的简单易用,安装也很容易,可以说是开箱即用。

为什么是nGrinder

  • JMeter
    基于UI操作,容易上手,但是不具备编程能力。其次JMeter基于线程模拟数千用户几乎不可能。
  • Tsung
    基于Erlang,能模拟上千用户并且易于扩展。但是基于XML的DSL,描述场景能力弱,而且需要大量的数据处理才知道测试结果。
  • Locust
    基于python的gevent,能模拟百万个用户。但是需要对python有一定理解。
  • Loadrunner
    这个可以说是应用最多的一个,很方便,但是还是太重。往后的方向肯定是客户端工具逐步向平台化发展,所以loadrunner注定慢慢被淘汰(个人拙见)。而且不开源,扩展性不高,收费。
  • nGrinder
    单节点支持3000并发、支持分布式、可监控被测服务器、可录制脚本、开源、平台化。
综上可以看出nGrindr还是有很多优势的。

用nGrinder做一个简单的压测

  • 安装controller
    nGrinder是一个web应用和java应用的组合,需要装JDK1.6+的版本。
    下载地址获取安装需要的war包后,执行下面的命令启动nGrinder。如果不指定端口,默认8080端口。
java -XX:MaxPermSize=200m -jar  ngrinder-controller-3.3.war --port 80

启动之后,就可以通过http://localhost:80访问ngrinder了。

  • 安装agents
    1.通过admin/admin登陆nGrinder。

     
     

    2.下载agent

     
     

    3.解压包并运行其中的run_agent.sh或者run_agent.bat即可。
    4.可以通过菜单栏中的代理管理进入agent管理页面。

     
     
  • 安装Monitor
    Montior是agent的一个子集,用于收集目标服务器的相关数据,比如CPU、MEM、NetWork等信息。
    1.下载
    通过菜单栏中的下载监控按钮下载。
    2.启动
    解压包后,运行run_montior.sh(linux/mac)或者bat(windows)。
  • 测试步骤
    1.输入一个测试的url,选择脚本语言,然后开始测试,nGrinder会自动生成测试脚本并进入配置页面。

     
     

    2.根据需求修改脚本

     
     

    3.配置选项

     
     

    4.运行

    在配置页面右上角点击保存并运行,启动测试。
    5.结果
    当启动测试后,会在页面显示当前的TPS、虚拟用户、测试成功与否的数量等信息。测试完成后,会显示测试结果。

     
     

    可以点击详细测试结果查看更详细的信息,比如TPS、平均时间、首次接受数据平均时间,以及被测服务器的CPU,MEM等信息。

     

ngrinder的简介与基本使用(转载:https://www.jianshu.com/p/f336180806cc)的更多相关文章

  1. Asp.Net Core 第01局:项目创建和部署 转载https://www.jianshu.com/p/9c9750e23b3e

    总目录 一.前言 本文通过从项目创建到部署,简单介绍Asp.Net Core. 二.环境 1.Visual Studio 2017 2.Asp.Net Core 2.2 三.开局 第一手:创建项目   ...

  2. Python--Virtualenv简明教程(转载https://www.jianshu.com/p/08c657bd34f1)

    virtualenv is a tool to create isolated Python environments. virtualenv通过创建独立Python开发环境的工具, 来解决依赖.版本 ...

  3. 接口测试之——Charles抓包及常见问题解决(转载自https://www.jianshu.com/p/831c0114179f)

    简介 Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charl ...

  4. Linux 网络 I/O 模型简介(图文)(转载)

    Linux 网络 I/O 模型简介(图文)(转载) 转载:http://blog.csdn.net/anxpp/article/details/51503329 1.介绍 Linux 的内核将所有外部 ...

  5. Mui本地打包笔记(一)使用AndroidStudio运行项目 转载 https://blog.csdn.net/baidu_32377671/article/details/79632411

    转载 https://blog.csdn.net/baidu_32377671/article/details/79632411 使用AndroidStudio运行HBuilder本地打包的Mui项目 ...

  6. [转]https://www.jianshu.com/p/06443248f4d8

    eos是什么? 原文 https://www.jianshu.com/p/06443248f4d8 简介 用一句话来定义eos,即:区块链操作系统,支持在它之上构建dapp,支持智能合约.帐户.身份验 ...

  7. Zabbix调优不完全指南(https://www.jianshu.com/p/2d911d55448f)

    从学习搭建zabbix到完成各类监控.调优.二次开发已经过去了两年,期间通过QQ学习群.zabbix官方社区.各个技术博客整理学习了不少关于各种报错的处理方法,现在将常见的一些报错处理方法整理出来分享 ...

  8. fastdfs(https://www.jianshu.com/p/1c71ae024e5e)

    参考 官方网站:https://github.com/happyfish100/ 配置文档:https://github.com/happyfish100/fastdfs/wiki/ 参考资料:htt ...

  9. 当我写下Map<String,Object> map = new HashMap<>() https://www.jianshu.com/p/6b2e350e99be

    当我写下Map<String,Object> map = new HashMap<>();我到底在写什么? 我什么时候会写HashMap? 一个函数同时需要返回 多种 状态的情 ...

随机推荐

  1. iptables 代理转发配置

    增加命令 [root@pre /]# iptables -t nat -A PREROUTING -s 39.15.15.15/32 -d 221.11.8.200/32 -p tcp -m tcp ...

  2. 按某个属性排序(字典序,ascII) js/python

    javascrapy方法 var compare = (prop)=>{ return (a,b)=>{ : - } } javascrapy测试代码 var aaa = [ {name: ...

  3. Bootstrap -- 文件上传插件File Input的使用

    BootstrapFileInput下载参考:http://www.jq22.com/jquery-info5231 网友经验参见:http://www.cnblogs.com/wuhuacong/p ...

  4. MySQL - 日常操作三 mysql慢查询;

    sql语句使用变量 use testsql; set @a=concat('my',weekday(curdate())); # 组合时间变量 set @sql := concat('CREATE T ...

  5. html 替换元素

    参考博客:http://www.cnblogs.com/wkylin/archive/2011/05/12/2044328.html 可替换元素也是行内元素 替换元素是浏览器根据其标签的元素与属性来判 ...

  6. mysql 架构 ~异地容灾

    一 简介 我们来探讨下多机房下的mysql架构二 目的:    首先要清楚你的目的     1 实现异地机房的容灾备份      2 实现异地机房的双活 三 叙说     1 实现异地机房的容灾备份  ...

  7. 如何调整cell的大小

    一般情况下,我们使用tableview的时候从来没有设置过cell的大小(w,h).位置(x,y)等,而是系统直接给我们自动生成,但是有的时候我们可能会改动cell的大小及位置,比如:在适配ios6跟 ...

  8. 原生JS给元素添加class属性

     有下面这三种简单语句. document.getElementsByTagName('body')[0].className = 'snow-container'; //设置为新的 document ...

  9. python 错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)

    参照:http://www.runoob.com/django/django-form.html 做了个表单提交和回显,但是报了以上错误 查资料发现是 python从request取值的是unicod ...

  10. ROS学习笔记(一) # ROS参数服务器

    参考 roscpp/Overview/Parameter Server 0. 概述 ROS参数服务器能够保存 string, int, float, double, bool, list, dicti ...