当前位置: 首页 > 知识库问答 >
问题:

Jmeter webdriver sampler:webdriver sampler和http sampler请求不会同时命中

应志用
2023-03-14

为了在服务器上生成适当的负载,我使用http sampler线程组,其中我通常提供大量用户(用于负载生成),并使用一个线程用于webdriver采样器来测量用户呈现度量。执行的方式是每10秒执行一次线程。我尝试使用jmeter中的“同步计时器”来确保线程组同时执行。

我面临的问题是http采样器和webdriver采样器线程没有同时启动。相差1-5秒。我还在我的服务器日志中看到UI的命中发生在不同的时间。

下面是jmeter的线程开始时间(“View Results in Table”侦听器中的“start time”列)

http Sampler thread: 00:02:47.846
Webdriver sampler thread: 00:02:51.902
Windows Server 2016 2020-12-26T00:02:51,245 ################## this may be call from http sampler
Windows Server 2016 2020-12-26T00:02:52,399 ################## this may be call from webdriver sampler

共有1个答案

宁欣怿
2023-03-14

同步计时器控制采样器在其作用域内的开始时间,由于以下原因,您无法控制请求何时“命中”服务器:

  1. 连接时间
  2. 硒开销(它也通过网络向浏览器发送命令),而且浏览器对命令“作出反应”需要一些时间,因此WebDriver采样器将始终较慢,而且这个因素不是确定的

我对您的测试设计也有一些疑问,请求不应该在完全相同的时刻发出,您需要确保JMeter的HTTP请求采样器被配置成与真实浏览器一样的行为,并且负载是连续的,也就是说,您模拟X个用户同时访问您的应用程序30分钟,在此测试期间,在另一个线程组中,您可以有一个WebDriver采样器,当系统处于负载下时,它将检查呈现时间

 类似资料:
  • 问题内容: 我同时运行两个AJAX请求时遇到问题。我有一个PHP脚本正在将数据导出到XSLX。此操作需要很多时间,因此我尝试向用户显示进度。我正在使用AJAX和数据库方法。实际上,我非常确定它曾经可以工作,但是我不知道为什么,它不再在任何浏览器中都能工作。新浏览器有什么变化吗? 在数据库中正确更新进度 JS计时器正在尝试获取进度,我可以在控制台中看到它,但是所有这些请求都加载第一个脚本的整个持续时

  • 使用EventSource建立连接接收后端推送的数据,但是多开标签页后,新的标签页页面卡死,请求都在pending,如果把EventSource连接放到worker线程中创建,能否解决这个问题,Web Worker中的HTTP请求会不会计入浏览器的同域最大请求数量呢?

  • 我在从网站获取数据时遇到问题(https://avito.ru)在本地MacBook Air上使用标准golang http库-禁止im获取状态403。从浏览器(使用禁用的JavaScript)打开该站点没有问题,使用标准Curl函数(Curl-v)获取数据也没有问题https://www.avito.ru/moscow)-一直处于状态200。 有一个Golang代码: 有两张照片: 有Curl-

  • 问题内容: 如果PHP引擎已经在服务器上执行脚本的过程中,其他同时向同一脚本发出的浏览器请求又会如何? 请求会排队吗? 他们会被忽略吗? 每个请求都会有自己的脚本实例吗? 还有其他可能性吗? 问题答案: 根据服务器的配置,服务器通常可以同时处理 数百个请求 -如果使用Apache,则 配置选项就是这样: 该指令设置了将同时服务的请求数的限制。 任何超出 限制的连接尝试 通常都会排队,最多可以排队一

  • 我是Vert.x的新手,我试图创建一个简单的下载服务。 当此错误发生时,没有数据通过线路发送,我检查了浏览器和嗅探数据包TCP数据包(0字节从服务器发送到浏览器)。 唯一有效的方法是使用关闭连接,这至少关闭了keep-alive http连接,并结束浏览器请求。 我想要实现的是向客户机发回一些信息,以告知发生了错误,可能将状态代码设置为适当的错误,并可能向其添加一些细节(在状态文本或响应正文中)。

  • 我对在PHP中一次提交多个请求持怀疑态度。我有一个php函数,比如insertOrder()来将详细信息插入数据库表并向用户发送通知。详细信息将从另一个来源自动发布到此功能。这些是insertOrder()中的步骤 启动Mysql事务 从OrderID=123的数据库表中选择订单计数(来自post数据) 如果COUNT=0,则插入数据库表并发送通知 如果不是0,则更新顺序 提交 问题在于,有时系统