首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Jmeter处理SSE请求

Server-Sent Events (SSE) 是一种服务器向客户端推送事件的技术,它基于HTTP协议。然而,JMeter默认并不支持SSE,因为JMeter主要设计用于模拟HTTP请求/响应模型,而SSE是一个持久的、单向的连接。

不过,你可以使用一些插件或者编写自定义代码来处理SSE请求。例如,你可以使用JMeter的JSR223 Sampler和Groovy脚本来处理SSE。

以下是一个基本的示例:

  1. 添加一个线程组。
  2. 在线程组中添加一个JSR223 Sampler。
  3. 在JSR223 Sampler中,选择Groovy作为语言,并在脚本区域输入以下代码:
代码语言:javascript
复制
import org.apache.http.impl.client.CloseableHttpClient
import org.apache.http.impl.client.HttpClients
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager
import org.apache.http.protocol.BasicHttpContext
import org.apache.http.HttpResponse
import org.apache.http.util.EntityUtils

PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager()
CloseableHttpClient httpclient = HttpClients.custom()
        .setConnectionManager(cm)
        .build()

HttpGet httpGet = new HttpGet("http://your-sse-server.com/events")
HttpResponse response = httpclient.execute(httpGet, new BasicHttpContext())

response.getEntity().getContent().eachLine { line ->
    log.info(line)
    // 这里你可以处理每一行数据,例如将其保存到文件或者添加到JMeter变量中
}

EntityUtils.consume(response.getEntity())

这个脚本将连接到你的SSE服务器,并打印出所有接收到的事件。你可以根据需要修改这个脚本。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用Jmeter测试java请求

1、性能测试过程中,有时候开发想对JAVA代码进行性能测试,Jmeter是支持对Java请求进行性能测试,但是需要自己开发、打包好要测试的代码,就能在Java请求中对该java方法进行性能测试 2、本文举的例子是...Java实现通过传入两个参数,将值写入到文件中 开发思路 1、使用Eclipse创建Maven 项目,配置Pom文件,引入Jmeter开发Java请求所需的依赖包; 2、创建输入参数类,和测试类,然后继承...JavaSamplerClient,实现四个主方法; 3、对编写好的项目进行编译、打包 4、把打包好的函数放到jmeter扩展目录,调用Java请求,对封装的Java方法进行测试; JDK环境 Jmeter...配置Pom文件,Pom文件配置的Jmeter4.0版本,只要保存了Pom文件,系统就会自动下载和关联相应的jar包,Pom配置文件如下: ? 3....首先把Java_Sample_0.1.jar函数放到jmeter的\lib\ext目录 ? 2. 然后启动Jmeter,线程组》添加》Sample》Java请求 ? 3.

1.8K20

用Groovy处理JMeter中的请求参数

之前写过一些文章讲了Groovy如何在JMeter中协助测试: 用Groovy处理JMeter断言和日志 用Groovy处理JMeter变量 用Groovy在JMeter中执行命令行 下面分享一下Groovy...如何在JMeter修改请求参数,这个在正常测试中用处还是很广的,跟设置变量不一样,很多参数可能需要校验签名,而且每一次请求的参数也不尽相同。...需要在设置完请求参数后,然后用程序统一处理一下。比如计算参数签名、加密明文、从数据库中取值等等。 首先新建一个简单的线程组和一个简单的请求: ?...添加JSR223 预处理程序(后置处理程序需要下一次请求) ?...、post请求json参数、post请求表单参数的请求体信息: ?

81210

JMeter Sampler-http请求之KeepAlive使用总结

Sampler-http请求之KeepAlive使用总结 测试环境 apache-jmeter-2.13 KeepAlive使用介绍 ?...空值 如果HTTP请求默认值配置元件中,Advanced选项卡中有设置非空请求客户端实现,则使用该客户端实现,否则使用jmter.properties文件中jmeter.httpsampler...通过代理处理HTTPS时存在bug(CONNECT未正确处理)。请参阅Java Bug 6226610和6208335。 不支持虚拟主机。...JMeter配置 使用HTTPClient4实现时,连接重用还受到JMeter自身参数配置文件httpjmeter.properties中httpclient4.time_to_live参数配置的影响,...keepalive_time time 限制通过keep-alive连接发起的请求,可以被处理的最大时间,达到该时间,则关闭该连接 keepalive_timeout timeout; timeout

3.8K10

jmeter处理http请求Content-Type类型和传参方式

POST:向指定的资源提交要被处理的数据 最直观的表现就是: GET把参数包含在URL中,POST通过Request Body传递参数将请求整体提交给服务器。所以接口测试时要区分两种方法对待。...假设使用Parameters参数格式,而不设置content-type,默认使用此格式。 反之如果设置content-type:application/json,就会报错。  ...使用content-type:application/x-www-form-urlencoded时,还有一种将报文放在body data里面去请求。..."拼接参数 Jmeter的Parameters和Body Data两种参数化方式,一般来说,Get请求用Parameters,Post请求用Body Data。...使用什么数据类型,还要看接口定义的是什么类型,如接口定义的是application/x-www-form-urlencoded这种类型,content-type就得使用这个,反之亦然。否则报错!

1.5K30

JMeter Dubbo请求插件jmeter-plugin-dubbo.jar

