如何在Jmeter

时间:2018-02-09 07:10:06

标签: jmeter

如何在Jmeter的功能流中获取几个请求的'authorization'标题的oauth_signature和oauth_nonce值。

流速: 1.使用user / pwd(JSON格式)登录>能够使用Jmeter登录,响应将具有在后续请求中用作cookie的sessionid 2. cookie值非常合格(已添加HTTP cookie管理器) 3.登录后,打开仪表板页面需要使用sessionid,这也可以正常运行 4.登录用户将执行'添加'和'提交'操作,其中包含'授权'标题,授权标题的值显示如下: OAuth realm =“xyz”,oauth_version =“1.0”,oauth_consumer_key =“testapp”,oauth_timestamp =“1517940303”,oauth_nonce =“abcd”,oauth_signature_method =“HMAC-SHA1”,oauth_signature =“uxO7B%2B%2Fbo%3D”

使用Blazemeter记录流量时,捕获上面的授权标题并观察到此'nonce'和'signature'值已动态更改后续请求。

请指导如何通过共同关系或任何其他方式捕获这些动态变化的值,以使测试计划始终成功运行。

目前,在运行测试时,只要传递了“授权”标题,它就会失败。

尝试使用HTTP授权管理器,但不确定以用户名/密码传递的内容,因为没有HTTP授权管理器的第一个请求登录成功。

当试图获取有关如何生成签名值的详细信息时,请获取以下更新: 使用oauth.js生成签名。这是供应商文件。但是在后端他们正在验证签名以及nonce和timestamp。

1 个答案:

答案 0 :(得分:0)

nonce基本上是number used once,因此您可以为此发送任何唯一的号码。在大多数情况下,它是从Unix时代开始的当前时间戳(以毫秒为单位) - JMeter的__time() function产生的时间戳非常简单。

关于签名,它需要更复杂一点:

  1. 获取请求方法和网址
  2. 获取请求参数
  3. 百分比编码将要签名的每个键和值
  4. 按编码键字母顺序对参数列表进行排序
  5. 对于请求参数的每个键/值对:

    • 将编码密钥附加到输出字符串
    • =字符附加到输出字符串
    • 将编码值附加到输出字符串。
    • 如果您的请求有>,则在键/值对之间附加&符号1参数
  6. 使用使用者密钥,oauth令牌密钥并使用服务器期望的算法加密请求。
  7. 查看OAuth Core 1.0 Revision A文章,了解有关OAuth流量的更多信息,希望它能说明为了执行经过身份验证的请求需要完成的工作。您可能还会发现How to Run Performance Tests on OAuth Secured Apps with JMeter有用。