JMeter WebDriver Sampler:使用 Firefox,但使用 Chrome 时浏览器无法打开

JMeter WebDriver Sampler: working with Firefox but browser does not open when using Chrome

我已经能够使用 JMeter 中的 WebDriver Sampler 和 Firefox Driver Config 成功地 运行 (javascript) 测试脚本。我现在想使用 JMeter Chrome Driver Config 来 运行 在 Chrome 中进行相同的测试。

我知道我在 PC 上安装的 Chrome 驱动程序正在运行,因为我已经成功地将它用于 运行 其他(非 JMeter)测试。 Chrome驱动程序的路径也绝对正确。

我的站点不使用代理,因此我在 Chrome 驱动程序配置的 "Proxy" 选项卡下选择了 "No Proxy"。

问题:当我在 JMeter 中单击 "Run" 并禁用 Firefox 驱动程序配置并启用 Chrome 驱动程序配置时,没有任何反应(浏览器不打开,测试很快结束,"View Results Tree" 监听器中没有任何记录。

我正在使用 JMeter 3.1 版、Chrome 60.0.3112.101 版和 ChromeDriver 2.31 版。

我的代码看起来像这样以防万一:

var pkg = JavaImporter(org.openqa.selenium); //WebDriver classes
var pfg = JavaImporter(org.openqa.selenium.Keys); //WebDriver classes
var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait); 
var wait = new support_ui.WebDriverWait(WDS.browser, 5000);

var username = WDS.args[0];
var password = WDS.args[1];
var docNo = WDS.args[2];

WDS.sampleResult.sampleStart(); 
WDS.sampleResult.getLatency();
WDS.log.info("Sample started");

WDS.browser.get('blah blah blah');

var usernameBox = WDS.browser.findElement(pkg.By.id('TextBoxCustomer')); 
var passwordBox = WDS.browser.findElement(pkg.By.id('PIN')); 
var loginBtn = WDS.browser.findElement(pkg.By.id('btnLogin')); 

usernameBox.click(); //click on User ID textbox
usernameBox.sendKeys([username]); //enter User ID
passwordBox.click(); //click on Password textbox
passwordBox.sendKeys([password]); //enter password
loginBtn.click(); //click Login button
java.lang.Thread.sleep(5000);

//Check that "Home" page has been reached by verifying presence of "News         
Header"
try {
    wait.until(conditions.presenceOfElementLocated(pkg.By.id('ct100_CP1_ctlNewsMessa
    geList_NewsHeader')));
} 
catch (Exception) {
    WDS.sampleResult.sampleEnd();
    WDS.sampleResult.setSuccessful(false);
}

//Navigate to "Invoice PDFs" screen
var accountMnu = WDS.browser.findElement(pkg.By.xpath("//[contains(text(),'Account')]"));
accountMnu.click();
var InvPDFSubMnu = WDS.browser.findElement(pkg.By.xpath("//*
[contains(text(),'Invoice PDFs')]"));
InvPDFSubMnu.click();
java.lang.Thread.sleep(5000);
try {
    wait.until(conditions.presenceOfElementLocated(pkg.By.id('ctl00_CP1_tbDocNo')));
} 
catch (Exception) {
    WDS.sampleResult.sampleEnd();
    WDS.sampleResult.setSuccessful(false);
}

//Enter document number
java.lang.Thread.sleep(5000);
var docNoBox = WDS.browser.findElement(pkg.By.id('ctl00_CP1_tbDocNo')); 
docNoBox.click(); //click on "Doc Bo." textbox
docNoBox.sendKeys([docNo]); //enter Doc No.
java.lang.Thread.sleep(5000);


//Retrieve document with specified document number
var retrieveBtn = WDS.browser.findElement(pkg.By.id('ctl00_CP1_btnRetrieve')); 
retrieveBtn.click();

try {
    wait.until(conditions.presenceOfElementLocated(pkg.By.xpath("//*[contains(text(),'download')]")));
} 
catch (Exception) {
    WDS.sampleResult.sampleEnd();
    WDS.sampleResult.setSuccessful(false);
}
 java.lang.Thread.sleep(5000);

//Click on "download" button
var downloadBtn = WDS.browser.findElement(pkg.By.xpath("//*[contains(text(),'download')]")); 
downloadBtn.click();

WDS.sampleResult.sampleEnd();

似乎解决方案是在 "Path to Chrome Driver" 中(在 "jp@gc - Chrome Driver Config" 元素的 "Chrome" 选项卡下)我需要用“\ chromedriver.exe”。