How to create a test from YAML input

The content of the field must either be:

Note:


Root parameters of the field
Parameter Description Required
test_name The test name. Yes
test_folder_path The location of the test in the Test Management folder tree of the Performance Center project. The folders should be separated by double backslashes (\\). For example, "MyMainFolder\\MySubfolder\\MySubSubFolder". Do not include the Performance Center root folder (named "Subject") Yes
test_content The content of the test that requires additional parameters specified in the 'test_content' table below. Yes


test_content (if a YAML file is specified in the field, those are the root parameter to be used in the file content):
Parameter Description Required
controller Defines the Controller to be used during the test run (it must be an available host in the Performance Center project). If not specified, a Controller will be chosen from the different controllers available in the Performance Center project. No
lg_amount Number of load generators to allocate to the test (every group in the test will be run by the same load generators). Not required if each group defined in the 'group' parameter defines the load generators it will be using via the 'lg_name' parameter (see 'group' table below).
group Lists all groups or scripts defined in the test. The parameter to be used in each group are specified in the 'group' table below. Yes
scheduler Defines the duration of a test, and determines whether virtual users are started simultaneously or gradually. See the 'scheduler' table below. No


group:
Parameter Description Required
group_name Name of the group (it must be a unique name if several groups are defined). Yes
vusers Number of virtual users to allocate to the group for running the script. Yes
script_id ID of the script in the Performance Center project. Not required if the 'script_path' parameter is specified.
script_path Path and name of the script to be added to the group, separated by double backslashes (\\). For example "MyMainFolder\\MySubFolder\\MyScriptName'. Do not include the Performance Center root folder (named "Subject"). Not required if 'script_id' parameter is specified
lg_name List of load generators to allocate to the group for running the script. The supported values are:
  • The hostname, as defined in Performance Center, of an existing load generator in Performance Center allocated as a host.
  • "LG" followed by a number, to use an automatically matched load generator (recommended).
  • "DOCKER" followed by a number, to use a dynamic load generator (available if your Performance Center server and project are set to work with Docker).
No
command_line The command line applied to the group. No
rts Object defining the runtime settings of the script. See the 'rts' table below. No


rts:
Parameter Description Required
pacing Can be used to define the number of iterations the script will run and the required delay between iterations (see the 'pacing' table below). No
thinktime Can be used to define think time (see the 'thinktime' table below). No
java_vm Can be used when defining Java environment runtime settings (see the 'java_vm' table below). No
jmeter Can be used to define JMeter environment runtime settings (see the 'jmeter' table below). No


pacing:
Parameter Description Required
number_of_iterations Specifies the number of iterations to run; this must be a positive number. Yes
type Possible values for type attribute are:
  • "immediately": ignores 'delay' and 'delay_random_range' parameters. This is the default value when no type is specified.
  • "fixed delay": 'delay' parameter is mandatory.
  • "random delay": 'delay' and 'delay_random_range' parameters are mandatory.
  • "fixed interval": 'delay' parameter is mandatory.
  • "random interval": 'delay' and 'delay_random_range' parameters are mandatory.
No
delay Non-negative number (less than 'delay_at_range_to_seconds' when specified). Depends on the value provided for the 'type' parameter.
delay_random_range Non-negative number. It will be added to the value given to the 'delay' parameter (the value will be randomly chosen between the value given to 'delay' parameter and the same value to which is added the value of this parameter). Depends on the value provided for the 'type' parameter.


thinktime:
Parameter Description Required
type The ThinkTime Type attribute is one of:
  • "ignore": This is the default value when no type is specified.
  • "replay": Provide 'limit_seconds' parameter with value.
  • "modify": Provide 'limit_seconds' and 'multiply_factor' parameters with values.
  • "random": Provide 'limit_seconds', 'min_percentage' and 'max_percentage' parameters with values.
No
min_percentage This must be a positive number. Depends on the value provided for the 'type' parameter.
max_percentage This must be a positive number (it must be larger than the value provided for the 'min_percentage' parameter). Depends on the value provided for the 'type' parameter.
limit_seconds This must be a positive number. Depends on the value provided for the 'type' parameter.
multiply_factor The recorded think time is multiplied by this factor at runtime. Depends on the value provided for the 'type' parameter.


