如何设置SOAP/XML-RPC请求的响应数据值到变量Jmeter?
How to set value of response data of SOAP/XML-RPC Request to variable 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 : "\"\"
请帮忙。
谢谢。
====================================== ===================================
谢谢 Dmitri 和 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
豆壳:
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)
您有额外的分隔符,您可以使用 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");
- 将您的正则表达式更改为
([0-9]+)
否则它将 return 只有一个数字
切换到JSR223 PostProcessor and Groovy语言,相关的Groovy代码如下:
new File('variable.txt') << vars.get('npwp')
参考文献:
将文件类型 txt 更改为 csv 它会工作.. 对我有用
有关详细步骤,请参阅 link 和 Code to write parsed json variable value to file
我有 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 : "\"\"
请帮忙。
谢谢。
====================================== ===================================
谢谢 Dmitri 和 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
豆壳:
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)
您有额外的分隔符,您可以使用 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");
- 将您的正则表达式更改为
([0-9]+)
否则它将 return 只有一个数字 切换到JSR223 PostProcessor and Groovy语言,相关的Groovy代码如下:
new File('variable.txt') << vars.get('npwp')
参考文献:
将文件类型 txt 更改为 csv 它会工作.. 对我有用
有关详细步骤,请参阅 link 和 Code to write parsed json variable value to file