2016-06-27 4 views
2

JMeterを使用していくつかのテストを実行しようとしていますが、複雑な作業をする際に問題が発生しています。応答値をbase64にエンコードして別のテストで使用する

私はauth_tokenを含む応答で返されるログインHTTPリクエストテストを持っています。最後に":"を追加し、別のテストの要求でその値を使用するためにbase64にエンコードする必要があります。

私はBeanShellを使用して実行できることを読んできましたが、まだ達成できませんでした。私は誰かが私にこの仕事を実行するためのいくつかのステップを与えることができれば感謝します。

答えて

1

私はあなたがJMeter Pluginsがインストールされているしている場合のJMeter変数を経由して、すなわちRegular Expression Extractor

にこのauth_tokenを取得する方法を知っていると仮定 - あなたは次のように__base64Encode()機能を使用することができます:「あなたはドン場合

${__base64Encode(${auth_token},auth_token_encoded)} 

プラグインを持っている/持つことができない/したくない - ここでBeanshellでやる方法です。

  1. あなたはBeanShellのポストプロセッサ「スクリプト」領域に以下のコードを入れてauth_token
  2. を取得するために使用しているどこかの正規表現の抽出(またはその他の後処理後BeanShellのポストプロセッサを追加します。

    import org.apache.jmeter.protocol.http.util.Base64Encoder; 
    
    String auth_token = vars.get("auth_token"); 
    String auth_token_encoded = Base64Encoder.encode(auth_token); 
    vars.put("auth_token_encoded", auth_token_encoded); 
    

Beanshellスクリプトを使用するには、How to Use BeanShell: JMeter's Favorite Built-in Componentを参照してください。

どちらのケースは想定しています

  • あなたが${auth_token_encoded}
+0

こんにちはドミトリとしてエンコードされた値にアクセスすることができます${auth_token}のJMeter変数

  • に格納されている「auth_token」値を持っています。お返事をありがとうございます。これは、抽出しようとしている認証トークンです。 http://screencast.com/t/agRTNKEct。私はこの正規表現抽出子を使用してそれを抽出しようとしています。 http://screencast.com/t/xx7wA3Xxを開き、このbeanshellポストプロセッサを使用してbase64に変換します。 http://screencast.com/t/lpPEE7fhd。私はそれを一度エンコードする変数を作成しましたが、まだそれを動作させることはできません。 http://screencast.com/t/2WuXOiuk。何か案は? - user6519108 13分前 – user6519108

  • +0

    私はアイデアを持っています:正規表現の使い方についてのアイデアはありません。あなたはどこから 'メタコンテンツ 'を入手しましたか?別のstackoverflowの投稿?正規表現を '' auth_token ":"(。+?) "'に変更するか、[JSON Path Extractor](https://www.blazemeter.com/blog/advanced-usage-json-path-extractor)を使用してください。 -jmeter) –

    関連する問題