nGrinder学习笔记 — 根据需要输出log等级

Java版水果管理系统源码-ngrinder-sampling:压测平台的controller,底层调用ngrinder Java版水果管理系统源码 项目概览: 立项原因 公司需要对各个业务接口进行压力测试 之前一直使用的阿里云PTS,但是碰巧PTS账号压测包用光、同时费用可不便宜。 所以就有了立项的理由 因该项目只内部使用,同时个人精力、水平有限。故开源,望提升项目品质和性能、提供更好的压测服务 项目介绍: 在ngrinder基础上做的二次开发 完整功能由ngrinder、ngrinder-sampling组成,同时需要安装agent、monitor ngrinder-sampling负责场景的创建、ngrinder负责下发测试和报告收集、agent服务脚本测试、monitor负责代理机器的硬件使用情况 项目使用mysql做数据存储,场景生成脚本使用svn做版本控制,脚本由groovy生成 项目安装: 一. ngrinder 所需环境:jdk1.8、maven、idea 1. 下载 http://192.168.0.167/changli/ngrinder.git 2. 导入idea后,在父类的pom.xml文件中添加repository(因为有几个包有问题,没有发布在中央仓库) ``` <reposi 立即下载

nGrinder 每次跑完脚本都可以看到日志文件生成。 然而一个代理里面只能看到一个进程的日志文件,而且这个文件的大小最大只能支持到1MB,如果超过1MB将会覆盖现有日志,这样当你跑的场景时间足够长,生成足够多的日志时这时往往一些出错信息就很容易被刷掉再或者你想从N多个日志信息中立马筛选出错误信息也是相对复杂的工作,这时我们可能需要考虑日志只打印级别为ERROR的,这时你可以添加如下代码:

Groovy:

LoggerFactory.getLogger(“worker”).setLevel(Level.ERROR)

需要import

import ch.qos.logback.classic.Level
import org.slf4j.LoggerFactory

具体例子:

import HTTPClient.HTTPResponse
import ch.qos.logback.classic.Level
import net.grinder.plugin.http.HTTPPluginControl
import net.grinder.plugin.http.HTTPRequest
import net.grinder.script.GTest
import net.grinder.scriptengine.groovy.junit.GrinderRunner
import net.grinder.scriptengine.groovy.junit.annotation.BeforeProcess
import net.grinder.scriptengine.groovy.junit.annotation.BeforeThread
import org.junit.Test
import org.junit.runner.RunWith
import org.slf4j.LoggerFactory

import static net.grinder.script.Grinder.grinder
import static org.hamcrest.Matchers.is
import static org.junit.Assert.assertThat

@RunWith(GrinderRunner)
class TestRunner {
    public static GTest test
    public static HTTPRequest request

    @BeforeProcess
    public static void beforeProcess() {
        HTTPPluginControl.getConnectionDefaults().timeout = 6000
        test = new GTest(1, "172.23.81.1")
        request = new HTTPRequest()
        test.record(request);
        grinder.logger.info("before process.");
    }

    @BeforeThread
    public void beforeThread() {
//        输出错误的日志
        LoggerFactory.getLogger("worker").setLevel(Level.ERROR)
        grinder.statistics.delayReports = true;
        grinder.logger.info("before thread.");
    }

    @Test
    public void test() {
        HTTPResponse result = request.GET("http://172.23.81.1:8081/")
        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));
        }
    }
}

Jython:

from net.grinder.script.Grinder import grinder
from net.grinder.script import Test
from net.grinder.plugin.http import HTTPRequest
from org.slf4j import LoggerFactory
from ch.qos.logback.classic import Level
from ch.qos.logback.classic import Logger

test1 = Test(1, "Test1")
request1 = test1.wrap(HTTPRequest())

