Телец. Повторное использование общего сценария с разными переменными - PullRequest
0 голосов
/ 19 января 2020

Телец позволяет мне комбинировать сценарий ios следующим образом

scenarios:
  create-bob-account:
    requests:
    - url: http://example.com/account/create
      method: POST
      body:
        account_owner: bob
        account_number: 123
  create-lisa-account:
    requests:
    - url: http://example.com/account/create
      method: POST
      body:
        account_owner: lisa
        account_number: 321
  account-transfer:
    requests:
    - include-scenario: create-bob-account
    - include-scenario: create-bob-account
    - url: http://example.com/transfer
      method: POST
      body:
        account_number_from: 123
        account_number_to: 321
   ...

В этом примере у меня есть дублирующий код, который создает информацию об аккредитации Боба и Лизы. Могу ли я параметризовать сценарий create-account ? Т.е. создать скрипт

scenarios:
  create-account:
    requests:
    - url: http://example.com/account/create
      method: POST
      body:
        account_owner: ${owner}
        account_number: ${number}

и вызвать его с разными переменными, что-то вроде этого

scenarios:
  account-transfer:
    requests:
    - include-scenario: 
         arugment: bob, 123
         create-account 
      - include-scenario: 
         arugment: lisa, 321
         create-account 
    - url: http://example.com/transfer

Может быть, есть какой-нибудь способ реализовать эту функциональность? Основная идея c состоит в том, чтобы идентифицировать сценарии, которые не зависят от указанных c переменных, и повторно использовать их в различных сценариях с необходимыми переменными.

Спасибо!

1 Ответ

1 голос
/ 20 января 2020

Как насчет CSV Data Set Config ? Таким образом, вы можете поместить имена и идентификаторы своих учетных записей в файл CSV и включить блок запроса для чтения этих комбинаций имя / идентификатор из файла CSV. Соответствующие директивы Taurus: data-sources и include-scenarios

Пример конфигурации YAML:

execution:
  - scenario: account-transfer

scenarios:
  account-create:
    data-sources:
      - details.csv
    requests:
      - url: http://example.com/account/create
        method: POST
        body:
          account_owner: ${account_owner}
          account_number: ${account_number}
  account-transfer:
    requests:
      - include-scenario: account-create
      - include-scenario: account-create
      - url: http://example.com/transfer
        method: POST
        body:
          account_number_from: 123
          account_number_to: 321
...