nGrinder 是一个压力测试平台,使您能够同时执行脚本创建、测试执行、监控和结果报告生成器。开源 nGrinder 通过消除不便和提供集成环境,提供了进行压力测试的简便方法
总共三种运行方式:
- 作为可执行文件运行
- 在Tomcat上运行
- 在Docker上运行
Grinder 由两个主要组件组成:
- controller(控制器):一个 Web 应用程序,使性能测试人员能够创建测试脚本并配置测试运行。
- agent(代理):创建负载的虚拟用户生成器。
在 " Docker " 上运行
首先安装controller(控制器)
PS C:Userslifeng01> docker pull ngrinder/controller Using default tag: latest latest: Pulling from ngrinder/controller Digest: sha256:bb669e6c63313337d50917554b38ce801e4300911a3ec8be99e1d3c3e64dd417 Status: Image is up to date for ngrinder/controller:latest docker.io/ngrinder/controller:latest PS C:Userslifeng01> docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name controller -p 8077:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller 936fcef3093d524e011c044c300ec20f3fe04d7a5fd71f44508dbc243d020848 PS C:Userslifeng01> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 936fcef3093d ngrinder/controller "/scripts/run.sh" 10 seconds ago Up 6 seconds 0.0.0.0:12000-12009->12000-12009/tcp, 0.0.0.0:16001->16001/tcp, 0.0.0.0:8077->80/tcp controller
控制器在 /opt/ngrinder-controller 下创建一个数据文件夹以维护测试历史记录和配置数据。为了持久保存数据,您应该将容器上的文件夹 /opt/ngrinder-controller 映射到主机上的文件夹。
- 80:默认控制器 Web UI 端口。这里把80映射到8077端口。
- 9010-9019:代理通过这些端口连接到控制器集群。
- 12000-12029:控制器通过这些端口分配压力测试。
其次再安装agent(代理)
PS C:Userslifeng01> docker pull ngrinder/agent Using default tag: latest latest: Pulling from ngrinder/agent 6c40cc604d8e: Already exists 93e89d51b14f: Already exists a9db8812b63a: Already exists 2c70c2da1dc5: Pull complete 61c897f05bc4: Pull complete Digest: sha256:d6bf1c1c3eedf19d0946db224d8c19f71bf47aa9426ac8b6e37bbd15a4936baf Status: Downloaded newer image for ngrinder/agent:latest docker.io/ngrinder/agent:latest PS C:Userslifeng01> docker run -d --name agent --link controller:controller ngrinder/agent ee314b7831cfa8fc12bf9d7dc5b8f72a130130729ebe9f5b69afee387d9aaeab PS C:Userslifeng01> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ee314b7831cf ngrinder/agent "/scripts/run.sh" 6 seconds ago Up 4 seconds agent 936fcef3093d ngrinder/controller "/scripts/run.sh" 29 minutes ago Up 29 minutes 0.0.0.0:12000-12009->12000-12009/tcp, 0.0.0.0:16001->16001/tcp, 0.0.0.0:8077->80/tcp controller
访问性能平台
上述docker环境搭建完成并启动后,直接本地浏览器访问 http://localhost:8077/,就能看到如下页面:
在页面Quick Start栏中输入待测的URL,后面的语言根据你会的选择,我选择的是Jython,然后点击【开始测试】按钮,就能看到如下页面:
名词注释:
- 测试名称:可自定义填写
- 标签:就是设置任意标签,可以多个
- 保存/保存并运行:功能同字面意思
- 代理:输入你的代理数,测试过程中将要使用的代理数,不能为0
- 虚拟用户/代理:指定你要并发的虚拟用户数,进程数和线程数会根据虚拟用户数自动分配
- 脚本:可使用svn,也可自己配置github
- 目标主机:模拟DNS,nGrinder会尝试收集目标机器
- 测试时间:设置测试时间
- 测试次数:设置每个线程的执行测试、
- Ramp-Up可用:勾选后则可设置梯形上升
配置完成后的,就能看到下面的页面:
然后点击【保存 并运行】按钮,直接开始运行,就能看到下面的页面:
运行结束后,就能看到下面的页面:
鼠标点击顶部的【性能测试】就会进入到列表,就能看到测试的一些数据,列表-操作栏中点击折线图标就看下面的页面:
鼠标点击列表中“脚本文件名称”就能看到生成的一些脚本代码,就是下面的页面:
感觉挺好用的,而且界面也特别友好,也是用java写的,个人觉得如果不喜欢jmeter的,可以使用这个,而且显示也属于主流的性能测试工具,开源好用。
今天先聊到这里吧,以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的一键 3 连【 点赞、收藏、分享 】哟,谢谢!
未完成,待续……
一直在努力,希望你也是!
微信搜索公众号:就用python



