2016-12-15 1 views
2

Я получаю сообщение об ошибкеОшибка послепроцессора Beanshell: ошибка при вызове метода bsh: eval t Файл с исходными кодами: встроенная оценка: `` import java.util.Arrays; import java.util.List;

Error invoking bsh method: eval Sourced file: inline evaluation of: ``import java.util.Arrays; import java.util.List; import java.util.concurrent.Time . . . '' : Typed variable declaration : Error in method invocation: Static method create(java.lang.String) not found in class'com.couchbase.client.java.CouchbaseCluster'

, когда я исполняю Jmeter скрипт с Beanshell постпроцессор. Любые мысли о том, почему я вижу эту ошибку?

Образец кода: 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"; 
+0

какая версия JMeter? где вы сохранили кушетку-клиент-java-банки? в папке '/ lib'? что нужно всем библиотекам? –

+0

Я использую 2.11, да. Я сохранил их в папке с папкой – kmn

+0

, пожалуйста, дайте мне знать, что нужно всем библиотекам и ссылки для их загрузки. –

ответ

0

Вместо того чтобы использовать метод 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

Я предлагаю использовать 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
+0

Конечно. позвольте мне попробовать JSR223 Post Processor и отладить проблему ... – kmn

+0

@kmm, обновил мой ответ. попробуйте использовать метод 'create (List )', который также доступен в классе CouchbaseCluster. этот подход работает для меня. –

+0

Спасибо, ты.Я использовал предварительный процессор JSR223 и обновил код в соответствии с вашими комментариями. – kmn

Смежные вопросы