基于Jmeter令牌的授权机制

时间:2016-02-10 15:27:05

标签: jmeter

我开发了基于JAXRS的REST WebAPI。它基于令牌的授权机制。它与OAuth 2.0非常相似:

所以,我需要创建一个JMeter测试来测试我的webapi。

    1. Get Authorization Code (on http://www.host.com/authz)
     Request:
      [ Header: 'response_type', Value: 'code']
      [ Header: 'client_id', Value: 'FIXED ID STRING']
      [ Header: 'username', Value: '$USER provided from a data source' ]
      [ Header: 'password', Value: '$PASSWORD provided from a data source'] 
     Response:
      [ Header: 'code', Value: '%AuthorizationCode' ]
      [ Header: 'expires_in', Value: '100'(seconds)]
    
    2. Get Access Token
     Request:
      [Header: 'grant_type', Value: 'authorization_code']
      [Header: 'code', Value: '%AuthorizationCode provided on the last request']
      [Header: 'client_id', Value: 'FIXED ID STRING']
     Response:
      [Header: 'access_token', Value: '%AccessToken']
      [Header: 'expires_in', Value: '500'(seconds)]
      [Header: 'refresh_token', value: '%RefrestToken']
    

在那场舞会之后,我获得了%AuthorizationCode %AccessToken %RefreshToken

从现在开始,我可以使用这些代码访问webapi。

    ForEach user in a datasource:
     Loop Forever:
      Send Http request each X seconds (on http://www.host.com/webapi)
       [Header: 'Authorization', Value: 'OAuth + %AccessToken']
    

我绝对不知道如何建立这个。

例如:我想测试50个用户并在6分钟内执行100次webapi方法。

  • 如何向JMeter提供多个用户信息?
  • 如何建立这种类似OAuth的舞蹈?

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

  1. 提供不同的凭据非常简单,最常用的测试元素是CSV Data Set Config,您可以保留用户名/密码组合
  2. 您可以通过HTTP标头管理器添加用户名和密码(以及code等)来请求标头。将其添加为HTTP请求的子项,并使用所需的标头名称和值进行填充。 CSV数据集配置中定义的JMeter Variables也将播放
  3. 您可以使用Regular Expression Extractor
  4. 从响应标头中提取AccessToken
  5. 通过HTTP标头管理器提供Authorization标头,如第2点所述。