首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次VU运行之前,Artillery.io登录和捕获响应和cookie

每次VU运行之前,Artillery.io登录和捕获响应和cookie
EN

Stack Overflow用户
提问于 2022-03-04 14:08:24
回答 2查看 629关注 0票数 0

使用Artillery.io负载测试器,我尝试在运行场景流之前登录每个VU (我不希望登录请求成为场景结果的一部分),我尝试将登录流移动到beforeScenario,但似乎没有运行。

代码语言:javascript
复制
config:
  target: '{{ $processEnvironment.URL }}'
scenarios:
  - name: 'Warm Up'
    beforeScenario:
      flow:
        - post:
            url: '/login'
            json:
              username: 'admin'
              password: 'password'
            capture:
              - json: '$.user._id'
                as: 'userId'
    flow:
      - post:
          url: '/api/graphql'
          json:
            - operationName: 'apiRequest'
              query: 'query aQuery($userId: ID!) { aQuery: testQuery(userId: $userId) { id name } }'
              variables:
                userId: '{{ userId }}'

有办法做到这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2022-05-25 13:23:11

不确定您是否知道这一点,但我使用了方案之前的“前”部分,并将函数调用到帮助函数,该函数登录并保存access_token。

代码语言:javascript
复制
before:
  flow:
    - function: "login"
scenarios:
  - name: "Create"
  - flow:
    - post:
        url: ""
        headers:
          Authorization: "Bearer {{access_token}}"
票数 1
EN

Stack Overflow用户

发布于 2022-05-27 14:03:09

在“方案”部分之前,您必须使用类似的内容(仅举一个例子):

代码语言:javascript
复制
before:
  flow:
    - log: "Running the Authorization before virtual users run"
    - post:
        url: "/users/login"
        json:
          username: "{{user}}"
          password: "{{password}}"

        capture:
          json: "$.data.token"
          as: "accessToken"
        strict: false

        expect:
          - statusCode: 200
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71352640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档