スクリプトのJMeterのBeanShellの

JMeterのインタフェースのテストやパフォーマンステストを使用している場合、我々は複雑な要求に対処する必要があり、その後、あなたはBeanShellのスクリプトを使用する必要があり、BeanShellのは、完全準拠のJavaスクリプト言語の構文仕様である、と彼らは自分の文法のいくつかを持っているし、この方法では、Javaは、それがシームレスです。いくつかのユニークな変数を建てに、あなたには、いくつかの統合コードのデバッグツールに上がることができないためのBeanShell。そして、我々は今日で共有するために2つのコード例を使用し、それが直接、わずかに変更されたの下で使用することができます使用することができます。
豆シェルは、組み込み変数Daquanの
まず、豆の殻は、独自に付属しているいくつかの組み込み変数やメソッドを持っている必要があります。JMeterのその組み込み変数BeanShellのユーザーは、JMeterのでこれらの変数を対話しています。 
1.log印刷ジャーナル、jmeber.log情報をファイルに書き込みます。
必要な情報を取得するためにオブジェクトを介してSampleResultオブジェクトを取得2.SampleResult。
Responseオブジェクトを取得します3.Response、このオブジェクトは、応答情報を取得することができます。
成功は偽、真の失敗を返すことであれば、インタフェース転送成功を表示するために使用4.Failure。
5.FailureMessageの障害情報、時間が設定されていない故障情報が空で、この情報を設定することができます。
レスポンスボディタイプを取得することは6.ResponseData []バイトです。
7.ResponseCode正常インターフェースコードが200で返します。
ResponseCode正常インターフェースコードが200で返します。
MSG成功を得る8.ResponseMessageすることはOKです。
成功MSG取得ResponseMessageはokです。
9.ResponseHeadersがサーバから返されたインターフェイスヘッダ情報を取得します。
ResponseHeadersは、サーバから返されたインターフェイスのヘッダー情報を取得します。
クライアントによって要求されたヘッダ情報を取得10.RequestHeaders。クライアントから要求されたヘッダ情報を取得RequestHeaders
11.SampleLabel 获取接口请求的名称。 SampleLabel获取接口请求的名称
12.SamplerData 获取请求的url和body。 SamplerData获取请求的url和body
13.ctx 代表上下文信息,能直接用。 ctx代表上下文信息,能直接用
14.vars即JMeterVariables,操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),常用方法:
a) vars.get(String key):从jmeter中获得变量值;
b) vars.put(String key,String value):数据存到jmeter变量中;
15.prev 获取前面的sample返回的信息,常用方法:
a) getResponseDataAsString():获取响应信息。
b) getResponseCode() :获取响应code
 
实例:
签名函数
import java.util.*;
import Sign.*;
 
Signature signs = new Signature();
String appid = vars.get("login_appid");
String openid = vars.get("openid");
log.info(openid);
Map headers = signs.make_headers(appid);
Map url_params = new HashMap();
url_params.put("appId", appid);
url_params.put("openId", openid);
log.info(String.valueOf(headers));
String url ="https://" +vars.get("login_url")+vars.get("login_params");
log.info(url);
headers = signs.get_signature(url, "GET", url_params, headers);
log.info(String.valueOf(headers));
vars.put("h_appid", headers.get("X-QP-AppId"));
vars.put("h_timestamp", headers.get("X-QP-Timestamp"));
vars.put("h_nonce", headers.get("X-QP-Nonce"));
vars.put("h_signature", headers.get("X-QP-Signature"));
 

おすすめ

転載: www.cnblogs.com/summerxye/p/10975272.html