Как вернуть значение из базы данных в jmeter - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь вернуть значение из базы данных сервера MSSQL и сохраняю его в переменной внутри скрипта таймера JSR223 в Jmeter.Однако я получаю следующую ошибку в журнале -

** WARN oajtJSR223Timer: Скрипт не возвращает значение **

Это код, который я написал в скрипте -

try {
        def promoName = ${promotionName}; //extracted the value using JSONExtractor
        log.info("Promotion Name is " + promoName); //not displaying in the log
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
    Connection con = DriverManager.getConnection("jdbc:sqlserver://ServerIP;databaseName="";integratedSecurity=true","<userId>","<password>");
    String query ="select query";
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next()) {
        vars.put("promotionInstanceId", rs.getString(1)); //The query returns an instanceId which i need to store in a variable and use it later
        log.info("Promotion Instance is " + ${promotionInstanceId});            
    }
    conn.close();
    } 
catch (Exception e) {
    e.printStackTrace();

Может ли кто-нибудь помочь мне понять, где я мог ошибиться?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019
  1. Есть ли причина использовать таймер?Вы получаете предупреждение об отсутствии ключевого слова возврата , поскольку таймер JSR223 предназначен для использования для вычисления виртуального пользователя время ожидания , поэтому он должен вернуть значение "sleep" вмиллисекунды.Учитывая, что вы не хотите вводить время обдумывания, имеет смысл вместо этого использовать JSR223 PostProcessor .

  2. Не вставляйте функции JMeter или переменные в сценарии , так как это может привести к неправильному поведению сценария из-за столкновения с Шаблон GString или переменнойбудет кэшироваться, и то же значение будет возвращено для последующих вызовов.

  3. Рекомендуется использовать встроенные компоненты JMeter и по возможности избегать сценариев. Вы можете использовать, например, JDBC PostProcessor , чтобы извлечь интересующие значенияи сохраните его (их) в переменные JMeter.Прочтите Отладка результатов JDBC Sampler в статье JMeter , чтобы узнать, как выполнять операторы SQL и работать с результатами

0 голосов
/ 25 февраля 2019

Вы должны использовать vars.get, чтобы получить значение переменной

vars.put("promotionInstanceId", rs.getString(1)); //The query returns an instanceId which i need to store in a variable and use it later
log.info("Promotion Instance is " +  vars.get("promotionInstanceId"));   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...