标签: load-testing

远程 jmeter-server 将所有输出发送到控制 jmeter 实例

我的工作场所通过有线互联网连接,上行/下行有限,因此为了对 Web 应用程序进行负载测试,我使用分布式方法:

  • jmeter-server (v2.4) 的实例正在具有正确互联网连接的远程 Linux 机器上运行。
  • 控制 jmeter GUI(也是 2.4)正在我的桌面上运行。
  • 两者通过 VPN 连接。
  • SUT 是托管在另一个数据中心的 Web 应用程序。

这工作正常 - 我能够从 jmeter GUI 启动远程线程执行并在摘要报告中接收实时结果。

奇怪的是,我在 SUT 上施加实际负载的能力受到本地互联网连接(入站、下游)的限制。跟踪本地 jmeter GUI 和远程 jmeter-server 之间的链接,我可以看到从 SUT 到 jmeter-server 的所有 HTTP 流量都发送到本地 jmeter GUI。因此,如果 jmeter-server 从 SUT 检索 1MB 文件,则会将其发送到我的本地 jmeter GUI(通过我的慢速互联网链接)。

事情应该是这样吗?我预计只会传输关键的测量结果(成功、延迟等)。

[PS:我知道我可以将我的测试计划 scp 到远程盒子并在无头 jmeter 中运行它。但后来我没有看到实时结果......]

distributed jmeter load-testing

3
推荐指数
1
解决办法
5700
查看次数

Jmeter - ${__P(var)} 在远程(分布式)测试期间不起作用

我使用${__P(users,2)}在运行时指定线程数(用户)

当我在单机上执行脚本时它工作正常。

但是当我在分布式环境中执行相同的脚本时它不起作用

正确。它采用默认值 2 。

我还尝试删除默认值,例如${__P(users)}

jmeter load-testing

3
推荐指数
1
解决办法
2759
查看次数

如何在Jmeter中的Bean Shell后处理器中使用Jdbc请求的结果变量名称?

我在jmeter中使用jdbc请求。我想使用 select 查询的结果作为变量,这样我就可以在 beanshell 后处理器中执行一些操作。我的 sql 查询是-

select * from table where id = 11111 and number = ${num} order by id desc limit 1; 
Run Code Online (Sandbox Code Playgroud)

我使用 ResultSet 作为结果变量名称。我如何在 beanshell 处理器中使用它。我可以在其他采样器中使用这个变量吗?

请帮忙。提前致谢。

jmeter load-testing

3
推荐指数
1
解决办法
5781
查看次数

JMH 与 JMeter 用于对 Java 类进行基准测试?

如果我想对我的 Java 类中的方法进行基准测试,哪个是更好的选择?两者之间的优缺点是什么?

java jmeter load-testing microbenchmark jmh

3
推荐指数
1
解决办法
1319
查看次数

JMeter - 如果控制器不适用于某些字符串包含条件?

背景:
我有一个返回响应的 API,如下所示:

