基于Jmeter令牌的授权机制

问题描述:

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

所以,我需要创建一个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. 提供了不同的凭据是相当容易的,最常用的测试元件CSV Data Set Config在那里你可以保留用户名/密码组合
  2. 您可以添加用户名和密码(以及code等),请求头通过HTTP标题管理器。将其添加为HTTP请求的子项并填充所需的标题名称和值。在CSV数据集的配置定义也将发挥
  3. 可以使用Regular Expression Extractor
  4. 经由HTTP头管理器等在点2
提供 Authorization报头中提取从响应头 AccessToken JMeter Variables