测试环境 apache-jmeter-3.2 Dubbo 2.6.2 声明 本项目是基于开源项目的基础上做的优化、改进 项目地址:github.com/dubbo/jmeter-plugins-dubbo...下载地址 https://gitee.com/ishouke/jmeter-plugin-dubbo 2....使用方法 1、在程序运行的当前目录,即运行JMeter程序时所在的目录下新建dubbo目录(举例:比如先进入到JMETER_HOME/bin目录下,然后运行JMeter,那么当前目录即为JMETER_HOME...4、把dubbo-2.6.2.jar(可替换为其它版本,比如dubbo-2.0.4.jar),jmeter-plugin-dubbo.jar放在jmeter的lib\ext目录下 3、添加插件 ?...1、如图,如果手工输入了接口名称,则发送请求时,接口名称取自手工输入的,不会从下拉列表中选取,类似的,方法名称也是如此 2、参数类型,参数值支持自动换行,根据内容高度自适应,同时也支持 支持单元格内跨行编辑

1.3K40

性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本

一、前言 在上篇文章我们简要介绍了 HLS 协议的基础知识,接下来我们详细介绍一种使用 Jmeter 编写压测 HLS 协议脚本的方法。...二、编写脚本 由于 HLS 基于HTTP,因此 JMeter 可以轻松模拟拉流,这意味着我们很容易创建测试计划。.../streaming_tutorial.smil/playlist.m3u8 1、获取一级索引文件 由于整个流被分成小段,这意味着,为了保留主播放列表文件(m3u8),我们必须首先完成初始 HTTP 请求...获取二级索引 由于主播放列表的响应提供了一个块列表(即较小的二级播放列表),因此我们将使用正则表达式后处理器将它们全部收集到一个数组中: 提取列表 2、获取二级索引文件 现在我们有了“块”数组,我们需要添加一个...这需要创建另一个 HTTP 采样器: 获取ts列表 由于二级播放列表的响应提供了一个块列表(即所有 ts 文件列表),因此我们将使用正则表达式后处理器将它们全部收集到一个数组中: 提取ts列表 注意:“

1.2K30

SSE – Server Sent Events – 服务端主动推送

SSE默认支持断线重连,WebSocket则需要额外部署。 数据格式方面, SSE 使用的是 UTF8 编码的文本格式。...SSE的数据格式 每个SSE的消息响应分为4个元素: retry:重试时间,单位毫秒,只能为数字(SSE请求失败,就会发送新的请求) id:消息ID(自定义) event:时间类型(自定义) data:...("这里只能处理eventType为message的消息") var elementById = document.getElementById("ssediv"); elementById.innerHTML...= ev.data; } /** * 添加指定类型消息处理,eventType是后台自定义的 */ sse.addEventListener("diyEventType...如果Jmeter直接打到请求上,200个连接,直接导致任何请求无法进行。停止Jmeter后,依旧无法进行请求

2.3K30

用Groovy记录JMeter请求和响应

之前写过一些文章讲了Groovy如何在JMeter中协助测试: 用Groovy处理JMeter断言和日志 用Groovy处理JMeter变量 用Groovy在JMeter中执行命令行 用Groovy处理...JMeter中的请求参数 下面分享一下Groovy如何在JMeter文件操作,我选了一个保存超时请求和响应的脚本,抛砖引玉,各位可以依需拓展。...如果将这个功能在拓展一些,比如分别记录某些响应错误的请求,超时请求,以及根据业务码不同分别记录请求和响应,对于BUG的追溯将会有很大的帮助。...亦可以在请求中进行时间控制,对于某些查询结果响应时间较长的请求,尝试修改类似pageSize的参数,或者请求分页列表,page递增,遇到没有内容的就回头从page=1继续开始等等。...首先新建一个简单的线程组和一个简单的请求: ? 添加JSR223 后置处理程序 ? 脚本内容: def file = new File("fan.log") if (!

30920

tomcat请求处理分析(四) 监听请求轮询处理

1.1.1.1  startInternal方法 这个方法是核心的启动方法,目前理解主要做了两件事情,第一件是创建轮询线程,即具体的读取线程,它是进行具体的处理,第二个是创建创建监听请求线程,它是等待请求...,然后交给轮训进行处理。...,由于在bind方法中ServerSocketChannel这个设置阻塞方式,所以socket = serverSock.accept();在接受请求之后才会进行处理,具体的处理过程在setSocketOptions...paused) { //将请求连接放入队列等待处理 if (!...wakeupCounter.incrementAndGet()== 0)selector.wakeup(); }    具体执行的接受到通道注册的时间之后,往下执行,就能够产生相应的选择键,这样会执行processKey这个方法,然后将请求进行处理

1.5K80

使用 Go 每分钟处理百万请求

项目的需求就是 客户端发送请求,服务端接收请求处理数据(原文是把资源上传至 Amazon S3 资源中)。本质上就是这样, 我稍微改动了原文的业务代码,但是并不影响核心模块。...但是如果是高并发的场景下,不对 goroutine数进行控制,你的 CPU 使用率暴涨,内存占用暴涨,直至程序奔溃。...处理请求是一个同步的操作,每次只会处理一个任务,然而高并发下请求进来的速度远远超过了处理的速度。这种情况,一旦 channel 满了之后, 后续的请求将会被阻塞等地啊。...另一级用来存放可以处理任务的 work 缓存队列,类型为 chan chan Job。调度器把待处理的任务放入一个空闲的缓存队列当中,work 会一直处理它的缓存队列。...大致画了一个图帮助理解 首先我们在接收到一个请求后,创建 Job 任务,把它放入到任务队列中等待 work 池处理

1.6K30
领券