2016-10-03 5 views
0

Возможно ли, чтобы каждый поток выбирал одну и ту же строку из файла CSV?Jmeter: Настройки параметров

например. У меня есть 5 пользователей и всего 5 записей (строк) в моем CSV-файле. На каждой итерации первое значение из CSV должно быть присвоено User1, аналогично для всех пользователей.

User1: myID1,pass1,item1,product1 
User2: myID2,pass2,item2,product2 
User3: myID3,pass3,item3,product3 
User4: myID14,pass4,item4,product4 
User5: myID15,pass5,item5,product5 

. . Любое решение, пожалуйста?

+0

Сколько потоков у вас будет? –

ответ

1
  1. Если у вас есть только 5 нитей и 5 строк в CSV, я бы предложил рассмотреть возможность переключения на User Parameters вместо работы с CSV.
  2. Если ваш файл CSV может содержать> 5 строк, и ваш тест может иметь> 5 виртуальных пользователей, и требование, такое как «пользователь 1 берет строку 1», необходимо, вы должны предварительно загрузить файл CSV в память с помощью тест элемент сценариев как Beanshell Sampler как:

    • Добавить группу нАлАдкА Thread вашему плану испытаний (с 1 нитью и 1 итерации)
    • Добавить Beanshell пробоотборник и поместите следующий код в «Сценарий» область:

      import org.apache.commons.io.FileUtils; 
      
      List lines = FileUtils.readLines(new File("test.csv")); 
      bsh.shared.lines = lines; 
      

    Приведенный выше код будет читать содержимое test.csv файла (заменить его относительной или полный путь к файлу CSV) и сохранить его в bsh.shared namespace

    • Добавить Beanshell препроцессором как ребенок запроса где вы необходимо использовать значения из файла CSV и поместить следующий код в «Сценарий» область:

      int user = ctx.getThreadNum(); 
      String line = bsh.shared.lines.get(user); 
      
      String[] tokens = line.split(","); 
      
      vars.put("ID", tokens[0]); 
      vars.put("pass", tokens[1]); 
      vars.put("item", tokens[2]); 
      vars.put("product", tokens[3]); 
      

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

    • ${ID}
    • ${pass}
    • ${item}
    • ${product}

См. Руководство How to Use BeanShell: JMeter's Favorite Built-in Component для получения дополнительной информации об использовании скриптов Beanshell в тестах JMeter.

+0

Проблема разрешена. Большое спасибо – PerfMatrix

Смежные вопросы