专栏首页测试开发社区nGrinder 介绍与安装

nGrinder 介绍与安装

nGrinder是基于Grinder开源项目,但由NHN公司的nGrinder开发团队进行了重新设计和完善(所以叫做nGrinder)。

它是由一个controller和连接它的多个agent组成,用户可以通过web界面管理和控制测试,以及查看测试报告,controller会把测试分发到一个或多个agent去执行。用户可以设置使用多个进程和线程来并发的执行该脚本,而且在同一线程中,来重复不断的执行测试脚本,来模拟很多并发用户。

nGrinder的测试是基于一个python的测试脚本,用户按照一定规则编写测试脚本以后,controller会将脚本以及需要的其他文件分发到agent,用Jython执行。并在执行过程中收集运行情况、响应时间、测试目标服务器的运行情况等。并保存这些数据生成运行报告,以供以后查看。


为什么选择nGrinder

JMeter 基于UI操作,容易上手,但是不具备编程能力。其次JMeter基于线程模拟数千用户几乎不可能。

Tsung 基于Erlang,能模拟上千用户并且易于扩展。但是基于XML的DSL,描述场景能力弱,而且需要大量的数据处理才知道测试结果。

Locust 基于python的gevent,能模拟百万个用户。但是需要对python有一定理解。

Loadrunner 这个可以说是应用最多的一个,很方便,但是还是太重。往后的方向肯定是客户端工具逐步向平台化发展,所以loadrunner注定慢慢被淘汰(个人拙见)。而且不开源,扩展性不高,收费。

nGrinder 单节点支持3000并发、支持分布式、可监控被测服务器、可录制脚本、开源、平台化。

综上可以看出nGrindr还是有很多优势的。


总体架构

nGrinder 由两个主要的组件组成:

Controller:

提供性能测试的web接口。 协调测试进程。 整理和显示测试的统计结果 让用户创建和修改脚本。

Agent:

在代理服务器上加载运行测试进程和线程 监控目标机器的系统性能(例如:CPU/MEMORY)

当 agent 启动时,它们试图连接到 controller,然后他们都附属在 AgentControllerServer 组件上。AgentControllerServer (可以看做为一个 agent 的池)管理当前 agent 池。每当用户开始性能测试时,一个新的 console 被创建,同时由 AgentControllerServer 提供所需数量的 agent。 SingleConsole (不是 Grinder 中的 Console ) 发送测试脚本和测试源码到多个指定的 agent , 同时开始控制测试流,直到测试结束。当测试完成后,所使用的 agents 归还给 AgentControllerServer ,以便在以后的其他测试中使用。 同样,SingleConsole 也会归还给 ConsoleManager 。

nGrinder 和 Grinder 最大的区别在于 nGrinder 在 controller 中保持多个 console 实例 和 agent 。每个 console 都是独立的,所有 console 都可以同时运行。每当有需要时,许多 agent 可以提前被提前关联和分配。与 grinder 不同,nGrinder 最大化 agent 机器的利用率。


ngrinder中文社区

http://ngrinder.642.n7.nabble.com/ngrinder-user-cn-f114.html


nGrinder安装

3台linux服务器: 192.168.42.164 部署controller 192.168.42.136 部署agent 192.168.42.32(被测应用机器) 部署monitor

先决条件

nGrinder是一个web应用(Controller)和Java应用(Agent, Monitor)的组合,需要安装JDK 1.6或更高的版本。

nGrinder需要用到很多端口

Agent : Any ==> Controller : 16001 Agent : Any ==> Controller : 12000 ~ 12000+(允许并发测试的数量) Controller : Any ==> Monitor : 13243 Controller ==> Public user : 这取决于你的Tomcat的配置,默认为8080。

下载nGrinder

目前最新的版本是ngrinder3.4.1 https://github.com/naver/ngrinder/releases/download/ngrinder-3.4.1-20170131/ngrinder-controller-3.4.1.war

启动nGrinder

建议使用tomcat,把war包放在tomcat的webapps文件夹下即可. 启动tomcat的时候在catalina.sh中加上jvm参数:

