2016-12-22 17 views
2

は、私は私のJMeterのテストで実行されているJMXのパスを取得するためにここに掲載のBeanShellスクリプトを使用しようとしています - それは働いているAccess to JMeter script pathJMeterのスクリプトパスに「」がないと機能しません。

と私はパスの出力をログに記録した場合BeanShellのかによって設定されたとき私は期待通りに表示されたスクリプトへのパスを取得し、デバッガで変数を表示 -

c:\my\path\to\script 

が、私は、その後のSendKeysにその変数を渡すしようとすると、スラッシュ「\」はその削除される -

c:mypathtoscript 

そして、これは私が私のファイルをアップロード/添付することができません動作しません..私は愚かな何か

おかげJMeterのUDV値を置くために、ユーザーvars.putするために必要な

+0

バックスラッシュをエスケープしてみてください。 –

+1

こんにちはKevin、どうすればいいですか?リンクにポストされているbeanshellスクリプトによってパスが生成されています... – Karl

+0

生成されたパスをどのようにエスケープするか分かりませんが、二重バックスラッシュを使用してバックスラッシュをエスケープするか、フォワードスラッシュを使用して変更できますあなたのsendKeys変数に渡されます。 –

答えて

0

をしないのです

は確かにJavascript変数に入力し、次にjavascript連結を使用してすべてをリンクします。

0

これはBeanShellのを使用せずに行わ取得するには、少なくとも2通りの方法があります。webdriverをサンプラーから

  1. コール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をサンプラーとさらにいくつかのヒントやトリックからJMeterのAPIクラスのアクセスに関する総合情報:The WebDriver Sampler: Your Top 10 Questions Answered

+0

あなたはファイルを操作します。しかし、元の質問は、文字列を操作する方法を尋ねているので、バックスラッシュを緩めないようにしています。 – Franta

関連する問題