Поиск…


Вступление

Параметризация - это создание разных наборов данных для разных пользователей в одном тестовом сценарии. Например, запуск нескольких пользователей с разными учетными данными в одном скрипте. Это делает его одним из основных аспектов создания тестов производительности.

Параметрирование с использованием внешних файлов

Один из распространенных способов параметризации ваших сценариев производительности - использовать CSV-файл. Лучшим примером использования входных файлов CSV является процесс входа в систему. Если вы хотите протестировать приложение у разных пользователей, вам необходимо предоставить список учетных данных пользователя.

Предположим, что у нас есть запрос на вход, который работает для одного конкретного пользователя: введите описание изображения здесь

Мы можем легко параметризовать этот запрос с помощью внешнего файла CSV и запуска скрипта для разных пользователей. Чтобы добавить конфигурацию параметризации CSV:

Щелкните правой кнопкой мыши запрос на вход -> Добавить -> Элемент конфигурации -> Конфигурация набора данных CSV

введите описание изображения здесь

Краткое описание параметров конфигурации CSV Data Set Config:

  • Имя - имя элемента, которое будет использоваться в дереве JMeter
  • Имя файла - имя входного файла. Относительные имена файлов разрешаются на основе пути активного плана тестирования. Абсолютные имена файлов также поддерживаются
  • Кодирование файлов - кодирование входного файла, если это не платформа по умолчанию
  • Переменные имена - список разделенных имен переменных, которые будут использоваться в качестве контейнера для анализируемых значений. Если пустым, первая строка файла будет интерпретирована как список имен переменных
  • Разделитель - разделитель, который будет использоваться для разделения проанализированных значений из входного файла
  • Разрешить цитируемые данные? - true, если вы хотите игнорировать двойные кавычки и позволить таким элементам содержать разделитель.
  • Перерабатывать на EOF? - true в случае, если план тестирования файла должен перебирать файл более одного раза. Он будет инструктировать JMeter перемещать курсор в начале файла
  • Остановить поток на EOF? - false в случае итерации цикла над CDC-файлом и true, если вы хотите остановить поток после прочтения всего файла
  • Режим обмена:
    • Все потоки - файл разделяется между всеми виртуальными пользователями (по умолчанию)
    • Текущая группа потоков - файл будет открыт один раз для каждой группы потоков
    • Текущий поток - каждый файл будет открыт отдельно для каждого из потоков
    • Идентификатор - все потоки, имеющие один и тот же идентификатор, также имеют один и тот же файл

Давайте создадим файл csv, содержащий разных пользователей с именами и паролями: введите описание изображения здесь

Теперь мы можем использовать этот файл с конфигурацией набора данных CSV. В нашем случае достаточно добавить значения конфигурации «Имя файла» и «Переменные имена»: введите описание изображения здесь

Последним шагом, который мы должны предпринять, является параметризация запроса на вход с переменными CSV. Это можно сделать, заменив исходные значения соответствующими переменными из поля конфигурации «Переменные имена» в CSV Data Set Config, например: введите описание изображения здесь Если мы запустим наш тестовый скрипт, JMeter заменит эти переменные на значения из файла TestUsers.csv. Каждый виртуальный пользователь JMeter получит учетные данные из следующей строки файла csv.

Запрос на вход первого пользователя:

введите описание изображения здесь

Запрос на вход второго пользователя: введите описание изображения здесь

Параметрирование с использованием баз данных

Другим способом параметризации ваших сценариев производительности является использование данных базы данных через JDBC. JDBC - это интерфейс прикладного программирования, который определяет, как клиент может получить доступ к базе данных.

Прежде всего, загрузите драйвер JDBC в свою базу данных (обратитесь к поставщику базы данных). Например, драйвер mysql можно найти здесь. Затем вы можете добавить его, добавив файл .jar в план тестирования, используя следующую форму:

введите описание изображения здесь

Но лучше добавить Jar-файл в папку lib и перезапустить JMeter.

После этого настройте соединение с базой данных, используя элемент «Конфигурация соединения JDBC». Пример: Щелкните правой кнопкой мыши на группе потоков -> Добавить -> Элемент конфигурации -> Конфигурация соединения JDBC

введите описание изображения здесь

Параметры конфигурации подключения JDBC:

  • Имя - имя конфигурации подключения, которое будет отображаться в дереве групп потоков
  • Variable Name - имя, которое будет использоваться как уникальный идентификатор для соединения db (можно использовать несколько соединений, и каждый из них будет привязан к другому имени)
  • Максимальное количество подключений - максимальное количество подключений, разрешенных в пуле подключений. В случае 0 каждый поток будет иметь свой собственный пул с одним соединением в нем
  • Max Wait (ms) - пул выдаёт ошибку, если указанный тайм-аут превышен при подключении db
  • Время между прогонами (ms) - количество миллисекунд для паузы между прогонами потока, который выдает неиспользуемые соединения из пула db
  • Auto Commit - да, чтобы включить автоматическую фиксацию для связанных подключений db
  • Test While Idle - проверять соединения на холостом ходу перед обнаружением эффективного запроса. Дополнительные сведения: BasicDataSource.html # getTestWhileIdle
  • Soft Min Evictable Idle Time (ms) - период времени, в течение которого указанное соединение может простаивать в пуле db, прежде чем оно может быть выведено. Подробнее: BasicDataSource.html # getSoftMinEvictableIdleTimeMillis
  • Запрос проверки - запрос на проверку работоспособности, который будет использоваться для проверки того, отвечает ли база данных
  • URL-адрес базы данных - строка подключения JDBC для базы данных. См. Здесь примеры
  • Класс JDBC Driver - соответствующее имя класса драйвера (для каждого db). Например, «com.mysql.jdbc.Driver» для MySql db
  • Имя пользователя - имя пользователя базы данных
  • Пароль - пароль базы данных (будет сохранен незашифрованным в плане тестирования)

В нашем случае нам нужно только установить обязательные поля:

  • Имя переменной Bound to Pool.
  • URL базы данных
  • Класс JDBC Driver
  • имя пользователя
  • пароль

Остальные поля на экране можно оставить по умолчанию: введите описание изображения здесь

Предположим, что мы храним тестовые учетные данные пользователя в базе данных: введите описание изображения здесь

Теперь, когда настроено соединение с базой данных, мы можем добавить сам запрос JDBC и использовать его запрос для получения всех учетных данных из базы данных: Щелкните правой кнопкой мыши на группе потоков -> Добавить -> Пример -> Запрос JDBC

Используя запрос 'Select Statement' и 'Variable Names', мы можем проанализировать ответ на пользовательские переменные.

введите описание изображения здесь

Теперь мы будем иметь переменные JMeter, которые могут быть использованы далее в последующих запросах. Указанные переменные будут созданы с добавочным суффиксом (email_1, email_2, email_3 ... ..).

Чтобы использовать эти переменные в «Запросе на вход», нам нужно добавить счетчик, который будет использоваться для доступа к правильным значениям из ответа на запрос JDBC. Чтобы добавить элемент «Счетчик» в JMeter: щелкните правой кнопкой мыши на группе потоков -> Добавить -> Элемент конфигурации -> Счетчик

введите описание изображения здесь

После этого мы можем обновить «запрос на вход» с помощью функции __V. Это возвращает результат оценки выражения имени переменной и может использоваться для оценки ссылок вложенных переменных:

введите описание изображения здесь

Указанной конфигурации достаточно, чтобы использовать значения базы данных для запуска скрипта для разных пользователей: введите описание изображения здесь введите описание изображения здесь

Параметрирование с использованием плагина Parameterized Controller

Если вам нужно выполнить повторяющуюся последовательность одного и того же действия с разными параметрами, используйте плагин стороннего разработчика «Parameterized Controller» из проекта JMeter-Plugins .

Сначала вам необходимо установить этот плагин, выполнив процедуру установки.

Предположим, что мы хотим параметризовать рабочий процесс входа в систему:

введите описание изображения здесь

Прежде всего, вам нужно установить плагин «Parameterized Controller», поскольку он не включен в ядро ​​JMeter. Этапы установки этого процесса можно найти здесь.

Давайте переместим «Запрос на вход» в отдельный контроллер и отключим его (щелкните его правой кнопкой мыши и выберите «Отключить»). Это наиболее предпочтительный способ иметь контейнер модулей внутри вашего плана тестирования и избегать использования Workbench как такового. По завершении установки вы можете добавить два контроллера «Parameterized Controller» с разными учетными данными пользователя: Щелкните правой кнопкой мыши на группе потоков -> Добавить -> Логический контроллер -> Параметрированный контроллер

введите описание изображения здесь

Параметрированные контроллеры содержат раздел «Определенные пользователем переменные», где вы можете указать свои параметры. Поместите учетные данные первого пользователя в первом параметризованном контроллере и вторых учетных данных пользователя во втором параметризованном контроллере. введите описание изображения здесь

Внутри обоих параметризованных контроллеров добавьте ссылки на «Многоразовый контроллер», чтобы вызвать «запрос на вход» с различными параметрами. Это можно сделать так:

Щелкните правой кнопкой мыши «Параметрированный контроллер» -> «Добавить» -> «Логический контроллер» -> «Контроллер модуля»

введите описание изображения здесь

При запуске скрипта вы увидите, что «запрос на вход» запускает каждый из параметризованных контроллеров отдельно. Это может быть очень полезно, если вам нужно запустить скрипт в разных комбинациях входных параметров.

введите описание изображения здесь



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow