javascript - 如何使用 Artillery 自动生成 OAuth 2.0 token ?

标签 javascript oauth-2.0 artillery

我想通过 javascript 自动自动化 OAuth 2.0 token 。我有什么办法可以做到这一点并获得 token 以在火炮脚本中使用它。

对于 OAuth token 生成,我有以下详细信息:

  • 授权网址
  • 客户编号
  • 范围

这是通过客户端身份验证凭据完成的。

下面是我用来生成 token 的示例代码:

var ClientOAuth2 = require('client-oauth2')

var Auth = new ClientOAuth2({
  clientId: 'ClientID',
  accessTokenUri: 'https://Auth_URL/v2.0/token',
  authorizationUri: 'https://Auth_URL/v2.0/authorize',
  redirectUri: 'https://Auth_URL/',
  scope: 'api://Scope/access_as_user'
})




  Auth.owner.getToken('Username', 'password')
  .then(async (user) => {
    await console.log(user) //=> { accessToken: '...', tokenType: 'bearer', ... }
  }).catch((e) => { console.log('error show',e); })
  .finally( () => console.log('end'));

最佳答案

您可以声明您的自定义 JS 文件,该文件将在每次请求之前触发:

您的 YAML 文件可以像这里一样:

config:
  target: "https://baseUrl.com"
  phases:
    - duration: 60
      arrivalRate: 100
  processor: "./customFile.js"

scenarios:
  - flow:
      - post:
          url: "/pathInYourApi"
          headers:
            Content-Type: "application/json"
            Accept: application/json
          json: {}
          beforeRequest: "beforeRequest"

然后是您的 customFile.js 脚本:

module.exports = {
  beforeRequest: beforeRequest,
};

function beforeRequest(requestParams, context, ee, next) {
  // Call your OAuth client, and after you obtain token you can assign it to requestParams Authorization header
  // eg. requestParams.headers.Authorization = `Bearer + ${token}`

  return next(); // MUST be called for the scenario to continue
}

关于javascript - 如何使用 Artillery 自动生成 OAuth 2.0 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58712212/

相关文章:

ssl - 用于演示的 Identity Server 4 星 ssl 证书

node.js - 火炮.io : How to generate test report for each Scenario?

javascript - 不明白错误

javascript - 超出最大调用堆栈大小 - Connected React Component

javascript - 如何从 javascript 执行 apex 进程

Java Spring Boot - 未经授权, postman

javascript - 如何使用 javascript 放置标记并打开标准谷歌信息窗口?

go - ResposeWriter/Write 的错误处理

node.js - 无法读取火炮脚本文件中的 CSV 文件

socket.io - 使用大炮进行socket io负载测试