我的工作场所通过有线互联网连接,上行/下行有限,因此为了对 Web 应用程序进行负载测试,我使用分布式方法:
这工作正常 - 我能够从 jmeter GUI 启动远程线程执行并在摘要报告中接收实时结果。
奇怪的是,我在 SUT 上施加实际负载的能力受到本地互联网连接(入站、下游)的限制。跟踪本地 jmeter GUI 和远程 jmeter-server 之间的链接,我可以看到从 SUT 到 jmeter-server 的所有 HTTP 流量都发送到本地 jmeter GUI。因此,如果 jmeter-server 从 SUT 检索 1MB 文件,则会将其发送到我的本地 jmeter GUI(通过我的慢速互联网链接)。
事情应该是这样吗?我预计只会传输关键的测量结果(成功、延迟等)。
[PS:我知道我可以将我的测试计划 scp 到远程盒子并在无头 jmeter 中运行它。但后来我没有看到实时结果......]
我使用${__P(users,2)}在运行时指定线程数(用户)
当我在单机上执行脚本时它工作正常。
但是当我在分布式环境中执行相同的脚本时它不起作用
正确。它采用默认值 2 。
我还尝试删除默认值,例如${__P(users)}
我在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 处理器中使用它。我可以在其他采样器中使用这个变量吗?
请帮忙。提前致谢。
如果我想对我的 Java 类中的方法进行基准测试,哪个是更好的选择?两者之间的优缺点是什么?
背景:
我有一个返回响应的 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
我想测试应用程序的并发性,我为此使用了 apache Jmeter,我请求的端点需要具有用于身份验证的授权标头,在 apache Jmeter HTTP 标头管理器中,我添加了一个名为 Authorization 的标头和令牌值,现在假设我有 5 个线程(用户),当测试使用相同的授权令牌运行所有 5 个用户请求时,我希望每个线程使用不同的令牌请求,以模拟不同的用户而不是多个实例对于一个用户,我希望这个问题是有道理的,如何让每个线程使用不同的令牌请求 api?这是每个线程请求的唯一标头值。谢谢爱你们。
performance multithreading jmeter load-testing database-concurrency
我们正在对托管 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) 我正在评估 k6 以满足我的负载测试需求。我已经设置了一个基本的负载测试,我目前正在尝试解释我得到的错误消息和结果值。也许有人可以帮助我解释我所看到的:
如果我将 VUS 调高到 300 左右,我就会开始在控制台中看到错误消息和 500 条错误消息。
这些主要包括:
我也有几个检查的问题:
怎么可能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) 我想知道是否可以在本地机器上运行 locust 分布式?我的意思是在本地创建奴隶和主人。我接下来尝试:
掌握:
> locust --masterRun Code Online (Sandbox Code Playgroud)
奴隶:
> locust --slave --master-host=127.0.0.1 --master-port=8089Run Code Online (Sandbox Code Playgroud)
但我收到错误:
您在分布式模式下运行,但没有连接从属服务器。请在蜂拥前连接奴隶。
我需要浏览某个网站上存在瓶颈的页面.我试图找到一个云负载测试工具,它将从主页开始并下降到所有链接1级,但我找不到这样的工具.基本上,我需要的是插入URL,然后脚本使用从我插入的页面链接的每个页面的10或20个用户进行测试.这将为我提供网站上大多数页面的加载时间的基本视图.
有谁熟悉这样的工具?我能找到的最近的东西是jcrawl,但它需要安装jakarta ant,服务器配置和什么不是,我认为我需要的是非常基本的,不需要花费几个小时来编写脚本和配置.
谢谢
load-testing ×10
jmeter ×7
performance ×2
blazemeter ×1
c# ×1
cloud ×1
distributed ×1
java ×1
jmeter-3.2 ×1
jmh ×1
k6 ×1
locust ×1
python ×1
testing ×1