在 WeDriver 采样器中,我想使用 JavaImporter 调用我自己的类,该类将对登录页面执行测试。输入用户名和密码并输入。
喜欢以这种方式使用: var pkg = JavaImporter(org.openqa.selenium, org.openqa.selenium.support.ui) var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait)
我已经创建了类文件并使用 Eclipse 帮助创建了 jar 文件。类只会更新网页上的值(用户名和密码)。从 eclipse 创建的 jar 文件导入到 eclipse 项目中以检查 jar 文件是否正确。我可以浏览类并将类导入新的 java 文件。
JAR 文件被复制到 JmeterPATH/lib/ext,打开 JMeter 并更新测试 webdriver 采样器:var login_page = JavaImporter(WebTest.BO.Login)
Jmeter 返回:响应消息:javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError:未定义“WebTest”。(#3) 在第 3 行
有谁知道应该在类 Login 中添加什么,JMeter 将正常工作并识别包 WebTest.BO.Login (因为它在 eclipse 中被识别)
在 JMeter 中,我还添加了 Testplan JAR 文件。
非常感谢您的支持。
这是类包WebTest.BO.Login的代码;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class LogIn_Page {
private WebDriver driver;
public void Login(WebDriver driver, String username, String password) throws Exception {
this.driver = driver;
WebDriverWait webwait = new WebDriverWait(driver, 30);
WebElement UserName = driver.findElement(By.xpath("//input[@id='UserName']"));
UserName.sendKeys(username);
WebElement Password = driver.findElement(By.xpath("//input[@id='Password']"));
Password.sendKeys(password);
WebElement loginBtn = driver.findElement(By.xpath("//input[@id='loginBtn']"));
loginBtn.click();
}
Jmeter中已解决的代码:
importPackage(Packages.WebTest.BO.Login)
var login_page = new LogIn_Page()
var support_ec = JavaImporter(org.openqa.selenium.support.ui)
var timeunit = JavaImporter(java.util.concurrent);
var wait = new support_ui.WebDriverWait(WDS.browser, 30)
WDS.sampleResult.sampleStart()
WDS.browser.get("${server}")
login_page.Login(WDS.browser, "${username}", "${username}") 问候