java - JMeter 使用 JavaImported 导入定义的 JAR

标签 java jar webdriver jmeter

在 WeDriver 采样器中,我想使用 JavaImporter 调用我自己的类,它将执行登录页面的测试。输入用户名和密码并输入。

like to 的用法如下: 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, "${用户名}", "${用户名}") 问候

最佳答案

根据Script Engine docs你需要:

var login = new Packages.WebTest.BO.Login

importPackage(Packages.WebTest.BO.Login)

有关该主题的更多信息,请参阅如何 use Selenium with JMeter文档。

关于java - JMeter 使用 JavaImported 导入定义的 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19593765/

相关文章:

python - 页面未在 Windows 上使用 Python 加载到 Selenium WebDriver 中

java - 创建字符串对象以连接结果

java - 引入变量只是为了可读性?

java - 如何在swing应用中使用第三方主题?

python - 如何在python中保存Firefox webdriver session

clojure - clojure 中的 clj-webdriver : where to find taxi. clj?

java - 用户猜完 6 个随机数后,游戏还剩下 1 个

Java - Linux 中可视化程序的错误

java - 尝试访问 jar 中的 ZipFile 时出现 FileNotFoundException

Java:gradle 构建失败 bootRepackage(在创建 jar 时)