Ошибка при выполнении Data-Driven Testing в JMeter с использованием данных в Excel - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь прочитать xmls, хранящиеся в одном столбце электронной таблицы Excel, и запустить их на сервере с помощью HTTP Sampler, а затем сохранить XML-ответ в том же Excel. Это структура моего плана тестирования в JMeter: enter image description here

Однако я столкнулся и с ошибкой. Я не могу точно определить точное место, где происходит ошибка, но я получил сообщение об ошибке из дерева результатов:

для пробоотборника JSR223

Ответное сообщение: javax.script.ScriptException: Источник файла: встроенный оценка: import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.us . . . '' : Typed variable declaration : Attempt to resolve method: parseInt() on undefined variable or class name: INTEGER : at Line: 6 : in file: inline evaluation of: импорт org.apache.poi.xssf.usermodel.XSSFWorkbook; Импортировать org.apache.poi.xssf.us. , , '': INTEGER .parseInt (vars .get ( "counter")) во встроенной оценке: `` import org.apache.poi.xssf.usermodel.XSSFWorkbook; Импортировать org.apache.poi.xssf.us. , , '' в строке № 6

Ошибка на вкладке Данные ответа сэмплера HTTP-запроса выглядит так:

Exception occured: Parsing xml error, xml string is:${RQI}

Ошибка подтверждения BeanShell:

Ошибка подтверждения: верно Ошибка подтверждения: ложно Ошибка подтверждения сообщение: org.apache.jorphan.util.JMeterException: ошибка при вызове bsh метод: eval В файле: встроенная оценка: `` import org.apache.poi.xssf.usermodel.XSSFWorkbook; Импортировать org.apache.poi.xssf.us. , , «Обнаружено»: «в строке 6, столбец 65.

Это код, который я использовал в сэмплере JSSR223 в контроллере while:

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import java.io.*;

int i = INTEGER.parseInt(vars.get("counter"));
XSSFRow row = vars.getObject("book").getSheetAt(0).getRow(i);

vars.putObject("row", row);
for (int j = 1; j <= vars.getObject("book").getSheetAt(0).getRow(0).getLastCellNum(); j++) {
    if (row.getCell(j) == null) {
        row.createCell(j).setCellValue("");
    }
}

String payload = row.getCell(1).toString();
 vars.put("RQI",payload);
//String password = row.getCell(2).toString();
// vars.put("password",password);
//String expectedResult = row.getCell(5).toString();
// vars.put("expectedResult",expectedResult);

Пожалуйста, помогите. Кроме того, не стесняйтесь спрашивать дополнительную информацию, так как для краткости я оставил код для других сэмплеров JSR223 в этом посте. Заранее спасибо.

1 Ответ

0 голосов
/ 09 января 2019
  1. Вы должны изменить эту строку:

    INTEGER.parseInt(vars.get("counter"));
    

    к этому

    Integer.parseInt(vars.get("counter"));
    

    проверить целочисленный класс JavaDoc - Integer.parseInt ()

  2. Вы должны использовать тестовые элементы JSR223 вместо тестовых элементов Beanshell, и вы должны использовать язык Groovy в тестовых элементах JSR223

  3. Вы можете найти Как реализовать тестирование на основе данных в своем тесте JMeter справочник полезен.

...