Тестирование производительности Jmeter - разница в подсчете результатов, получаемых из API и MongoDB с использованием сэмплера JSR223 - PullRequest
0 голосов
/ 27 апреля 2018

Я создал набор тестов производительности, используя JMETER 4.0, и у меня есть несколько тестов, которые разделены на 2 фрагмента, и я вызываю их из одного потока. Ниже приведены типы тестовых случаев, которые состоят из 2 фрагментов.

Тестовый фрагмент 1: операция CURD для пользователя

Тестовый фрагмент 2: получение учетных данных пользователей из MongoDB и API и их сравнение и тестовые случаи из фрагмента теста 1 выполняются сначала несколько раз на основе количества потоков, а затем выполняются тестовые примеры из второго фрагмента

В тестовом фрагменте 2 у меня есть эти два тестовых примера

TC1: выборка количества пользователей из mongoDB (с использованием JSR223 Sampler)

TC2: получение количества пользователей с помощью API

Когда запускается 2-й тестовый фрагмент, тестовый пример для извлечения счетчика пользователя из mongoDb дает другой счетчик по сравнению с тестовым набором, который выбирает счетчик напрямую с помощью API. API обсуждают время обновления данных в mongoDB, так как могут существовать некоторые слои, для обновления данных в базе данных которых требуется время (я не уверен, какой слой существует и почему именно он требует времени). Скрипты работают нормально, когда я запускаю его для одного пользователя, поэтому нет сомнений, что что-то не так с скриптом.

кто-то, пожалуйста, предложите, какой подход мы можем использовать здесь, чтобы получить тот же счет.

а. Это хороший подход для добавления таймеров / задержки или что-то еще можно использовать?

б. Если использовать таймер / задержку, это также влияет на отчет о тестировании производительности, будут ли эти задержки добавлены в наши отчеты о тестировании производительности?

1 Ответ

0 голосов
/ 30 апреля 2018

Возможно, вы столкнулись с условием гонки , т. Е. Когда вы выполняете операцию чтения из базы данных с одним потоком, число уже обновлено другим потоком.

Доступны следующие варианты:

  1. Измените ваши запросы так, чтобы ваши проверки БД были бы специфичными для пользователя.
  2. Используйте Контроллер критических секций , чтобы гарантировать, что ваша проверка БД выполняется только одним потоком за один раз
  3. Используйте плагин Inter-Thread Communication для реализации синхронизации между потоками на основе определенных условий. Последний может быть установлен с помощью JMeter Plugins Manager
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...