ngrinder

欠饿了么一顿外卖

不打扰是莪最后的温柔 提交于 2020-11-15 17:46:48
在饿了么工作的总结,从离开饿了么开始就准备写,一直拖到现在。 不太习惯记录,基本也就从2015年开始,才断断续续记点东西。回过头来看,这一年多偶尔写的一些东西,记录是在做最小化的积累,是岁月的一种沉淀,再次阅读这些文字的时候,能够或多或少的想起当时的某些片段。 在饿了么的工作生活是充实的,如果时间可以往回,或许应该在那多停留一会。 在饿了么的工作,分两大块,测试管理和测试生态搭建。 加入饿了么,是在一个全新的团队,全新的产品:有菜,一个打通供应商和餐厅的购物平台。测试团队,更是从零开始组建。过去负责团队的建设和管理,以及测试基础设施的搭建。把在外企看到学到的那一套流程,快速在这边落实展开。整个测试团队也向正规军慢慢靠近。 测试生态建设上,从零开始搭建测试组工具链: 基于jenkins的持续集成系统 :这是稍微有点规模的团队,必备的系统,每天有大量的发布,需要对整个产品进行全方位的回归。 功能测试框架scm-func :这是测试组最核心的工具之一,有了框架,测试团队,就可以根据产品功能,编写自动化测试用例。然后集成到CI里。减少频繁的手工劳动。 基于ngrinder的性能测试平台 (http://www.cubrid.org/wiki_ngrinder/entry/installation-guide):这个平台并没有发挥它应有的效果。产品迭代的速度太快

nGrinder 简易使用教程

北城余情 提交于 2020-08-10 18:49:36
背景 性能压测工具之前使用的是jmeter,这次说的是nGrinder,先直接搬运两者之间的比较 比较点 JMeter nGrinder 结果 实现语言 Java Java = License Apache v2 Apache v2 = 使用方式 C/S或Command B/S < 支持分布式 master/slave controller/agent = 资源监控 monitor/plugin,如果二开,需要查找plugin的源码 monitor方式,有直接可用的源码 < 社区活跃度 有N个群,文档完善 群只有一个,有中文社区 > 是否需要编码 基本不需要 需要,Jython/Groovy > 脚本的维护 本地 内置SVN < 脚本录制 可使用BadBoy进行录制 可通过PTS插件进行录制 = 可扩展性 可增加plugin,输出结果可以再加工 可增加plugin = 压测平台编码量 大 小 < 这里还有一个详细的对比: http://qa.blog.163.com/blog/static/19014700220125264628978/ nGrinder采用的controler-agent模式,需要安装controler和agent 安装搭建 官网:https://github.com/naver/ngrinder/releases 下载nGrinder-controler

ngrinder 压力测试实践(二)groovy 脚本实战

拈花ヽ惹草 提交于 2020-02-26 02:25:29
前言 groovy脚本 ngrinder 的 groovy 脚本是顺序结构的,用户可通过编写脚本执行过程中被预置的函数进行用户操作,完成各种复杂的测试工作。 ngrinder 的进程与线程 ngrinder 使用进程和线程来模拟多个用户。例如,如果您设置了如下的测试。只有一个代理将被激活,1个进程将被调用,然后这个进程将包括2个运行线程。每个线程的行为就像1个用户。因此,2个虚拟用户正在运行。如果将代理计数增加到2,则总共有4个虚拟用户(Vusers)。 并发量=代理数x进程数x线程数 如果在Vuser per agent 中输入总的虚拟用户数时,nGrinder根据内部算法,会进行适当的计算,如输入100,当agent数为1时, 会变成99,该算法可以通过 process_and_thread_policy.js 这个文件来修改。 若果agent 的内存4G以下的话,建议进程不要超过10个,线程数不要超过200. 官方最新测试:4G内存的agent 最多可以模拟4000 虚拟用户。 预置函数 依据上面对agent、进程与线程的解释,就比较好理解ngrinder groovy 脚本的 结构了。 控制器将脚本分发给agent,每个agent按照算法启动对应数量的进程,每个进程里在启动对应数量的线程,执行测试任务。 注解 描述 执行次数 用例 @BeforeProcess

Gatling学习笔记---开篇随笔

隐身守侯 提交于 2020-01-30 11:09:09
入门gatling是因为公司随着业务的发展,导致因为流量问题日益增多,所以公司希望开展压力测试来探索公司容量从而合理规划服务集群数量,在技术选型时候考虑了的主流的压测工具LoadRunner、Jmeter、Ngrinder等等。首先排除的就是LoadRunner,因为LoadRunner免费使用的额度较小无法满足当时的压测需求,而且收费较高使用成本较大,所以放弃了这款软件的使用,后续又对比了Jmeter和Ngrinder这两款工具,Jmeter在中国市场较好文档齐全,遇见了问题可以与大量志同道合的朋友们进行交流,而且功能齐全,针对不同的协议都可以进行压测。Ngrinder是基于Grinder的开源的web性能测试平台,由韩国最大互联网公司NHN公司的开发团队进行了重新设计和完善,文档相对也比较完善,而且在中国京东的压测平台ForceBot也是基于此开发的,充分体现了二次开发的可能性。关于几款软件的对比 因为有许多文章详细解释过了,所以这里不对这些问题做过多阐述。 工具对比文章: nGrinder详细介绍及性能工具对比 性能压测工具选型对比 上面两篇文章就很好的对比了现在比较主流的几款压测工具各个之间的差异,其中阿里和腾旭还推出了各自的压测平台,阿里压测平台PTS和腾旭的压测大师。在调研的时候正好看到了有赞全链路压测的一些文章,发现了一个新的压测工具gatling

Web Service性能测试工具比较

不打扰是莪最后的温柔 提交于 2019-12-06 01:02:41
背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒)。 以微信服务器为例,每个用户用独立的登录token,做各种操作,比如刷消息、发消息、看朋友圈等。 希望该性能测试工具符合如下要求: 测试脚本能力,最好是Python/Ruby等最常用的 每个并发实例能使用不同参数 CLI启动测试,这对自动化测试很重要 Session支持,也就是第一个请求的响应,能用于后续请求的参数。 单个结点的并发数量高。 分布式支持,不受限于单个结点的计算能力。 性能测试工具选手: Gatling http://gatling.io/ Gatling是一款基于Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标。Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等,除此之外它拥有以下特点: 支持Akka Actors 和 Async IO,从而能达到很高的性能 支持实时生成Html动态轻量报表,从而使报表更易阅读和进行数据分析 支持DSL脚本,从而使测试脚本更易开发与维护 支持录制并生成测试脚本,从而可以方便的生成测试脚本 支持导入HAR(Http Archive)并生成测试脚本 支持Maven,Eclipse,IntelliJ等

