性能工具之 nGrinder 入门安装及使用

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 【5月更文挑战第1天】性能工具之 nGrinder 入门安装及使用

一、介绍

nGrinder (http://naver.github.io/ngrinder/) 是基于 Grinder 开源项目,但由 NHN(据说是韩国最大的互联网公司)公司的 nGrinder 开发团队进行了重新设计和完善(所以叫做 nGrinde r)。nGrinder 是一款非常易用,有友好简洁的用户界面和 controller-agent 分布式结构的强大的压力测试工具。它是由一个 controller 和连接它的多个 agent 组成,用户可以通过 web 界面管理和控制测试,以及查看测试报告,controller 会把测试分发到一个或多个 agent 去执行。用户可以设置使用多个进程和线程来并发的执行该脚本,而且在同一线程中,来重复不断的执行测试脚本,来模拟很多并发用户

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

nGrinder 的一大特点就是非常容易使用,安装也非常容易,可以做到开箱即用,测试新手也可以很容易就开始测试任务。当然,如果想执行一些比较复杂场景的性能测试,就需要测试人员对 Python 有一定认识。

二、架构图

image.png

  • nGrinder 是基于 Grinder 的开源的 web 性能测试平台,由韩国最大互联网公司 NHN 公司的开发团队进行了重新设计和完善。
  • 特性:开源、易用、高可用、可扩展

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

三、快速安装

1、下载二进制包

访问 Github:https://github.com/naver/ngrinder/releases
image.png

2、下载 tomcat 中间件

或者点击:https://tomcat.apache.org/download-90.cgi
image.png

3、安装应用

image.png

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

image.png

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

4、启动应用

image.png

5、浏览器访问

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

image.png

提供快速使用功能,工具比较成熟,开箱即用

6、安装 agent

image.png

下载后并且解压到相对目录:
image.png

运行成功如下:
image.png

平台验证是否有 agent 客户端:
image.png

image.png

四、简单使用

1、输入压测地址

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

image.png

输入要压测的请求地址:
image.png

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

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

查看相关信息:
image.png

2、查看压测结果

image.png

查看详细结果:
image.png
image.png
image.png
image.png
image.png

3、查看压测脚本

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

脚本如下:

/**

 * 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));
        }
    }
}

五、小结

以上为 nGrinder 入门安装及简单使用介绍,下一篇分享参数化与分布式压测。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
24天前
|
小程序 前端开发 关系型数据库
uniapp跨平台框架,陪玩系统并发性能测试,小程序源码搭建开发解析
多功能一体游戏陪练、语音陪玩系统的开发涉及前期准备、技术选型、系统设计与开发及测试优化。首先,通过目标用户分析和竞品分析明确功能需求,如注册登录、预约匹配、实时语音等。技术选型上,前端采用Uni-app支持多端开发,后端选用PHP框架确保稳定性能,数据库使用MySQL保证数据一致性。系统设计阶段注重UI/UX设计和前后端开发,集成WebSocket实现语音聊天。最后,通过功能、性能和用户体验测试,确保系统的稳定性和用户满意度。
|
5月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
160 2
|
6月前
|
消息中间件 Java 测试技术
Python性能测试全攻略:JMeter与Locust,双剑合璧斩断性能瓶颈🗡️
【8月更文挑战第4天】在软件开发中,性能至关重要。对Python开发者来说,掌握高效性能测试方法尤为关键。本文将带您探索性能测试工具JMeter与Locust的强大功能。JMeter作为Java世界的巨擘,以其强大功能和灵活性在性能测试领域占有一席之地,不仅适用于Java应用,也能测试Python Web服务。
147 0
|
9月前
|
Java 应用服务中间件 开发工具
性能工具之 nGrinder 源码安装
【5月更文挑战第2天】性能工具之 nGrinder 源码安装
58 2
性能工具之 nGrinder 源码安装
|
3月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
97 1
|
7月前
|
存储 监控 数据可视化
性能测试:主流性能剖析工具介绍
**性能剖析**是识别应用性能瓶颈的关键,涉及指标收集、热点分析、优化建议及可视化报告。常用工具有:**JConsole**监控JVM,**VisualVM**多合一分析,**JStack**分析线程,**FlameGraph**展示CPU耗时,**SkyWalking**分布式跟踪,**Zipkin**追踪服务延迟。这些工具助力开发人员提升系统响应速度和资源效率。
|
6月前
|
测试技术 Apache 开发者
性能测试新纪元!Python携手JMeter与Locust,开启应用性能优化新篇章
【8月更文挑战第6天】应用性能测试是软件开发的关键环节。随着云技术和微服务架构的发展,传统测试方法已难以满足需求。Python 作为一种灵活强大的语言,在性能测试中扮演重要角色。本文探讨 Python 与 Apache JMeter 及 Locust 的结合如何开启性能优化新篇章。JMeter 适用于多种协议的压力测试,而 Locust 用 Python 定义测试场景,两者各具特色。
161 0
|
9月前
|
Java 测试技术 Apache
性能工具之JMeter5.0核心源码浅析
【5月更文挑战第14天】性能工具之JMeter5.0核心源码浅析
109 1
性能工具之JMeter5.0核心源码浅析
|
7月前
|
监控 测试技术 C#
推荐一个使用 C# 开发的轻量级压测工具
推荐一个使用 C# 开发的轻量级压测工具
|
数据采集 算法 测试技术
深聊性能测试,从入门到放弃之:Locust性能自动化(二)代码实战
深聊性能测试,从入门到放弃之:Locust性能自动化(二)代码实战
361 1