ユーザーがでjmeter-「BeanShellのアサーション」でアサーションをカスタマイズすることができます。そのアサーションスクリプトを達成するための自由度と柔軟性
BeanShellのアサーションインターフェイス説明
接頭辞を追加することなく、直接呼び出すことができますBeanShellの変数。
1.log印刷ログlog.info(「コンソールで印刷ログ」)。
SampleResultオブジェクトを取得2.SampleResult、あなたは、このオブジェクトを介して必要な情報を得ることができます
Responseオブジェクトを取得します3.Response、対応する情報は、このオブジェクトによって取得することができます
真、それはfalseを返した場合成功する、インタフェースの呼び出しが成功したかどうかを確認4.Failure失敗です
5.FailureMessageの障害情報、時間が設定されていない故障情報は空です。この情報は、設定することができます
] [レスポンスボディタイプはバイトでゲット6.ResponseData
7.ResponseCode正常インタフェース・コード200を返します
MSG成功を得る8.ResponseMessageすることはOKです
9.ResponseHeadersがサーバから返されたインターフェイスヘッダ情報を取得します
10.RequestHeadersクライアントによって要求されたヘッダ情報を取得します
11.SampleLabelは、インタフェース要求の名前を取得します
12.SamplerData取得要求URLと体
13.ctx代表コンテキスト情報を直接使用することができ
14.varsは、取得したデータが、あなたはまた、ユーザ定義の変数は(取得)を取得することができますJMeterの変数(入れ)となり、直接呼び出すことができます
例えば:
1. HTTPサンプルでBeanShellのアサーションを追加します。
2.スクリプトを書きます
1インポートorg.apache.jmeter.assertions。
2インポートorg.apache.jmeter.samplers.SampleResult。
3輸入org.apache.jmeter.assertions.AssertionResult。
4輸入org.json *。;
5
6列response_data = prev.getResponseDataAsString(); //取得インターフェイス応答データが7 JSONObject data_obj =新しいJSONObject(response_data)を返さ; // JSONに変換
// 8コードが0に等しい場合、次いで9文字コード= data_obj.get(「コード」)の内部フィールドを取る0に等しいと判断します。
10 IF(code.equals(「0」))
11 {
12弦USER_NAME = data_obj.get(「データ」)(「ユーザ」)を取得する(「ユーザ名」)を取得のtoString()。。。。
ここで13 // MY_NAMEは、ユーザー定義変数またはインタフェース戻る14の前に取得されたことがある場合(user_name.equals($ {MY_NAME})){
15失敗=偽; // falseに設定するには、結果に木が緑のサンプルがあり、正常に実行にインターフェイスを示し
16 // 17 ......フォローアップアクションを実行します。
18}
他の19 {
20 21} //行う他のアクション
22}
他の23
24 {
25失敗= TRUE; //直接故障解析インターフェース実行結果ツリーに(真の)赤26 prev.setStopThreadを試料の故障を示し、アサーションが失敗した場合//、インタフェースが後で再び実行する必要はなく、直接サスペンション27}