Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JMeter脚本路径丢失"\&引用;那么不工作了?_Javascript_Jmeter_Beanshell - Fatal编程技术网

Javascript JMeter脚本路径丢失"\&引用;那么不工作了?

Javascript JMeter脚本路径丢失"\&引用;那么不工作了?,javascript,jmeter,beanshell,Javascript,Jmeter,Beanshell,我试图使用这里发布的beanshell脚本来获取在我的jmeter测试中运行的jmx的路径- 它正在工作,如果我在beanshell设置时记录路径的输出,或者使用调试器查看变量,我将获得脚本的路径,并按预期显示- c:\my\path\to\script 但是,当我尝试将该变量传递到sendKeys时,斜杠“\”被删除了- c:mypathtoscript 这不起作用,因此我无法附加/上载我的文件 我肯定错过了一些愚蠢的事情 感谢使用vars.put将JMeter UDV值放入Javascr

我试图使用这里发布的beanshell脚本来获取在我的jmeter测试中运行的jmx的路径-

它正在工作,如果我在beanshell设置时记录路径的输出,或者使用调试器查看变量,我将获得脚本的路径,并按预期显示-

c:\my\path\to\script
但是,当我尝试将该变量传递到sendKeys时,斜杠“\”被删除了-

c:mypathtoscript
这不起作用,因此我无法附加/上载我的文件

我肯定错过了一些愚蠢的事情


感谢使用vars.put将JMeter UDV值放入Javascript变量中,然后使用Javascript连接将其链接在一起。

在不使用Beanshell的情况下,至少有两种方法可以完成此操作:

  • 从WebDriver采样器调用方法:

    someElement.sendKeys(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir())
    
  • 从中获取值

  • 完整代码示例:

    WDS.sampleResult.sampleStart()
    WDS.browser.get('http://ya.ru')
    var searchInput = WDS.browser.findElement(org.openqa.selenium.By.id('text'))
    
    //directly access function from JavaScript
    searchInput.sendKeys(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir())
    
    //alternative way - getting the value from JMeter Variables
    var vars = org.apache.jmeter.threads.JMeterContextService.getContext().getVariables()
    searchInput.sendKeys(vars.get('homepath'))
    
    WDS.sampleResult.sampleEnd()
    

    有关从WebDriver Sampler访问JMeter API类的全面信息,以及其他一些提示和技巧:

    尝试避开反斜杠。嗨,Kevin,我该怎么做?路径是由链接中发布的beanshell脚本生成的…我不知道您将如何逃避生成的路径,但是,如果可以在传递给sendKeys变量之前对其进行修改,请使用双反斜杠转义反斜杠或正斜杠。请共享BeanShell代码以及传递JMeter绝对路径值的方式。我有一个名为“homepath”的UDV,其值为“${\uu BeanShell”(import org.apache.jmeter.services.FileServer;FileServer.getFileServer().getBaseDir();)}${{uuu BeanShell(File.separator,)}”,我使用${homepath}调用变量,debug用一个反斜杠显示,当webdriver运行时,这些反斜杠将被删除..您将执行两次相同的操作:操作文件。但最初的问题是如何操作字符串,以便不要松开反斜杠。
    WDS.sampleResult.sampleStart()
    WDS.browser.get('http://ya.ru')
    var searchInput = WDS.browser.findElement(org.openqa.selenium.By.id('text'))
    
    //directly access function from JavaScript
    searchInput.sendKeys(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir())
    
    //alternative way - getting the value from JMeter Variables
    var vars = org.apache.jmeter.threads.JMeterContextService.getContext().getVariables()
    searchInput.sendKeys(vars.get('homepath'))
    
    WDS.sampleResult.sampleEnd()