我已经能够使用Firefox驱动程序配置中的JMeter中的WebDriver Sampler成功运行(javascript)测试脚本。我现在想要使用JMeter Chrome驱动程序配置在Chrome中运行相同的测试。
我知道我在PC上安装的Chrome驱动程序正在运行,因为我已成功使用它来运行其他(非JMeter)测试。 Chrome驱动程序的路径也绝对正确。
我的网站未使用代理,因此我在Chrome驱动程序配置的“代理”标签下选择了“无代理”。
问题:当我在JMeter中单击“运行”并禁用了Firefox驱动程序配置并启用了Chrome驱动程序配置时,没有任何操作(浏览器无法打开,测试快速结束,并且没有记录任何内容“查看结果树”听众)。
我使用的是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();
答案 0 :(得分:0)
似乎解决方案是在" Chrome to Chrome驱动程序" (在" Chrome"标签中" jp @ gc - Chrome驱动程序配置"元素)我需要结束"路径"使用" \ chromedriver.exe"。