JMeter-如何将JavascriptExecutor插入Java中的WebDriver采样器代码

JMeter-如何将JavascriptExecutor插入Java中的WebDriver采样器代码,jmeter,jmeter-plugins,Jmeter,Jmeter Plugins,我在WebDriver代码中有以下方法: public String getLastMessage() throws Exception { JavascriptExecutor js = (JavascriptExecutor) driver; Thread.sleep(1000); String jsexec = "return app.webSocketRouter.lastMessage"; Object obj1 = js.executeScript(j

我在WebDriver代码中有以下方法:

public String getLastMessage() throws Exception
{
    JavascriptExecutor js = (JavascriptExecutor) driver;
    Thread.sleep(1000);
    String jsexec = "return app.webSocketRouter.lastMessage";
    Object obj1 = js.executeScript(jsexec);
    System.out.println(obj1.toString());
    return obj1.toString();
}
如何在JMeter WebDriver采样器中翻译JavascriptExecutor?
提前感谢。

您可以通过以下简单方式完成:

var lastMessage = WDS.browser.executeScript('return app.webSocketRouter.lastMessage')
WDS.log.info('lastMessage is: ' + lastMessage)
上面截取的代码将执行JavaScript并将结果打印到jmeter.log文件中


有关更多详细信息,请参阅指南

如果所选脚本语言是Java,我可以混合使用Java和JavaScript吗?您可以在两个方向上混合使用这两种语言,请参见示例。还要注意,选择
java
作为该语言实际上并不意味着
java
,而是
beanshell
bsh
,因此,如果您不喜欢JavaScript,请选择
groovy
选项,或者在开发代码时坚持java 5语言级别,因为现代功能将不可用。有关更多详细信息,请参阅。当我插入并运行var lastMessage=WDS.browser.executeScript('return app.webSocketRouter.lastMessage');WDS.log.info('lastMessage为:'+lastMessage);在WebDriver采样器中,我得到错误消息:响应消息:源文件:内联评估:``import org.openqa.selenium.*;导入org.openqa.selenium.support.ui.*;“进口ja…”令牌解析错误:第35行第47列的词法错误。遇到:“e”(101),在“\'r”之后:在您的脚本中有一个语法错误,这就是我在没有看到Java中的代码JavaScript给出错误的情况下所能陈述的全部内容。它在var lastMessage=WDS.browser.executeScript('return app.webSocketRouter.lastMessage')中的第一个'。当我使用“时”,它给出错误:方法调用中的错误:在类“org.openqa.selenium.remote.RemoteWebDriver”中找不到方法executeScript(java.lang.String):第35行:在文件中:内联求值:``import org.openqa.selenium.*;import org.openqa.selenium.support.ui.*;import ja…'':WDS.browser.executeScript(“return app.webSocketRouter.lastMessage”)。这是因为var lastMessage未被识别为有效的Java数据类型。