Beanshell PostProcessor错误:调用bsh方法时出错:eval源文件:内联评估:``import java.util.Arrays; import java.util.List;

时间:2016-12-15 18:15:01

标签: jmeter

我收到错误消息

  

调用bsh方法时出错:eval源文件:内联评估:   ``import java.util.Arrays; import java.util.List;进口   java.util.concurrent.Time。 。 。 '':输入变量声明:   方法调用出错:静态方法create(java.lang.String)   在class'com.couchbase.client.java.CouchbaseCluster'

中找不到

当我使用Beanshell Post Processor执行jmeter脚本时。我为什么看到这个错误的想法?

以下是示例代码:     import java.util.Arrays;

import java.util.List;
import java.util.concurrent.TimeUnit;

import com.couchbase.client.java.Bucket;
import com.couchbase.client.java.Cluster;
import com.couchbase.client.java.CouchbaseCluster;
import com.couchbase.client.java.document.Document;
import com.couchbase.client.java.document.JsonDocument;
import com.couchbase.client.java.document.json.JsonObject;

Cluster cluster = CouchbaseCluster.create("dev-int-couchbase1.aeg.cloud");
Bucket bucket = cluster.openBucket("source-image ",100, TimeUnit.MINUTES);
Document<JsonObject> loadedFromDoc = bucket.get("0292ofcfh4516");
if(loadedFromDoc == null)
    return "Document Not found";

bucket.remove(“0292ofcfh4516");
log.info("In bean shell processor");
System.out.println("In bean shell processor");
cluster.disconnect();
return "Document Removed";

1 个答案:

答案 0 :(得分:1)

建议使用create(String... varargs)方法,而不是使用create(List<String> nodes)方法。

替换以下代码

Cluster cluster = CouchbaseCluster.create("dev-int-couchbase1.aeg.cloud");

使用:

nodes = new ArrayList();
nodes.add("dev-int-couchbase1.aeg.cloud");
Cluster cluster = CouchbaseCluster.create(nodes);

注意:我不确定如何解决与varargs相关的问题,因此建议另一个问题。我尝试了建议的方法here,但不适用于varargs

参考:

  1. http://docs.couchbase.com/sdk-api/couchbase-java-client-2.0.0/index.html?com/couchbase/client/java/CouchbaseCluster.html
  2. 我建议使用JSR223 Post Processor代替BeanShell postprocessor。只需将代码从BeanShell复制粘贴到JSR223,然后在Java下的script language下拉菜单中选择JSR223 post processor语言。

    这为调试提供了更大的灵活性(在日志中打印错误/异常的完整堆栈跟踪)。

    出现错误,它说Static method create( java.lang.String ) not found in class'com.couchbase.client.java.CouchbaseCluster。我查看了官方文档here,其中说create方法需要String Varargs。我不确定是否会导致这个问题。所以,在JSR223 PostProcessor中试试并调试问题。

    参考文献:

    1. https://www.blazemeter.com/blog/beanshell-vs-jsr223-vs-java-jmeter-scripting-its-performance