Как установить значение данных ответа SOAP / XML-RPC Request в переменную Jmeter?

У меня есть 1 группа потоков с подробностями вроде этого:  введите описание изображения здесь

А вот и мой экстрактор регулярных выражений:

введите здесь описание изображения

А вот и мой постпроцессор BeanShell:

введите здесь описание изображения

И это мои данные ответа:

<NPWP>999999999999999</NPWP>

И это моя ошибка:

2017/08/21 12:06:15 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``import org.apache.jmeter.services.FileServer;  // Get npwp from response data SO . . . '' Token Parsing Error: Lexical error at line 7, column 68.  Encountered: "v" (118), after : "\"\\" 

2017/08/21 12:06:15 WARN  - jmeter.extractor.BeanShellPostProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``import org.apache.jmeter.services.FileServer;  // Get npwp from response data SO . . . '' Token Parsing Error: Lexical error at line 7, column 68.  Encountered: "v" (118), after : "\"\\"

Пожалуйста помоги.

Спасибо.

=============================================== ============================

Спасибо Дмитрию и user7294900, я могу использовать оба ваших способа:

Groovy:

import org.apache.jmeter.services.FileServer; // Import Library

npwp = vars.get("npwp"); // Get the value of response data of SOAP/XML-RPC Request

def myFile = new File(FileServer.getFileServer().getBaseDir()+"\\variable.txt"); // Open the file

myFile << "npwp = " + npwp + "\r\n"; // Write data to file

def fileContent = myFile.text; // Read data from file

log.info("Read from file: " + fileContent); // Print the file

BeanShell:

import org.apache.jmeter.services.FileServer; // Import Library

npwp = vars.get("npwp"); // Get the value of response data of SOAP/XML-RPC Request

f = new FileOutputStream(FileServer.getFileServer().getBaseDir()+"\\variable.txt", true); // Open File(s)

p = new PrintStream(f);

p.println( "npwp = " + npwp ); // Write data to file

p.close();f.close(); // Close File(s)

person Rio Eduardo    schedule 21.08.2017    source источник


Ответы (3)


  1. Измените ваше регулярное выражение на ([0-9]+), иначе оно вернет только одну цифру
  2. Переключитесь на JSR223 PostProcessor и Groovy, соответствующий код Groovy будет выглядеть примерно так:

    new File('variable.txt') << vars.get('npwp')
    

Использованная литература:

person Dmitri T    schedule 21.08.2017

У вас есть дополнительный разделитель, вы можете использовать функцию getFullPathNoEndSeparator, чтобы удалить его и добавить позже \\variable.txt:

import org.apache.commons.io.FilenameUtils;
import org.apache.jmeter.services.FileServer;

String baseDir = FilenameUtils.getFullPathNoEndSeparator(FileServer.getFileServer().getBaseDir() );

f = new FileOutputStream(baseDir+"\\variable.txt"); 
person user7294900    schedule 21.08.2017

измените тип файла txt на csv, он будет работать .. у меня сработало

См. Подробные инструкции по ссылке и Код для записать проанализированное значение переменной json в файл

person chetan Velhal    schedule 17.05.2019
comment
Добро пожаловать в SO. Если вы можете добавить важные элементы со стороннего ресурса непосредственно к своему ответу, сделайте это. - person m02ph3u5; 17.05.2019