2013-04-02 11 views
12

私は、スクリプトが実行されるたびに一意のフォルダが作成されるjmeterスクリプトを生成しようとしています - ユーザー名+タイムスタンプなどのフォルダ名に変数を追加する一意性を保証するのに十分です。しかし、jmeterは変数をその値に解決していませんが、変数がcsvファイルから読み込まれている(これは適切ではありません)。次のようにhttprequestポスト本体の変数

基本的に、私は、httpリクエストにPostBodyを編集しています:

{ "alf_destination": "ワークスペース:// SpacesStore/90368635-78a1-4dc5-be9e-33458f09c3f6"、」 prop_cm_name ":" テスト フォルダ - $ {変数}」、 "prop_cm_title": "テスト フォルダ"、 "prop_cm_description": "テストフォルダ"}

variableは、基本的に私が試した任意の変数でありますfar(ランダムな文字列、タイムスタンプなど)

誰も変数を取得する方法を提案できますか?

答えて

4

httpリクエストの投稿者に追加されたbeanshellプリプロセッサを使用して作成されたhttpリクエストのポストボディ - ${formvalues} - で変数を参照することでこれを行いました。
BeanShellの内容:

double random = Math.random();  
String formvalues ="{\"alf_destination\":\"workspace://SpacesStore/90368635-78a1-4dc5-be9e-33458f09c3f6\",\"prop_cm_name\":\"Test Folder - ${uname}_" + random + "\",\"prop_cm_title\":\"Test Folder\",\"prop_cm_description\":\"Test Folder\"}";   
vars.put("formvalues",formvalues); 

これは、ユーザー名(${uname}、CSVから撮影したもの)を加えた乱数とフォルダが作成されます - 潜在的にまだスクリプトがでフォルダを作成しようとするケースがあるかもしれないとして、それは、原油です既存のものと同じ名前ですが、私の場合はうまくいくでしょう。 JMeterは2.9、以下の作品で

9

HTTPリクエストサンプラーでは、タブの「ポストボディ」とは、例えば、あなたのJSONデータを追加し、その中の変数を含めるには:

{"uuid":"${new-uuid}"} 

new-uuidがユーザーであります定義された変数。 これは(ツリー、タブの "要求"/"生" の結果の表示から)お送りします:

POST data: 
{"uuid":"a1b2c3d4e5f6"} 
+0

これはJMeterの2.11を使用して私のために働きました。 – seixasfelipe

19

あなたは(2.9版以降)UUID機能のJMeterを使用することができます - >http://jmeter.apache.org/usermanual/functions.html#__UUID

${__UUID} 

1)テスト全体に1つの値が必要な場合は、「ユーザー定義の 変数」構成要素をテストに追加します。初めて テストスクリプトを読み込むと評価されます。

)スレッドの実行ごとに値を変更したいが、各スレッドインスタンス中に同じままにしておきたい場合は、 'スレッド グループ'の下に 'Preprocessors - > User Parameters'をスレッドに追加しますグループ - そこに変数を追加します。あなたは値がスレッドが (スレッドグループ内のスクリプトの各「反復」)上で起動するたびに変更したい場合は

また、あなたが ユーザパラメータの「アップデート毎の反復たら、」ボックスをチェックすることができます - のテストスクリプトの先頭(そのスレッドグループ内)でスレッドを開始するたびに新しい値を取得します。

http://mail-archives.apache.org/mod_mbox/jmeter-user/201208.mbox/%[email protected]%3E

+0

jmeter 2.11では、これはHTTP json POST本体内の任意の変数に作用しました – airboss

+0

jmeter 2.13で、$ {__ UUID} – mecek