当前位置: 首页 > 知识库问答 >
问题:

mobile devices请求使用JMeter中的JSR223进行仿真-没有这样的属性:类的驱动程序

嵇星海
2023-03-14

场景:

  1. 打开主页并单击“Accept All Cookie”(JSR223 Sampler1 in Once Only controller)
  2. 从参数化URL集合(另一个控制器中的JSR223 Sampler2)中打开页面。

System.SetProperty(“webdriver.chrome.driver”,“vars.get(”webdriver_path“)”);

map mobileEmulation=new hashmap<>();MobileEmulation.put(“UserAgent”,“vars.get(”UserAgent“)”);map chromeOptions=new hashmap<>();ChromeOptions.put(“mobileEmulation”,mobileEmulation);ChromeOptions选项=新ChromeOptions();Options.SetExperimentalOption(“mobileEmulation”,mobileEmulation);ChromeDriver驱动程序=新的ChromeDriver(选项);

driver.get(“https://vars.get(”main_page“)”);WebDriverWait wait=new WebDriverWait(驱动程序,20);Wait.Until(ExpectedConditions.VisibilityOfElementLocated(By.XPath(“XPath”)));driver.findElement(by.xpath(“xpath”)).click();log.info(driver.getTitle());

driver.get(“https://${url}”);

错误消息:响应消息:javax.script.ScriptException:groovy.lang.MissingPropertyException:没有此类属性:类的驱动程序

问题:如果我只是将所有代码从JSR223 Sampler1复制到JSR223 Sampler2并更改目标url,url正在打开,但以不适当的方式--每次启动新的浏览器实例,并且我不可能有实际的响应时间(仅针对driver.get(“url”)),因为result提供了采样器工作的时间,包括驱动程序初始化、新的浏览器实例启动,并且需要几秒钟...

你能提出什么想法吗?怎样才能解决这个问题?在一个浏览器实例中获取所有请求,并在JSR223 Sampler2中对所有请求有实际的响应时间,仅适用于browser.get(“URL”)?会感谢任何帮助的。

共有1个答案

邢令
2023-03-14

>

  • 在第一个JSR223采样器中,您需要将驱动程序实例存储到JMeter变量中,如:

    vars.putObject("driver", driver)
    

    它应该是脚本的最后一行

    在第二个JSR223采样器中,您需要从JMeter变量获取driver实例,例如:

    driver = vars.getObject("driver")
    

    附注。在执行driver.get()函数时,应遵循与vars相同的方法,如:

    driver.get("https://" + vars.get("url"))
    

  •  类似资料:
    • 响应消息:javax.script.scriptException:javax.script.scriptException:groovy.lang.MissingPropertyException:没有这样的属性:类的ExpectedConditions:Script7 在脚本的“desctop”部分,xpath(通过WebDriver sampler实现)并单击这个“Accept All Co

    • 在Apache jmeter项目中,我只需要在两个线程组之间共享几个变量。我发现变量不能在线程组之间共享,我必须使用属性。我在第一个线程组的JSR223预处理器中编写了下面的脚本来设置属性值。它运行没有任何异常。 然后,我从第二个线程组中的JSR223预处理器读取属性值,如下所示。 它将通过jmeter日志中的以下异常。 2019-11-02 18:54:19,353错误O.A.J.M.JSR22

    • 在我使用JMeter进行的测试中,创建了一些属性,请参阅以下内容: -----------------------------7d159c1302d0y0 内容-处置:窗体-数据;名称="年龄" 内容-类型:文本/普通;charset=ISO-8859-1 内容-传输-编码:8bit 我想删除属性: 内容-类型:文本/普通;charset=ISO-8859-1 内容传输编码:8bit 我尝试运行下

    • 我有一个Groovy测试类 在该类中有以下测试用例: 以及如下所示: 现在,当我运行这个测试用例时,我在调用时收到以下错误消息: 棒极了。lang.MissingPropertyException:类:ecs没有此类属性:msg1。MsgDispatcherTest 你知道我错过了什么吗?

    • docx4j从2.8.0更新到3.1.0后,我对以下代码有问题: 这些代码在2.8.0版本中运行良好,但是在3.1.0版本中,当调用行wml.save(targetFile)时,我得到了一个异常。我不能进入这段代码,因为我在进入之前立即得到以下异常: 我正在使用版本 1.7.7 的 slf4j-api(对于 docx4j 3.1.0,标准依赖项是 slf4j-api 的 1.7.5),而 slf4