JMeter脚本路径缺少“\”所以不起作用?

时间:2016-12-22 13:10:06

标签: javascript jmeter beanshell

我正在尝试使用此处发布的beanshell脚本来获取在我的jmeter测试中运行的jmx的路径 - Access to JMeter script path

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

c:\my\path\to\script

但是当我尝试将该变量传递给sendKeys时,斜杠“\”将被删除,所以 -

c:mypathtoscript

这不起作用,所以我无法附加/上传我的文件..

当然我错过了一些愚蠢的事情

由于

2 个答案:

答案 0 :(得分:0)

用户vars.put需要将JMeter UDV值放入Javascript变量中,然后使用javascript concatenate将它们全部链接在一起。

答案 1 :(得分:0)

如果不使用Beanshell,至少有两种方法可以完成此任务:

  1. 从WebDriver Sampler调用FileServer方法:

    someElement.sendKeys(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir())
    
  2. JMeterVariables

    获取值
    var vars = org.apache.jmeter.threads.JMeterContextService.getContext().getVariables()
    someElement.sendKeys(vars.get('homepath'))
    
  3. 示例完整代码:

    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类的全面信息以及更多提示和技巧:The WebDriver Sampler: Your Top 10 Questions Answered