2017-03-31 12 views
1

Seleniumで動作するJmeter beanshellスクリプトを開発しています。私はbeanshellサンプラーを使用することにしたので、WDSインターフェースではアクセスできないjavaコマンドとseleniumコマンドを使用することができます。JMETER Beanshell(java.lang.String)がクラスに見つかりません

一部の文字列入力を除き、私のコードは正常に動作します。ここで(必要最小限に取り壊さ)のサンプルです:

import org.openqa.selenium.chrome.ChromeOptions; 

ChromeOptions options = new ChromeOptions(); 
options.addArguments("start-maximized"); 

は、と私はのSendKeysのようないくつかの他のコマンドで同様この参照このエラー

2017/03/31 13:43:21 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.openqa.selenium.chrome.ChromeOptions; debug(); ChromeOptions options . . . '' : Error in method invocation: Method addArguments(java.lang.String) not found in class'org.openqa.selenium.chrome.ChromeOptions' 2017/03/31 13:43:21 WARN - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.openqa.selenium.chrome.ChromeOptions; debug(); ChromeOptions options . . . '' : Error in method invocation: Method addArguments(java.lang.String) not found in class'org.openqa.selenium.chrome.ChromeOptions' 201 

を取得します。

なぜこのコマンドは文字列を受け取っていないのですか?私は完全なスクリプトを実行することができ、ブラウザはファイルを開くので、セレンはjmeterでセットアップされています。これを行う文字列を使用するのは特定のコマンドだけです。

おかげ J

+1

JMeterクラスパスにSeleniumクラスをどのくらい追加しましたか? –

+0

セレンジャーを適切にマッピングしない限り、動作しません。私はあなたがウェブドライバサンプラーを使用することをお勧めします。 Beanshellは、より良いパフォーマンスを得ることができません。 –

答えて

0

あなたのセレンクライアントによってはあなたがパラメータとして単一のStringを取って、このメソッドを持っていないかもしれないバージョンをライブラリ。次の行で新しいBeanshell Samplerを作成します。

log.info(javap(org.openqa.selenium.chrome.ChromeOptions)); 

そしてJMeterのコンソールに見て:あなたはjavap commandが私のインストールのためのインスタンスのChromeOptionsクラスのすべての利用可能な方法を、プリントアウトが表示されます(私はwebdriverをサンプラープラグインを持っている)、それ

クラスクラスorg.openqa.selenium.chrome.ChromeOptionsはクラスjava.lang.Objectの

公共ブールorg.openqa.selenium.chrome.ChromeOptions.equals(java.langでの拡張:次のように出力。オブジェクト)

公共int型org.openqa.selenium.chrome.ChromeOptions.hashCode()

ます。public void org.openqa.selenium.chrome.ChromeOptions。 addArguments(java.lang.String [])

public void org.openqa.selenium.chrome.ChromeOptions。 addArguments(java.util.Listに)

私はあなたがこの行を変更する必要がありそうであるように、あなたが同じセレンライブラリのバージョン(2.52.0)を使用している場合:この1に

options.addArguments("start-maximized"); 

を:

options.addArguments(new String[] {"start-maximized"}); 

あなたのスクリプトは期待どおりに動作するはずです。

JMeterテストでのBeanshellスクリプトの詳細については、How to Use BeanShell: JMeter's Favorite Built-in Componentの記事を参照してください。

関連する問題