java_vm:
Parameter Description Required
jdk_home The JDK installation path. No
java_vm_parameters List the Java command line parameters. These parameters can be any JVM argument. The common arguments are the debug flag (-verbose) or memory settings (-ms, -mx). In additional, you can also pass properties to Java applications in the form of a -D flag. No
use_xboot Boolean: Instructs VuGen to add the Classpath before the Xbootclasspath (prepend the string). No
enable_classloader_per_vuser Boolean: Loads each Virtual User using a dedicated class loader (runs Vusers as threads). No
java_env_class_paths A list of classpath entries. Use a double backslash (\\) for folder separators. No


jmeter:
Parameter Description Required
start_measurements Boolean value to enable JMX measurements during performance test execution. No
jmeter_home_path Path to JMeter home. If not defined, the path from the %JMETER_HOME% environment variable is used. No
jmeter_min_port This number must be lower than the value provided in the 'jmeter_max_port' parameter. Both 'jmeter_min_port' and 'jmeter_max_port' parameters must be specified otherwise the default port values is used. No
jmeter_max_port This number must be higher than the value provided in the 'jmeter_min_port' parameter. Both 'jmeter_min_port' and 'jmeter_max_port' parameters must be specified otherwise the default port values is used. No
jmeter_additional_properties JMeter additional properties file. Use double slash (\\) for folder separator. No


scheduler:
Parameter Description Required
rampup Time, in seconds, to gradually start all virtual users. Additional virtual users are added every 15 seconds until the time specified in the parameter ends. If no value is specified, all virtual users are started simultaneously at the beginning of the test. No
duration Time, in seconds, that it will take to run the test after all virtual users are started. After this time, the test run ends. If not specified, the test will run until completion. No


In the next example, the value of the field is set with the code below:

##################################################
test_name: mytestname
test_folder_path: "Tests\\mytests"
test_content:
  group:
    - group_name: "TEstInt"
      vusers: '20'
      script_path: "plugin\\TEstInt"
      lg_name:
        - "LG1"
        - "LG2"
    - group_name: "Mtours"
      vusers: '20'
      script_path: "plugin\\mtours"
      lg_name:
        - "LG3"
        - "LG4"
  scheduler:
    rampup: '45'
    duration: '300'
##################################################


In the next example, a YAML file location is specified as value and the content of the file contains the code below:

##################################################
group:
  - group_name: "TEstInt"
    vusers: '20'
    script_path: "plugin\\TEstInt"
    lg_name:
      - "LG1"
      - "LG2"
  - group_name: "Mtours"
    vusers: '20'
    script_path: "plugin\\mtours"
    lg_name:
      - "LG3"
      - "LG4"
scheduler:
  rampup: '45'
  duration: '300'
##################################################


In the next example, a YAML file location is specified as value and the content of the file contains the code below:

