Войти тест с помощью Тельца - PullRequest
0 голосов
/ 23 октября 2019

Проверка действия входа в систему с использованием Taurus

execution:
  -
    concurrency: 5
    ramp-up: 5
    hold-for: 1m
    scenario: Buyer-logs-in


scenarios:
  Buyer-logs-in:
    variables:
      baseurl: http://localhost:3000
    default-address: ${baseurl}
    data-sources:
      - path: './login.csv'
        delimeter: ','
        variable-names: userName, password
    keepalive: true
    retrieve-resources: false

    requests:
      - url: 'http://localhost:3000/login'
        label: login
        method: POST
        body:
          user[email]: {userName}
          user[password]:  {password}
        assert:
          - contains:
              - 200
            subject: http-code

      - url: 'http://localhost:3000/action'
        label: page1
        method: GET
        assert:
          - contains:
              - 200
            subject: http-code 

Это мой пример кода Taurus для имитации входа в систему и измерения производительности.

  1. В моем приложении одновременно может войти только один пользователь, а в моем файле csv 2 пользователя. Тест по-прежнему работает, когда я устанавливаю параллелизм 5 и Телец говорит, что вошли 5 пользователей. Как это возможно. Когда тот же пользователь снова войдет в систему, его выгонят из первого браузера, в который он вошел. Итак, при 2 входах пользователей Tuarus симулирует 5 пользователей?

  2. С этим вопросом,действительно ли Телец входит в систему, используя учетные данные, которые я предоставляю в файле csv? Или я должен использовать селен / Телец, чтобы имитировать его?

  3. Что меня действительно смутило, когда я удалил всех пользователей в csv-файле, тест все равно не дал мне 200 для входа в систему и page1.

TIA

1 Ответ

1 голос
/ 24 октября 2019

Если вы не укажете executor Телец будет использовать jmeter по умолчанию , это означает, что ваша конфигурация YAML будет переведена в Apache JMeter план тестирования

Вы можете увидеть сгенерированный план тестирования, выполнив команду bzt your-test.yaml -gui

  1. data-sources переведена в Конфигурация набора данных CSV , которая выглядит следующим образом:

    enter image description here

    это означает, что каждый поток (виртуальный пользователь) будет получать новое значение из файла CSV каждую итерацию, например:

    • виртуальный пользователь 1 - итерация 1 - 1-я строка
    • виртуальный пользователь 2 - итерация 1 - 2-я строка
    • виртуальный пользователь 3 - итерация 1 - 1-я строка
    • виртуальный пользователь 1 -итерация 2 - 2-я строка
    • и т. д.
  2. Не думаю, что вы читаете учетные данные из файла CSV, но нигде не используете егоправильный синтаксис для переменных JMeter равен ${variable_name_here}, поэтому вам нужно установить тело запроса на вход в систему:

    user[email]: ${userName}
    user[password]:  ${password}
    

    , пока вы сохраняетеrly настроить JMeter для работы в режиме реального браузера нет необходимости использовать Selenium

  3. Возможно, вы получаете ложноположительные результаты, потому что ваше подтверждение ответа не выполняет много полезной работы, JMeter автоматически считает HTTP Status Codes ниже 400 успешным. Поэтому вместо проверки кода состояния я бы рекомендовал убедиться, что пользователь вошел в систему, т. Е. Имеется сообщение «Приветствие» или ответ API содержит определенный текст для успешного входа в систему и / или не содержит ошибок.

...