Jmeter: как перебрать CSV-файл в пакетном режиме? - PullRequest
0 голосов
/ 04 ноября 2019

Я должен провести тест в Jmeter, который использует файл csv в качестве источника данных.

Требование теста состоит в том, что для каждого запроса (тест должен иметь 100 запросов), 10.000 строк изCSV должен быть обработан.

Подводя итог, вот как должен выглядеть тест:

запрос 1 -> итерация по первым 10.000 строк (1-10.000), запрос 2 -> итерацияв следующие 10.000 строк (10.001 - 20.000) ... ... запрос 100 -> итерация по строкам 990.001 - 1.000.000

Я новичок в Jmeter, поэтому я надеюсь, что смог объяснить, что у меня естьчтобы сделать, но в случае, если вам нужно больше деталей, пожалуйста, дайте мне знать.

Таким образом, в принципе, есть простой способ сделать это, добавив какой-то контроллер или он требует сэмплера JSR223 с некоторым кодом в нем?

Спасибо.

Я тестирую приложение, в котором хранятся товары, чтобы пометить товары как "проданные", необходимо проверить, как приложение ведет себя, когда они продают 100 партий, каждая из которых содержит 10.000продукты.

В тесте также есть сэмплер с запросом SOAP, в XML-запросе мыла есть узел, содержащий серийный номер продукта, изначально я пытался жестко кодировать 10.000 серийных номеров под этим параметром, но результат не был ожидаемым.

1 Ответ

1 голос
/ 05 ноября 2019

Я бы пошел разделить оригинальный «большой» файл CSV на более мелкие файлы CSV, содержащие по 10 000 строк каждый.

  1. Добавить setUp Group Thread * в ваш план тестирования
  2. Добавить JSR223 Sampler в группу Thread
  3. Поместите следующий код в область «Сценарий»:

    SampleResult.setIgnore()
    
    def largeFile = new File('largefile.csv')
    
    def i = 0
    def smallFilePostfix = 0
    def smallFile = new File('smallfile' + smallFilePostfix + '.csv')
    largeFile.each { line ->
        if (i >= 10000) {
            i = 0
            smallFilePostfix += 1
            smallFile = new File('smallfile' + smallFilePostfix + '.csv')
        }
        i = i + 1
        smallFile << line << System.getProperty('line.separator')
    }
    
  4. Вот и все, приведенный выше код разделит largefile.csv на smallfile0.csv, smallfile1.csv и т. Д., Каждый из которых содержит10 000 строк, которые можно использовать в обычном режиме, например, с помощью функции __ CSVRead ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...