#jdbc #jmeter #beanshell
Вопрос:
Отправка следующего запроса JDBC от JMeter с использованием пробоотборника beanshell. И теперь я хочу получить результат в виде тела ответа, полученного в JMeter, которое показывает пустоту, но успешно запускает запрос.
Код для запроса JDBC:
import java.sql.*;
import oracle.jdbc.*;
import org.apache.jmeter.protocol.jdbc.config.DataSourceElement;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
PreparedStatement pstmt = null;
Connection conn = DataSourceElement.getConnection("IMPACTConnectionPrerequisitsII");
String Query = "DECLARE n"
"j number(4); n"
"BEGIN n"
"FOR j in 22 .. 23 LOOP n"
"INSERT INTO FWA_STAGE_TU n"
"(ID,EXT_ID,BATCH_NO,OPERATION,BLOCK_ROLL_UP_LAST_RECORD,LAST_UPDATED_DATE,ERROR_FLAG,TRIAL_NO,TRIAL_ALIAS_CODE, n"
"COUNTRY_CODE,DISPLAY_UNIT_NO,GROUP_NO,TRIAL_UNIT_REFERENCE,PRIMARY_INVESTIGATOR,PRIMARY_CENTRE,LOCATION_NO, n"
"PURPOSE_CODE,MANAGING_MED_UNIT_CODE,UPDATING_MED_UNIT_CODE,FINANCE_MED_UNIT_CODE,PATIENTS_ALL_SET_UP_FLAG, n"
"PATIENT_MONITORING_FLAG,COMMENTS,CONFIRMED_FLAG,CONFIRMED_BY,CONFIRMED_DATE,ROLLUP_ROLLDOWN_PLANNED_FIGS, n"
"DOC_COLLECTION_INDICATOR,VALIDATED_PAT_CAP,MAXIMUM_PAT_CAP,PREFERRED_LANGUAGE_CODE,NEW_DISPLAY_UNIT_NO, n"
"TOTAL_OPEN_DCF_ISSUES_NO,ORDER_INTERVAL,ORDER_INTERVAL_UNITS,DATA_SOURCE_CODE,RANK_SEQ) n"
"VALUES (j, 1, 10, 'I', NULL, SYSDATE, 'N', 102922, 'TESTTRIAL4', 'BEL', n"
"j, NULL, 'BELTU'||j, 130262, 124236, NULL, 'PATTR', 'FP', 'FP', 'FP', 'N', 'Y', 'TESTTU'||j, n"
"'Y', 999999, SYSDATE, NULL, 'P', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL); n"
"END LOOP; n"
"END;";
try {
pstmt = conn.prepareStatement(Query);
pstmt.executeUpdate();
}
catch(Throwable ex) {
log.error("Error message: ", ex);
throw ex;
}
finally {
if (rs != null) {
rs.close();
log.info("!!!! ResultSet Connection Closed !!!!");
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
log.info("!!!! Connection closed to database !!!!");
}
}
Детали подключения в JMeter
Успешный Запуск
Ответ №1:
Я не думаю, что у вас есть «Набор результатов» для «итерации», чтобы просмотреть PreparedStatement.executeUpdate()
документацию по функциям
ВОЗВРАТ:
либо (1) количество строк для операторов языка обработки данных SQL (DML), либо (2) 0 для операторов SQL, которые ничего не возвращают
Таким образом, в лучшем случае вы можете получить количество строк, на которые повлияет ваш SQL-запрос.
Также имейте в виду, что начиная с JMeter 3.1 вы должны использовать тестовые элементы JSR223 и язык Groovy для написания сценариев.
Дополнительная информация: