401 UnAuthorized - 此请求需要 HTTP 身份验证 - Payara/Glassfish

401 UnAuthorized - This request requires HTTP authentication - Payara/Glassfish

初始上下文:

我们正在开发 Web 应用程序服务器并将其部署在 Payara Server 4.1.2.173 中。最小稳定性测试通过完美,MVP 完美运行,但为了提高系统的性能测试,我们在 JMeter (3.2) 中创建了不同的测试用例,模拟前端正常 activity 并向服务器发出所有必要的请求。

问题:

当 JMeter 开始发出请求 REST(JAX-RS) 时,一切正常,但突然有一些请求(用户)return 出现以下错误响应:

    <h1>HTTP Status 401 - Unauthorized</h1>
    <hr/>
    <p>
        <b>type</b> Status report</p><p>
        <b>message</b>Unauthorized</p><p>
        <b>description</b>This request requires HTTP authentication.</p>
    <hr/>

很奇怪,这个错误是随机出现的,而且显然不是并发问题。

任何想法可能是什么问题?谢谢

经过一些研究,我发现当线程请求量增加时,JMeter 很难将动态 header 令牌添加到 Http 请求。在我的场景中,我正在执行以下操作:

  1. 发出 HTTP 登录请求
  2. 正在服务器
  3. 中生成令牌session
  4. JMeter 从响应中给出令牌,我应用 post-processor 将其编码为 Base64 并保存到 JMeter 系统变量。
  5. 在下一个 HTTP 请求中,我将令牌添加到 HTTP Header 配置组件中作为 基本授权

当线程数量增加时(150 大约)服务器return 错误 401。尽管 JMeter 显示好像令牌包含在 header ,在真正的请求中没有它的迹象。该行为随机出现且没有共同原因...

解法:

我们已决定添加令牌 session 作为 CSV 数据集的一部分 - 配置文件,JMeter 能够管理所有请求而不会出现任何罕见的 401 错误。