使用jmeter中的beanshell比较两个字符串并将输出写入csv文件

时间:2017-04-25 16:40:25

标签: jmeter beanshell

我正在使用beanshell PostProcesser并比较两个变量并将输出写入csv文件但不知何故它现在正在工作.Below是我的代码

import org.apache.commons.logging;
import java.lang.String.*;

// using regular expression to get Borderid e.g 1234560
String TOID = vars.get("BOrderID");
// file fath to write defined in user defined variables
String fpath = vars.get("write_file_path");
// orderid to search
String SOID = vars.get("orderID");

String DMN = SOID.equals.(TOID);

if (DMN){

  FileWriter fstream = new FileWriter(fpath+"order_Status.csv", true);

  BufferedWriter out = new BufferedWriter(fstream);

  out.write(TOID+","+SOID);

  out.newLine();

  out.flush();

  } else {
   log.info("orders did not match");
 }

有人知道我做错了什么,因为这不起作用。

2 个答案:

答案 0 :(得分:1)

更改此行:

String DMN = SOID.equals.(TOID);

到此:

boolean DMN = SOID.equals(TOID);

还考虑切换到JSR223 PostProcessorGroovy language,因为在高负载时,Beanshell性能成为一个很大的问号。性能良好的Groovy脚本可以编译成bytecode,因此JSR223测试元素的性能会更好。

有关详细信息,请参阅JSR223 Elements JMeter用户手册条目和Groovy Is the New Black文章。 Groovy几乎完全兼容Java,因此您可以重用现有的Beanshell代码。

答案 1 :(得分:1)

在BeanShell后处理器中,实现以下代码段。

String a="Test"; 
String b="Test123"; 

if(a.equals(b)) {
    log.info("Matched"); 
} 
else { 
    log.info("Not a Match");
}

如果if声明为真,则会打印Matched,否则为Not a Match

Matched

Not a Match