2017-03-31 8 views
1

Ich entwickle ein Jmeter-Beanshell-Skript, um mit Selenium zu arbeiten. Ich entschied mich, den Beanshell-Sampler zu verwenden, damit ich Java- und Seleniumbefehle verwenden kann, die in der WDS-Schnittstelle nicht zugänglich sind.JMETER Beanshell (java.lang.String) nicht gefunden in Klasse

Mein Code funktioniert gut, mit Ausnahme einiger String-Eingaben. Hier ist ein Beispiel (abgerissen Barebones):

import org.openqa.selenium.chrome.ChromeOptions; 

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

und ich bekomme diesen Fehler

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 

ich dies ähnlich in einigen anderen Befehlen wie Tastaturbefehle zu sehen.

Warum nimmt dieser Befehl meine Zeichenfolge nicht? Ich kann das vollständige Skript ausführen, und der Browser öffnet die Datei, so dass ich weiß, dass Selen mit jmeter eingerichtet ist. Es sind nur bestimmte Befehle, die Strings verwenden, die dies tun.

Dank J

+1

Wie genau haben Sie die Selenium-Klassen zum JMeter-Klassenpfad hinzugefügt? –

+0

Es wird nicht funktionieren, es sei denn, Sie die Selen Gläser richtig zuordnen. Ich empfehle Ihnen, den Web-Treiber-Sampler zu verwenden. Beanshell ist nicht geeignet, eine bessere Leistung zu erzielen. –

Antwort

0

auf Selenium Client Je Bibliotheken Version Sie diese Methode nicht unter einzelnen String als Parameter haben kann. Erstellen Sie ein neues Beanshell Sampler mit der folgenden Zeile:

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

Und schauen Sie in JMeter Konsole: Sie javap command Drucken Sie alle verfügbaren Methoden für die ChromeOptions Klasse sehen werden, zum Beispiel für meine Installation (ich habe WebDriver Sampler Plugin) es gibt die folgende:

Klasse Klasse org.openqa.selenium.chrome.ChromeOptions erstreckt Klasse java.lang.Object

public boolean org.openqa.selenium.chrome.ChromeOptions.equals (java.lang. Objekt)

public int org.openqa.selenium.chrome.ChromeOptions.hashCode()

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

öffentliche Leere org.openqa.selenium.chrome.ChromeOptions. addArguments (java.util.List)

Wenn Sie die gleiche Selenium Bibliotheken Version (2.52.0) wie ich sollten Sie diese Zeile:

options.addArguments("start-maximized"); 

zu dieser:

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

Und Ihr Skript sollte wie erwartet funktionieren.

Weitere Informationen zu Beanshell-Skripts in JMeter-Tests finden Sie im Artikel How to Use BeanShell: JMeter's Favorite Built-in Component.

Verwandte Themen