首页 > 解决方案 > 无法使用 Apache JMeter 在浏览器中获取指纹

问题描述

我使用 Apache JMeter 3.X 版进行了性能测试。

在其中一个步骤中,我无法获取浏览器指纹值。我收到 NULL 值,它导致我的程序被终止。

但是当我使用普通浏览器时,它可以找到。

Apache JMeter 是否有无法获取浏览器指纹值的限制?

标签: apachejmeter

解决方案


  1. 首先请注意,建议使用最新版本的 JMeter,因此请考虑升级到JMeter 5.2 (或JMeter 下载页面上提供的最新稳定版本)
  2. 关于“指纹”本身,根据JMeter 项目的主页

    JMeter 不是浏览器,它在协议级别工作。就 Web 服务和远程服务而言,JMeter 看起来像一个浏览器(或者更确切地说,是多个浏览器);但是JMeter 并不执行浏览器支持的所有操作。特别是,JMeter 不执行 HTML 页面中的 Javascript。它也不像浏览器那样呈现 HTML 页面(可以将响应视为 HTML 等,但时间不包含在任何示例中,并且一次只显示一个线程中的一个示例)。

    所以你需要调查这个“指纹”检查的逻辑,你可以让 JMeter 在某种程度上表现得像一个真正的浏览器,比如:

    但是,如果“指纹”检查依赖于 JavaScript,您将需要使用JSR223 测试元素重新实现相同的 JavaScript

主要规则是:JMeter 的网络足迹必须与真实浏览器的网络足迹完全相同(除了需要关联的动态值),如果您将使用 JMeter 发送正确的请求 - 您的被测系统将看不到区别。


推荐阅读