{
  "status": 1,
  "errorCode": null,
  "message": null,
  "data": [
    {
      "id": 33,
      "snapshotId": 2,
      "ceId": 29,
      "month": "Feb",
      "corpRcvPayAmt": 100000,
      "wthRcvPayAmt": -90000
    },
    {
      "id": 31,
      "snapshotId": 2,
      "ceId": 29,
      "month": "Jan",
      "corpRcvPayAmt": 0,
      "wthRcvPayAmt": 0
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

所述data节点可以从0变化大小到12(清空至每月1次)。唯一的常量字段data"month"节点。其他字段值正在发生变化。

目标:
我想做一个PUT或一个POST请求,这取决于特定月份是否已经存在于data.

为此,我data使用正则表达式提取器将整个字段捕获到一个变量中,如下所示: 在此处输入图片说明

有了上面的示例响应,打电话${data}会给我{"id":33,"snapshotId":2,"ceId":29,"month":"Feb","corpRcvPayAmt":100000.00,"wthRcvPayAmt":-90000.00},{"id":31,"snapshotId":2,"ceId":29,"month":"Jan","corpRcvPayAmt":0.00,"wthRcvPayAmt":0.00}

现在使用这个字段,我只想做一个简单的 if 条件,比如:if ${data}contains ${month}do something (PUT request)。我目前正在尝试这样做:

在此处输入图片说明

问题:
条件${__groovy("${data}".contains("Jan"))}似乎不起作用。我已经尝试执行以下操作: …

jmeter load-testing performance-testing blazemeter jmeter-3.2

3
推荐指数
1
解决办法
5023
查看次数

如何在apache jmeter中为组线程请求设置不同的标头?

我想测试应用程序的并发性,我为此使用了 apache Jmeter,我请求的端点需要具有用于身份验证的授权标头,在 apache Jmeter HTTP 标头管理器中,我添加了一个名为 Authorization 的标头和令牌值,现在假设我有 5 个线程(用户),当测试使用相同的授权令牌运行所有 5 个用户请求时,我希望每个线程使用不同的令牌请求,以模拟不同的用户而不是多个实例对于一个用户,我希望这个问题是有道理的,如何让每个线程使用不同的令牌请求 api?这是每个线程请求的唯一标头值。谢谢爱你们。

performance multithreading jmeter load-testing database-concurrency

3
推荐指数
1
解决办法
2737
查看次数

如何修复来自 Azure 云服务的“HTTP 错误 400。请求标头的大小太长”错误?

我们正在对托管 Web API 的 Azure 云服务进行负载/性能测试。在一定数量的调用(比如 500 次)之后,云服务给出了错误的请求错误。

我们使用 web 角色在 c# 中构建了 web API,并将它们托管在 Azure 云服务中。我浏览了几篇文章/论坛,并尝试了以下几个选项: 1. 尝试增加云服务 VM 实例大小。2. 尝试将 'maxAllowedContentLength' 值增加到 52428800。 3. 尝试将 'maxRequestLength' 值从 5120 增加到 16240。 4. 使用 VS 诊断工具检查问题是否是由于内存泄漏。他们都没有工作。

在击中端点约 450 - 500 次后,此错误仅来自涉及与子系统通信的端点。此错误在本地不可重现。要解决这个问题,要么重新部署云服务,要么重启云服务。理想情况下,云服务应该一直工作到它的资源消耗达到 100%。但是每大约 500 次调用后就会出现错误,最大资源利用率为 10 - 15%。

<HTML>
<HEAD>
<TITLE>Bad Request</TITLE> 
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii">
</HEAD> 
<BODY>
<h2>Bad Request - Request Too Long</h2> 
<hr><p>HTTP Error 400. The size of the request headers is too long.</p> 
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

c# load-testing azure-cloud-services

3
推荐指数
1
解决办法
1万
查看次数

达到更多虚拟用户时 k6 显示的错误

我正在评估 k6 以满足我的负载测试需求。我已经设置了一个基本的负载测试,我目前正在尝试解释我得到的错误消息和结果值。也许有人可以帮助我解释我所看到的:

如果我将 VUS 调高到 300 左右,我就会开始在控制台中看到错误消息和 500 条错误消息。

这些主要包括:

  • 拨 tcp XXX:443: i/o 超时
  • 读取 tcp YYY(local ip):35252->XXX(host ip):443: 读取:连接由对等方重置
  • 级别=警告消息=“请求失败”错误=“意外的EOF”
  • 获取https://REQUEST_URL/:超出上下文截止日期”

我也有几个检查的问题:

  • 检查 res.status === 0 和 res.body === null 的错误
  • 检查 res.status === 0 中的错误,但正文包含正确的内容

怎么可能res.status是 0 但主体仍然包含正确的值?

我怀疑我已达到负载生成机器的连接限制,这就是我收到错误消息的原因。所以我必须建立一个集群或转移到 Cloud runners!?

k6 生成的统计数据显示长http_req_blocked值,我将其解释为等待获取连接端口的时间。这似乎表明我的测试运行机器的连接池已达到极限。

http_req_blocked...........: avg=5.66s    min=0s    med=3.26s    max=59.38s p(90)=13.12s   p(95)=20.31s 
http_req_connecting........: avg=1.85s    min=0s    med=280.16ms max=24.27s p(90)=4.2s     p(95)=9.24s  
http_req_duration..........: avg=2.05s    min=0s    med=496.24ms max=1m0s   p(90)=4.7s     p(95)=8.39s  
http_req_receiving.........: avg=600.94ms min=0s    med=82.89µs  max=58.8s  p(90)=436.95ms …
Run Code Online (Sandbox Code Playgroud)

load-testing k6

3
推荐指数
1
解决办法
2834
查看次数

在本地机器上进行分布式蝗虫负载测试

我想知道是否可以在本地机器上运行 locust 分布式?我的意思是在本地创建奴隶和主人。我接下来尝试:

掌握:

奴隶:

> locust --slave --master-host=127.0.0.1 --master-port=8089
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

您在分布式模式下运行,但没有连接从属服务器。请在蜂拥前连接奴隶。

python load-testing locust

3
推荐指数
1
解决办法
2073
查看次数

具有爬网功能的云负载测试工具

我需要浏览某个网站上存在瓶颈的页面.我试图找到一个云负载测试工具,它将从主页开始并下降到所有链接1级,但我找不到这样的工具.基本上,我需要的是插入URL,然后脚本使用从我插入的页面链接的每个页面的10或20个用户进行测试.这将为我提供网站上大多数页面的加载时间的基本视图.

有谁熟悉这样的工具?我能找到的最近的东西是jcrawl,但它需要安装jakarta ant,服务器配置和什么不是,我认为我需要的是非常基本的,不需要花费几个小时来编写脚本和配置.

谢谢

cloud testing performance jmeter load-testing

2
推荐指数
1
解决办法
629
查看次数