Как l oop значения файла CSV, используя Ultimate Thread Group? - PullRequest
1 голос
/ 16 марта 2020

У меня есть links.csv файл:

METHOD,HOST,PATH,HITS
GET,google.com,/,7
GET,facebook.com,/,3

Я хочу создать план тестирования JMeter с использованием Ultimate Thread Group (UTG) , который рандомизирует Хиты на основе последнего столбца в CSV выше (HITS).

При просмотре дерева результатов, я хочу видеть что-то вроде этого:

1. google.com
2. google.com
3. facebook.com
4. google.com
5. google.com
6. google.com
7. google.com
8. google.com
9. facebook.com
10. facebook.com

В идеале, я хочу установить UTG использует следующие настройки:

  • Start Threads Count = сумма всех попаданий в CSV-файл (например, 7 + 3)
  • Initial Delay = 0
  • Время запуска = 60
  • Удержание нагрузки для = 30
  • Время выключения = 0

Как этого добиться? Я ценю примеры кода и скриншоты, так как я все еще новичок в JMeter.

1 Ответ

0 голосов
/ 16 марта 2020

Я могу думать только о том, чтобы сгенерировать новый CSV-файл из исходного, чтобы:

  1. Получить сумму "HITS"
  2. Создать строку, содержащую метод, хост и путь за «попадание»

Для достижения этого:

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

    def entries = new File('/path/to/original.csv').readLines().drop(1)
    def sum = 0
    def newCSV = new File('/path/to/generated.csv')
    newCSV << 'METHOD,HOST,PATH' << System.getProperty('line.separator')
    
    entries.each { entry ->
        def values = entry.split(',')
        def hits = values[3] as int
        sum += hits
        1.upto(hits, {
            newCSV << values[0] << ',' << values[1] << ',' << values[2] << System.getProperty('line.separator')
        })
    }
    
    props.put('threads', sum as String)
    
  4. Использовать __P () функция аналогично ${__P(threads,)} в группе конечных потоков
  5. Использование нового «сгенерированного» файла CSV в конфигурации набора данных CSV в группе конечных потоков
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...