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

时间:2017-08-21 13:44:19

标签: rest jax-rs http-status-code-401 payara

初始背景:

我们正在开发Web Aplication Server并将其部署在 Payara Server 4.1.2.173 中。最小稳定性测试通过完美,MVP完美运行但是为了改善系统的性能测试,我们在 JMeter(3.2)中创建了不同的测试用例,模拟前端正常活动并使所有对服务器的必要请求。

问题:

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

    <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/>

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

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

1 个答案:

答案 0 :(得分:0)

经过一些研究后,我发现当卷线程请求增加时,JMeter在向Http请求添加动态头令牌时遇到一些困难。在我的场景中,我正在做以下事情:

  1. 发出HTTP登录请求
  2. 在服务器
  3. 中生成令牌会话
  4. JMeter从响应中提供令牌,我应用后处理器将其编码为Base64并保存到JMeter系统变量。
  5. 在下一个HTTP请求中,我将HTTP标头配置组件中的标记添加为基本授权
  6. 当线程数量增加( 150约)时,服务器返回错误401.尽管JMeter显示好像令牌包含在头中,但实际请求中没有任何迹象。这种行为是随机出现的,没有共同的原因......

    <强>解决方案:

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