JAVA_OPTS=”-Xms600m -Xmx1024m -XX:MaxPermSize=200m”

启动后,打开浏览器访问http://localhost:8080/ngrinder-controller-X.X X.X表示war包名称

我这里问:http://192.168.42.164:8080/ngrinder-controller-3.4.1/login,登录名/密码:admin/admin

安装agent

agent在controller页面中直接下载

因为使用的是admin帐号登录,下载的agents包中的配置可以分享给所有的用户使用。 如果你登录的是一个普通帐号,下载链接将变成“Download Private Agent” 下载的agents包中的配置只能当前用户使用

下载后,把agent放在服务器上,解压

启动前检查 ulimt -a ,调整配置让其运行更多的线程,执行bash run_agent.sh 启动agent。

安装monitor

nGrinder的Monitor是agent的一个子集,用于收集系统相关数据(比如CPU, MEM and Network)

agent在controller页面中直接下载

下载后,把monitor放在服务器上,解压

执行bash run_monitor.sh启动monitor

安装完测试

nGrinder运行一个压力测试只需3步:

  1. 编写测试脚本
  2. 场景设计:配置并发用户数,执行时间,资源监控
  3. 场景执行,结束后自动生成报告

这里测试一个简单的get请求:http://192.168.42.32:82/sourcing/tradeservice/quotation-request.html

第一步,编写测试脚本

登录ngrinder,输入url,点击开始测试

第二步,场景设计

填写相应场景信息,如并发用户数,场景执行时间等

第三步,场景执行

点击保存并运行按钮,开始场景执行

原文链接:http://tonylit.me/2017/03/23/ngrinder介绍与安装/

本文分享自微信公众号 - 测试开发社区(TestDevHome)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 测试工程师-简历真的拿得出手吗

    保障xxx的整体测试质量 负责xxx版本管理以及发版工作 参与招聘测试工程师并对其进行培训 编写及评审测试用例,参与项目的整体测试 负责与各部门之间沟通协调,以...

    测试开发社区
  • 有赞业务中台测试团队介绍

    有赞帮助每一位重视产品和服务的商家成功,目前旗下拥有:有赞微商城、有赞零售、有赞美业、有赞小程序等 SaaS 软件产品,适用全行业多场景,帮商家网上开店、网上营...

    测试开发社区
  • 软件测试:管理篇

    A是软件测试部负责此日历行程的测试工程师,在做日程提醒事件测试时,他发现如果手机电力不足(不足于开机),而这段时间正好有提醒事件发生,则在下次开机后不会再提醒,...

    测试开发社区
  • 搭建私有PTS性能测试服务(二)

    上一篇给大家介绍了阿里云的PTS服务,工具虽好,毕竟是需要花点钱的,比起高大上的LoadRunner是要便宜不少,但互联网讲究什么啊,Free啊,开源啊……那市...

    归根落叶
  • 今日作业 -- 用js控制DIV的显示隐藏

    这个题很简单的,就是用一个按钮切换二个菜单的显示和隐藏。比昨晚的查找重复字符串要简单的多。 参与写作业的同学们基本都写的不错,思路也都OK,用原生JS,jQue...

    web前端教室
  • 信息无障碍,我们能为视障人士做什么?

    信息无障碍,我们能为视障人士做什么? The Unbounded Information Flow:What Have We Done for the Vi...

    腾讯研究院
  • 腾讯无偿捐赠出中国首个移动端信息无障碍标准

      10月14日-16日,由CSDN和创新工场联合主办的MDCC2015中国移动开发者大会将在北京召开。期间,腾讯将《移动端信息无障碍标准》捐赠给了中国信息无障...

    腾讯研究院
  • 数字IC设计之APB实例解析

    文章共1433字,阐述了AMBA APB协议读写信号状态机转换,以及用一个示例展示了APB协议的读写寄存器。通过和这几个寄存器交互,设计者可以将自定义的模块挂接...

    AsicWonder
  • 干货!如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用。

    哲洛不闹
  • java — 值传递和引用传递

    Mister24

扫码关注云+社区

领取腾讯云代金券