2017-02-20 2 views
0

Я хочу знать, как можно реагировать на серьезный сценарий. Я использую контроллер While, чтобы перебирать все строки в CSV и генерировать переменные JMeter перед моим фактическим планом тестирования. Мне нужно сделать это несколько раз для разных файлов CSV, поэтому я не хочу останавливать поток в контроллере While.Как я могу определить <EOF> «Конфигурация набора CSV-данных» в семантике скриптов в JMeter?

я представлял себе что-то вроде этого:

if (${CSV_VALUE1} != "<EOF>") 
{ 
    def variableName = sprintf('%1$sVALUE',[${CSV_VALUE2}]) 
    vars.put(variableName,${CSV_VALUE1}); 
} 

CSV_VALUE1 является значение переменной JMeter и CSV_VALUE2 это имя переменной.

Testplan

Я также ценю лучшие решения, которые перебирать каждый строку файла CSV и генерировать JMeter переменных в соответствии с моими условностей ней. Ограничение состоит в том, что он должен выполняться только в одной группе потоков (=> Нет остановки потоков в EOF)

+0

Решение: Я выяснил, что моя проблема на самом деле была неправильным CSV-файлом с кавычками для каждого значения в нем. Поэтому мой подход был действительно правильным и возможен, поэтому я тоже сам ответил на вопрос. – VolJin

ответ

0

Можно определить конец файла для данных CSV, установленных с помощью простой if-условия с цитатами для исполняющего блока:

if ("${CSV_VALUE1}" != "<EOF>") 
{ 
    //Code to execute if the condition is satisfied 
} 
0

Вы можете использовать «BeanShell» для чтения «CSV-файла», ниже - образец файла csv, который уже ниже данные

answer1,0 
answer2,1 
answer3,2 
... 
answerX,X-1 

Чтобы прочитать использование файла ниже "Beanshell" сценарий

import java.text.*; 
import java.io.*; 
import java.util.*; 

String filename = "oprosnik_" + vars.get("fileNum") + ".csv"; 

ArrayList strList = new ArrayList();  

try { 
    File file = new File(filename); 

    if (!file.exists()) { 
     throw new Exception ("ERROR: file " + filename + " not found"); 
    } 

    BufferedReader bufRdr = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF8")); 
    String line = null; 
    Integer i = 0; 

    while((line = bufRdr.readLine()) != null) { 
     strList.add(line); 
     i++; 
    } 

    bufRdr.close();    
    counter = Integer.parseInt(vars.get("counter")); 
    if (counter != i) { 
     String[] variables = strList.get(counter).split(","); 
     vars.put("answer",variables[0]); 
     vars.put("answerNum",variables[1]); 
     counter++; 
     vars.put("counter",Integer.toString(counter)); 
    } 
    else { 
      vars.put("answer","<EOF>"); 
      vars.put("eol","<EOF>"); 
      vars.put("counter","0"); 
    } 
} 
catch (Exception ex) { 
    IsSuccess = false; 
    log.error(ex.getMessage()); 
    System.err.println(ex.getMessage()); 
} 
catch (Throwable thex) { 
    System.err.println(thex.getMessage()); 
} 

Для контрольной проверки следующие link

+0

Спасибо, это было бы возможно, но на самом деле не нужно для меня. – VolJin

0

Вы можете справиться с этой <EOF> случае использования If Controller и While Controller комбинации, как:

  • Хотя контроллер: состояние ${__javaScript("${CSV_VALUE1}" != "<EOF>",)}
    • Если контроллер: состояние "${CSV_VALUE1}" != "<EOF>"
      • READ - Action Модели
      • JSR223 Sampler
      • ...

См Using the While Controller in JMeter статьи для деталей

+0

Да, я пробовал это раньше, но он никогда не работал для меня. Сэмплер называется 1 раз больше с , чем разрешено, я действительно видел, что у меня есть ошибки в журнале: 'jmeter.control.IfController: If Controller: ошибка при обработке [" "e1e78ffd-f900-42fd-a8fa-f3ff9f2fc8e6" "! =" "] org.mozilla.javascript.EvaluatorException: отсутствует; перед оператором ( # 1) '# 1)' – VolJin

+0

Я думаю, проблема в том, что «кажется, что» с существующим идентификатором является проблемой, с другой стороны, если я удалю «это проблема с : ' jmeter.functions .JavaScript: Обработка ошибок Javascript: [$ {ACTIONMODELID}! = ""] org.mozilla.javascript.EvaluatorException: missing; перед заявлением ( # 1) ' – VolJin

+0

Наконец-то я принес его на работу! В моем файле CSV содержатся кавычки для каждого значения в нем! Это предотвратило успешное выполнение. Мне нужно адаптировать способ создания CSV. – VolJin