金牛座。如何在 include-scenario 块中使用场景级属性

问题描述 投票:0回答:1

我有 10 个功能要测试。为此我编写了 10 个测试脚本。 每个测试脚本使用不同的用户名/密码登录网站。

我想对每个测试脚本使用相同的登录代码,但每次都应该使用特定于该功能的用户名/密码。

我尝试使用它:登录场景需要用户名和密码

- include-scenario: login
 properties:
   Username: Feature_user1
   Password: Feature_pswd1
- include-scenrio: feature1

对于其他类似风格的人。

- include-scenario: login
  properties:
   Username: Feature_user2
   Password: Feature_pswd2
- include-scenario: feature2

它不起作用。我收到错误:

 ERROR:  Config error: Wrong request

https://gettaurus.org/docs/JMeter/ 中,它提到了场景级属性。

我正在访问这些属性,例如:

${${__P(Username)}} and ${${__P(Password)}}

任何解决这个问题的指示。

jmeter performance-testing taurus
1个回答
0
投票

我认为你无法实现这一目标,因为:

  1. 当您使用
    include-scenario
    块时,它会生成一个测试计划,因此您将无法针对不同的子场景使用不同的属性
  2. 属性和变量都不会从子场景传播到“父”场景

我认为您可以使用 JSR223 Blocks 为不同的场景设置不同的凭据,例如:

execution:
- concurrency: 1
  iterations: 1
  scenario: combined-scenario

scenarios:
  feature1:
    requests:
    - url: https://blazedemo.com?username=${username}&password=${password}
      method: GET
      jsr223:
        - execute: before
          script-text: 'vars.put("username", "feature-1-username"); vars.put("password", "feature-1-password")'
  feature2:
    requests:
    - url: https://demoblaze.com?username=${username}&password=${password}
      method: GET
      jsr223:
        - execute: before
          script-text: 'vars.put("username", "feature-2-username"); vars.put("password", "feature-2-password")'
  combined-scenario:
    requests:
      - include-scenario: feature1
      - include-scenario: feature2

更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.