class TestRunner:
    def __init__(self) :
        logger = LoggerFactory.getLogger("worker");
        logger.setLevel(Level.ERROR);

    def __call__(self):

        grinder.statistics.delayReports=True
        result = request1.GET(“http://www.baidu.com")

        if result.getStatusCode() == 200 :
            grinder.statistics.forLastTest.success = 1
        else :
            grinder.logger.error(result.getStatusCode())
            grinder.statistics.forLastTest.success = 0
ngrinder-controller 性能测试工具支持3000并发,可以设置监控器,并且可以查看报告 立即下载

相关推荐

如何创建属于自己的大语言模型:从零开始的指南

随着人工智能的快速发展,大语言模型(LLM)在各种场景中表现出了卓越的能力,例如文本生成、对话交互和内容总结等。本文将带你了解创建 LLM 的核心步骤,从理论到实践,让你拥有一个自己的智能助手。

赵大仁的博客 3280

logger.error报红

logger.error报红

今天的砖依旧烫手 1152

短信验证码接收平台完整搭建教程(超详细版,附完整源码)

在网站注册、用户登录、找回密码等功能中,验证码(特别是短信验证码)已成为验证用户身份的常见方式。本教程将详细介绍如何从零搭建一个短信验证码接收平台,用于保存、展示并管理来自短信网关或中间转发程序提交的验证码数据。✅ 教程适合有基本 Python/HTML 基础的开发者🚫 禁止用于任何违法用途,仅供学习参考✅ 支持通过 POST 接口接收短信验证码✅ 支持通过网页实时查看验证码历史记录✅ 验证码信息保存在 SQLite 数据库✅ 支持时间戳排序、查询最新验证码。

weixin_52548902的博客 4557

【spark】控制日志输出的方法

【spark】控制日志输出的方法

hyj 8091

基于STM32F103C8T6的红外循迹避障小车

编程思路:控制核心板IO口的电平(即电机驱动模块的AIN1,AIN2,BIN1,BIN2)从而控制AO1、AO2、BO1、BO2的电平高低,进而控制电机使其正转、反转、不转。由于单纯地拉高拉低电平只能让电机在转与不转的状态切换,故决定利用TIM4的两个通道分别产生两路PWM信号来控制电机速度,四个电机两个一组,同一侧的两个连接在同一个PWM上。(#include "dianji.h"文件中同时写了对循迹模块引脚的初始化)

weixin_48743503的博客 1万+

nGrinder介绍、编写脚本与执行(完整版)

nGrinder介绍、编写脚本与执行(完整版)

m0_46570759的博客 3136

编程语言的未来走向:趋势、挑战与机遇

同时,鼓励他们接触和掌握一些专业领域的开发工具和技术框架,比如Web开发中的JavaScript、React.js,数据分析的Python(Pandas, NumPy, Matplotlib等),以及人工智能和机器学习领域的TensorFlow、PyTorch等。当前,全球范围内正积极推动编程教育的普及化,从儿童启蒙阶段到高等教育阶段,乃至终身学习的过程中,如何优化编程语言的教学方法、提高教学质量,并将其广泛应用于不同领域,是教育者与政策制定者面临的重大课题。未来,编程语言的多样化和包容性将会继续加强。

zrc_xiaoguo的博客 1829

nGrinder 的 Groovy 脚本使用指南(HTTP 请求详解)

请确定您已经了解了 nGrinder 的 Groovy 脚本结构:nGrinder 的 Groovy 脚本使用指南(Groovy 脚本结构) 在 nGrinder 上创建 Groovy 脚本时,会自动生成一个基础的脚本,让我们将其拆分说明import HTTPClient.Cookie import HTTPClient.CookieModule import HTTPClient.HTTPRes

忘掉地平线 8546

汽车ECU诊断刷写和OTA升级中的验签和校验

汽车ECU诊断刷写和OTA升级中的验签和校验

天赐好车的博客 619

用 Claude Code 快速摸清一个陌生代码库

摘要:Claude Code作为AI编码助手,能帮助开发者快速理解陌生代码库。与传统代码搜索不同,它从项目根目录出发,通过分析目录结构、配置文件等技术栈信息,提供系统级的概览。最佳实践是先通过"give me an overview"获取整体架构,再深入数据模型、认证流程等核心模块。它能生成术语表、编码规范和推荐的代码阅读路径,极大降低新成员的学习成本。相比传统方式,Claude Code能主动探索项目上下文,无需人工整理相关文件,使代码理解过程更接近有经验的工程师带教。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 94

nGrinder学习笔记 — post请求

Post请求: 带json格式内容: Groovy : import HTTPClient.HTTPResponse import HTTPClient.NVPair import ch.qos.logback.classic.Level import net.grinder.plugin.http.HTTPPluginControl import net.grinder.plugi

米阳MeYoung 9574

Apache DolphinScheduler 实现了对 OceanBase 的元数据库支持

Apache DolphinScheduler 是一款开源的分布式工作流任务调度系统,它提供了可视化的工作流设计和调度功能,支持大数据任务的自动化调度和监控。最近的更新中,Apache DolphinScheduler 引入了对 OceanBase 数据库的元数据库支持,这为用户在大数据环境中管理和调度任务提供了更多选择。用户可以通过 DolphinScheduler 提供的可视化界面进行工作流的设计和调度,也可以通过 DolphinScheduler 提供的 API 进行任务的编程调度。

VavzNvml的博客 495

Ngrinder 源码之Maven 项目

Ngrinder支持Maven结构的测试脚本。使用ScriptHandlerFactory来个脚本选择处理器handler,目前有JythonScriptHandler, GroovyScriptHandler和GroovyMavenProjectHandler三种。 ScriptHandlerFactory初始化的时候会按各个handler的order和displayOrder排序(升序)。ra...

1027

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ngrinder 分发文件失败 Troubleshooting

建了一个使用maven的项目,启动测试后,就报错了。测试页面查看错误log,是distribution_log。打开后,看到错误信息为 Copy dependencies by running 'mvn dependency:copy-dependencies -DoutputDirectory=./lib -DexcludeScope=provided' Dependencies copy...

yiluoseraph的技术博客 507

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ngrinder应用示例

一个测试类,跟java方式相似 groovy脚本 package service import HTTPClient.HTTPResponse import HTTPClient.NVPair import model.AssetFreezeReq import model.AssetInfo import model.MemberGrowthAddRequest import model.ShipperInfo import net.grinder.plugin.http.HTTPRequest im

weixin_42005602的博客 2099

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Ngrinder脚本管理界面改为可拖动至文件夹改造

大致需求是这样的,页面拖动脚本文件,然后拖动到其他的文件夹,其实看起来是没啥难得,后台添加文件,删除当前根目录下的脚本文件就好了,看起来没啥。但还是有坑的。看下面代码。 1.后台代码 /** * 页面拖拽脚本文件更换位置 * @param user * @param thisScript * @param folderPath * @param revision * @return */ @Transactional @RequestMapping(value = ..

weixin_45691427的博客 383

升级报错grpc调试失败,处理方式

1.grpc调试的时候,提示下面问题 SLF4J: Found binding in [jar:file:${NGRINDER_HOME}/tmp/webapp/WEB-INF/lib/logback-classic-1.0.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes...

keny-大成的博客 2016

DeepSeek-V3-Lora-tune监控与调试:实时跟踪微调过程的有效方法

DeepSeek-V3-Lora-tune是基于LoRA(Low-Rank Adaptation)和QLoRA技术的高效模型微调项目,能够帮助开发者在资源有限的情况下对DeepSeek-V3等大语言模型进行低参微调。本文将详细介绍如何实时监控和调试DeepSeek-V3-Lora-tune的微调过程,确保训练顺利进行并快速定位问题。 ## 为什么需要监控与调试微调过程? 在大语言模型的微调过程

gitblog_00096的博客 511

配置管理-SVN使用指南-Linux

SVN基本操作(linux) 初始化检出(Svn co url) 例如:mkdir svn Svn co http://172.16.0.120/svn/ok 更新(svn update) 全部更新(svn update) 更新指定文件 (svn update 文件名) 更新到指定版本(svn u...

weixin_30387663的博客 115

nginder json 转换

1.查询了groovy提供 三个“”“,我不建议用这个,直接修改‘’ 这样方便拷贝和张贴。import groovy.json.JsonSlurper .... def message = """ { "glossary": { "title": "example glossary", "GlossDiv": { "title&quot

keny-大成的博客 625

Grinder Python Http脚本大全

Hello World 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

JackYuBo 778

比较Jmeter、Grinder和JAVA多线程本身压力测试所带来的性能开销

1. 测试环境 jmeter版本 :jmeter 2.4 grinder的版本 : Grinder 3 JAVA的版本:JDK 1.6 2. 测试代码 Jmeter测试代码 public class Sampler { public void test() { return; } } public class JmeterTes

techq's blog 8164

性能测试中遇到的坑

1、在压测过程中保证压力机、负载机不处于休眠状态,否则会出现压力机、负载机与服务器通讯中断的现象。设置路径:控制面板\硬件和声音\电源选项\编辑计划设置,使计算机进入休眠状态:从不 2、压测进行前要练习公司的运维人员,保证服务器、压力机IP不会被限制(由于压测时网络流量过大可能会别自动限制IP) 3、负载机、压力机、服务器防火墙关闭,否则会出现连接不通的奇葩问题 4、远程连接负...

weixin_30859423的博客 201

面试与压测问题汇总

回答框架(STAR 法则):背景 (S): XX公司业务线众多(金融租赁、保险、营销、物流、发票等),每个迭代需要大量回归测试,手工执行效率低、覆盖不全。任务 (T): 负责设计和开发公司级的 API 自动化测试平台,覆盖多条业务线的接口回归、流程编排和版本对比。基于 Spring Boot + TestNG + llrunner 搭建分层架构设计 Component → Flow → Factory → TestCase 四层架构。

weixin_46921460的博客 554
上一篇: nGrinder学习笔记 — post请求
下一篇: nGrinder学习笔记 — 在IDEA搭建nGrinder开发环境
米阳MeYoung
博客等级 码龄17年 148粉丝 64原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值