nGrinder环境安装搭建

匿名 (未验证) 提交于 2019-12-03 00:37:01
JDK、Tomcat版本推荐: 安装步骤: 1. 安装jdk: 2. 安装Tomcat(https://pan.baidu.com/s/1zJmmKOg4HqZ_RrrwJytwTA 密码:jf8g) 3. 安装nGrinder sudo mv /Users/feng/Downloads/ngrinder-controller-3.4.war /usr/local/tomcat/webapps vi /usr/local/tomcat/bin/catalina.sh , 在文件第2行添加如下: JAVA_OPTS="-Xms600m -Xmx1024m -XX:MaxPermSize=200m" # for linux catalina.sh set JAVA_OPTS=-Xms600m -Xmx1024m -XX:MaxPermSize=200m # for win catalina.bat 4. 启动Tomcat,访问:http://localhost:8080/ngrinder-controller-3.4.1/,看到如下界面表示安装完成: 5. 安装代理 nGrinder可以通过简单方式就可以做到集群。 6. 安装监控 同样点击右上角的admin===>Download Monitor,解压运行run_monitor.bat或者run_monitor.sh文件,便可以

ngrinder 编译安装 Could not find artifact grinder:grinder-patch:jar:3.9.1-patch 问题解决

匿名 (未验证) 提交于 2019-12-03 00:27:02
ngrinder 编译安装报错如下: Downloading from central: https://repo.maven.apache.org/maven2/grinder/grinder-patch/3.9.1-patch/grinder-patch-3.9.1-patch.jar [ INFO ] ------------------------------------------------------------------------ [ INFO ] Reactor Summary: [ INFO ] [ INFO ] ngrinder 3.4.1-SNAPSHOT ............................ SUCCESS [ 0.377 s] [ INFO ] ngrinder-starter ................................... FAILURE [02:03 min] [ INFO ] ngrinder-runtime ................................... SKIPPED [ INFO ] ngrinder-groovy .................................... SKIPPED [ INFO ] ngrinder-core ...........

搭建压力测试工具nGrinder

匿名 (未验证) 提交于 2019-12-03 00:22:01
nGrinder 是一个免费的、开放源代码的 Web 性能测试平台。运行在应用中间件服务器中运行。它由一个控制端和多个代理端组成。通过控制端(浏览器访问)建立测试场景,然后通过分发到代理端进行压力测试,是一个分布式的测试场景。 测试过程是基于 Jython 脚本来模拟浏览器或其他终端使用 HTTP 协议访问站点来完成的。测试过程中采集的数据将通过动态图和数据表的形式展示出来。用户可以方便的看到 tps 、以及测试目标机器的 cpu 和内存等情况。 一、 Jdk 安装搭建 官网下载 jdk1.8 最新版本 登陆到搭建机器 122.119.12.114 把下载的安装包放到 java Ŀ¼ 命令 : cd 到当前目录 cd /usr/java Windows 文件传输到 linux : rz 解压安装包: tar zxvf jdk1.8.0_102.tar.gz 配置环境变量 修改环境配置文件: vi /etc/profile 加入如下内容: 保存退出 加载刚设置的变量: source /etc/profile 测试是否安装成功: java -version 二、 tomcat 安装 可以找运维人员帮忙安装(拷贝其他机器的 tomcat 文件到当前需要装的机器) 三、 nGrinder 安装 3.1 下载 grinder-controller-3.3.war( 地址: ( 3.3

Ngrinder脚本开发各细节锦集(groovy)

南楼画角 提交于 2019-11-30 15:51:13
Ngrinder脚本开发各细节锦集(groovy) 1、生成随机字符串(import org.apache.commons.lang.RandomStringUtils) 数字:RandomStringUtils.randomNumeric(length); 字母:RandomStringUtils.randomAlphabetic(length); 字母加数字:RandomStringUtils.randomAlphanumeric(length); 所有ASCCII字符:RandomStringUtils.randomAscii(length); 自定义混合字符:RandomStringUtils.randomAscii(length, string); 2、生成随机数字:(import java.util.concurrent.ThreadLocalRandom;) 数字:int random_number = ThreadLocalRandom.current().nextInt(min_num, max_num); 3、获取项目数据文件路径 common项目:"/resources/account.txt" maven项目:Thread.currentThread().getContextClassLoader().getResource("/account.txt")

nGrinder 集群模式配置

那年仲夏 提交于 2019-11-30 05:54:41
前文已经 介绍了nGrinder 集群模式基本框架,本文就要涉及具体配置了! 假设大家已经对nGrinder 单一模式配置方法有所了解。 在nGrinder集群模式下多个Controller端使用同一DB和文件系统.所以首先要做的就是搭建好共享文件系统,确认 ${NGRINDER_HOME} 文件夹。 在 ${NGRINDER_HOME}/system.conf 也要有如下配置 # if you want to enable ngrinder controller clustering. please enable below. ngrinder.cluster.mode = true # cache cluster uri of all clustered controller servers. # only the controller and agents in same region will work together. ngrinder.cluster.uris=xx.xx.xx.xx;xx.xx.xx.xx # cache cluster listener port. ngrinder.cluster.listener.port=40003 第二步就要在每个Controller端添加本地文件夹 ${NGRINDER_EX_HOME} 。不像 ${NGRINDER