##################################################
controller: "mycontroller"
lg_amount: 3
group:
  - group_name: "JavaVuser_LR_Information_pacing_immediately_thinktime_ignore"
    vusers: 50
    script_id: 394
    command_line: "echo hello from JavaVuser_LR_Information_pacing_immediately_thinktime_ignore > c:\\hello_from_JavaVuser_LR_Information_pacing_immediately_thinktime_ignore.txt"
    rts:
      pacing:
        number_of_iterations: 2
        type: "immediately"
      java_vm:
        jdk_home: "C:\\Program Files\\Java\\jdk1.8.0_191"
        java_vm_parameters: "java_vm_parameters"
        enable_classloader_per_vuser: true
        use_xboot: true
        java_env_class_paths:
          - "java_env_class_path1"
          - "java_env_class_path2"
      thinktime:
        type: "ignore"

  - group_name: "JavaHTTP_BigXML_pacing_fixed_delay_thinktime_replay"
    vusers: 50
    script_path: "scripts\\java_protocols\\JavaHTTP_BigXML"
    command_line: "echo hello from JavaHTTP_BigXML_pacing_fixed_delay_thinktime_replay > c:\\hello_from_JavaHTTP_BigXML_pacing_fixed_delay_thinktime_replay.txt"
    rts:
      pacing:
        number_of_iterations: 2
        type: "fixed delay"
        delay: 10
      java_vm:
        jdk_home: "C:\\Program Files\\Java\\jdk1.8.0_191"
        java_vm_parameters: "java_vm_parameters"
        enable_classloader_per_vuser: true
      thinktime:
        type: "replay"
        limit_seconds: 30

  - group_name: "JavaVuser_LR_Information_immediately_pacing_random_delay_thinktime_modify"
    vusers: 50
    script_id: 394
    command_line: "echo hello from JavaVuser_LR_Information_immediately_pacing_random_delay_thinktime_modify > c:\\hello_from_JavaVuser_LR_Information_immediately_pacing_random_delay_thinktime_modify.txt"
    rts:
      pacing:
        number_of_iterations: 2
        type: "random delay"
        delay: 10
        delay_random_range: 20
      java_vm:
        jdk_home: "C:\\Program Files\\Java\\jdk1.8.0_191"
        java_vm_parameters: "java_vm_parameters"
        enable_classloader_per_vuser: true
        java_env_class_paths:
          - "java_env_class_path1"
          - "java_env_class_path2"
      thinktime:
        type: "modify"
        limit_seconds: 30
        multiply_factor: 2

  - group_name: "JavaHTTP_BigXML_pacing_fixed_interval_thinktime_random"
    vusers: 50
    #script_id: 392
    script_path: "scripts\\java_protocols\\JavaHTTP_BigXML"
    command_line: "echo hello from JavaHTTP_BigXML_pacing_fixed_interval_thinktime_random > c:\\hello_from_JavaHTTP_BigXML_pacing_fixed_interval_thinktime_random.txt"
    rts:
      pacing:
        number_of_iterations: 2
        type: "fixed interval"
        delay: 10
      java_vm:
        jdk_home: "C:\\Program Files\\Java\\jdk1.8.0_191"
        java_vm_parameters: "java_vm_parameters"
        enable_classloader_per_vuser: true
        java_env_class_paths:
          - "java_env_class_path1"
          - "java_env_class_path2"
      thinktime:
        type: "random"
        limit_seconds: 30
        min_percentage: 2
        max_percentage: 3

  - group_name: "JavaHTTP_BigXML_pacing_random_interval"
    vusers: 50
    script_path: "scripts\\java_protocols\\JavaHTTP_BigXML"
    command_line: "echo hello from JavaHTTP_BigXML_pacing_random_interval > c:\\hello_from_JavaHTTP_BigXML_pacing_random_interval.txt"
    rts:
      pacing:
        number_of_iterations: 2
        type: "random interval"
        delay: 10
        delay_random_range: 20
      java_vm:
        jdk_home: "C:\\Program Files\\Java\\jdk1.8.0_191"
        java_vm_parameters: "java_vm_parameters"
        enable_classloader_per_vuser: true
        java_env_class_paths:
          - "java_env_class_path1"
          - "java_env_class_path2"

  - group_name: "Mtours_pacing_random_interval"
    vusers: 50
    script_path: "scripts\\Mtours"
    command_line: "echo hello from Mtours_pacing_random_interval > c:\\hello_from_Mtours_pacing_random_interval.txt"
    rts:
      pacing:
        number_of_iterations: 2
        type: "random interval"
        delay: 10
        delay_random_range: 20
      jmeter:
        start_measurements: true
        jmeter_home_path: "c:\\jmeter"
        jmeter_min_port: 2001
        jmeter_max_port: 3001
        jmeter_additional_properties: "jmeter_additional_properties"
  - group_name: "Mtours_pacing_random_interval_Jmeter_default_port"
    vusers: 50
    script_path: "scripts\\Mtours"
    command_line: "echo hello from Mtours_pacing_random_interval_Jmeter_default_port > c:\\hello_from_Mtours_pacing_random_interval_Jmeter_default_port.txt"
    rts:
      pacing:
        number_of_iterations: 2
        type: "random interval"
        delay: 10
        delay_random_range: 20
      jmeter:
        start_measurements: true

scheduler:
  rampup: 120
  duration: 600
##################################################