响应消息:org.apache.jorphan.util.JMeterException:调用 bsh 方法时出错:eval 源文件:内联评估:
Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of:
当我用 %Jmeter%lib 文件夹中的 selenium-server-standalone-3.1.0 替换 selenium-server-standalone-2.53.0 时,出现此错误:
响应消息:org.apache.jorphan.util.JMeterException:调用 bsh 方法时出错:eval 源文件:内联评估:``import java.io.File;导入 java.io.FileReader;导入java.io.File作家;进口。 . . ''
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsESRv.CSVWriter;
Boolean result=true;
public WebDriver driver;
try
{
System.setProperty("webdriver.chrome.driver","Projects\chromedriver.exe");
driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://something.com/registration/");
WebDriverWait wait = new WebDriverWait(driver, 20000);
String uname= bsh.args[0];
String pass= bsh.args[1];
// Logged In
driver.findElement(By.xpath("//*[contains(@id,'menu-item')]//*[text()='Log In']")).click();
driver.findElement(By.id("username")).sendKeys(new String[] {uname});
driver.findElement(By.id("password")).sendKeys(new String[] {pass});
driver.findElement(By.xpath("//*[@id='woocommerce-login-nonce']/following-sibling::*[@name='login']")).click();
// Logged Out
driver.findElement(By.xpath("//*[@id='masthead']//*[text()='Sign out']")).click();
}
catch (Exception ex)
{
ex.printStackTrace();
IsSuccess = false;
ResponseCode = "500";
ResponseMessage = ex.getMessage();
log.error(ex.getMessage());
System.err.println(ex.getMessage());
}
catch (Throwable thex)
{
System.err.println(thex.getMessage());
}
finally
{
driver.quit();
}
IsSuccess=result;
return result;
代码是用 Jmeter 中的 Beanshell Sampler 编写的。
只替换一个Selenium库是不够的,还需要升级其他依赖
- 安装干净的 JMeter
- 下载http://selenium-release.storage.googleapis.com/3.1/selenium-java-3.1.0.zip file and unpack all the .jars somewhere to JMeter Classpath(JMeter的"lib"文件夹即可)
- 重新启动 JMeter 以拾取 .jars
为了查看 "normal" 堆栈跟踪,将您的 catch 块修改为:
catch (Exception ex) {
log.error("Something went wrong", ex);
}
- 考虑切换到 JSR223 Sampler and Groovy language as Groovy is more Java-compliant and has much better performance. See Apache Groovy - Why and How You Should Use It 以获得更详细的解释。
当我用 %Jmeter%lib 文件夹中的 selenium-server-standalone-3.1.0 替换 selenium-server-standalone-2.53.0 时,出现此错误:
响应消息:org.apache.jorphan.util.JMeterException:调用 bsh 方法时出错:eval 源文件:内联评估:``import java.io.File;导入 java.io.FileReader;导入java.io.File作家;进口。 . . ''
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsESRv.CSVWriter;
Boolean result=true;
public WebDriver driver;
try
{
System.setProperty("webdriver.chrome.driver","Projects\chromedriver.exe");
driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://something.com/registration/");
WebDriverWait wait = new WebDriverWait(driver, 20000);
String uname= bsh.args[0];
String pass= bsh.args[1];
// Logged In
driver.findElement(By.xpath("//*[contains(@id,'menu-item')]//*[text()='Log In']")).click();
driver.findElement(By.id("username")).sendKeys(new String[] {uname});
driver.findElement(By.id("password")).sendKeys(new String[] {pass});
driver.findElement(By.xpath("//*[@id='woocommerce-login-nonce']/following-sibling::*[@name='login']")).click();
// Logged Out
driver.findElement(By.xpath("//*[@id='masthead']//*[text()='Sign out']")).click();
}
catch (Exception ex)
{
ex.printStackTrace();
IsSuccess = false;
ResponseCode = "500";
ResponseMessage = ex.getMessage();
log.error(ex.getMessage());
System.err.println(ex.getMessage());
}
catch (Throwable thex)
{
System.err.println(thex.getMessage());
}
finally
{
driver.quit();
}
IsSuccess=result;
return result;
代码是用 Jmeter 中的 Beanshell Sampler 编写的。
只替换一个Selenium库是不够的,还需要升级其他依赖
- 安装干净的 JMeter
- 下载http://selenium-release.storage.googleapis.com/3.1/selenium-java-3.1.0.zip file and unpack all the .jars somewhere to JMeter Classpath(JMeter的"lib"文件夹即可)
- 重新启动 JMeter 以拾取 .jars
为了查看 "normal" 堆栈跟踪,将您的 catch 块修改为:
catch (Exception ex) { log.error("Something went wrong", ex); }
- 考虑切换到 JSR223 Sampler and Groovy language as Groovy is more Java-compliant and has much better performance. See Apache Groovy - Why and How You Should Use It 以获得更详细的解释。