0

我有一个动作,它填写一个包含 2 个字段的表单并单击提交按钮。

问题:在几个脚本运行期间,此采样器的加载时间从最初的 2-3 秒(视觉上接近手动执行)增加到 14-16 秒,没有明显的原因(应用程序或脚本没有变化)。

调查:当手动字段可单击且表单出现后没有可见延迟时,脚本中两个字段的单击字段和 sendKeys 操作之间暂停约 4-5 秒。

日志: 在此处输入图像描述

WDS代码: 在此处输入图像描述 在此处输入图像描述

问:对于每个字段中约 5 秒 + 约 5 秒停顿的这种奇怪行为有什么解释吗?

我应该怎么做才能解决这个问题,因为停顿时间过长且无法解释,会提供不相关的结果?

我应该考虑切换到 JSR223/groovy 还是不是采样器类型和代码相关的问题?

4

1 回答 1

1

您的问题并不能说明全部情况,因此我认为到目前为止只有少数通用建议无法提供全面的答案:

  1. 在 JMeter “等待”并且什么都不做的时候进行线程转储,它可以让你检测到那里发生了什么

    在此处输入图像描述

  2. 使用JVisualVM或等效工具监视 JVM 参数,可能是 JVM 正在执行垃圾收集以释放堆内存空间,在这种情况下,您必须调整 JMeter 以获得最佳性能

  3. 你“找到”元素两次,第二行是绝对没有必要的,所以不是

    wait.until(pkg.ExpectedConditions.visibilityOfElementLocated(pkg.By.xpath("some xpath")))
    var element = WDS.browser.findElement(pkg.By.xpath("the same xpath"))
    

    你只能这样做一次:

    var element = wait.until(pkg.ExpectedConditions.visibilityOfElementLocated(pkg.By.xpath("some xpath")))
    
  4. XPath 是最强大但性能最低的定位器策略,如果可能的话 - 尝试坚持元素ID 属性,如果不可能的话 - 选择CSS 选择器

  5. 遵循JMeter 最佳实践,例如不要在 GUI 模式下运行测试,避免存储响应数据等。

于 2021-08-04T14:56:23.207 回答