、応答アサーション(アサーションに応答して)
2、サイズアサーション(パケットのバイトサイズがアサート)
3、期間アサーション(期間はアサート)
4、BeanShellのアサーション(アサーション無料)
、応答アサーション(アサーションに応答して)
1.アサーションへの応答を追加します。
結果を検証するためのWeb応答要求
2.必要性は、入力文字列にマッチします
ここで「百度、あなたは知っているが、」でも、合格ならば、含まれている場合、テキストの内容を返しますBaiduのホームページへのアクセス、あなたが一致する文字列を設定する必要がある「Baiduの、あなたが知っています」、
レスポンスアサーションの設定パラメータ
モジュールタイプ | オプション名 | 設定手順 |
---|---|---|
名 | レスポンスアサーション名 | |
注釈 | 注記 | |
に適用されます | アプリケーションの範囲を主張 | |
メインサンプルとサブサンプル | 親ノードとその子ノードサンプラーサンプラーに作用します | |
主なサンプルのみ | 唯一の親ノード演技サンプラー | |
サブサンプルのみ | それだけで、サブサンプラーのノードに作用します | |
JMeterの変数名を使用します | 演技のJMeterの変数(変数名の入力ボックスのJMeterを入力してください) | |
テストするフィールド | フィールドテスト | |
テキストレスポンス | 応じてサーバから返されたテキストのマッチング(レスポンスヘッダを除きます) | |
応答コード | 応答ステータスコードをマッチング | |
応答メッセージ | 応答情報をマッチング。以下のような:OK | |
レスポンスヘッダ | ヘッドの応答を一致させます | |
リクエストヘッダ | マッチリクエストヘッダ | |
URLサンプリング | URLリンクをマッチング | |
文書(テキスト) | 文書の内容を一致させます | |
ステータスを無視 | アサーションに応答要求の数は、請求項に対する応答の結果を無視し、次のアサーションに進み | |
要求データ | 要求データをマッチング | |
パターンMactchingルール | マッチングルール | |
含まれています | 返された結果は、通常の試合をサポートする、指定されたコンテンツが含まれます | |
マッチ | 指定されたコンテンツと一致 | |
等しいです | 返回结果与所指定的内容一致 | |
Substring | 返回结果包括所指定结果的字符串,不支持正则匹配 | |
Not | 不进行匹配就算是Pass | |
Or | 暂不确定该模式的用法 | |
Patterns to Test | ||
Patterns to Test | 需要匹配的正则表达式、字符串。可以添加多项,每一项会分开进行验证,若某一项验证失败,则其后的不会再进行验证。 |
3. 添加:断言结果(Assertion Results)、查看结果树(View Results Tree)
4. 运行Test Plan中的线程组,进行断言检查
以下可观察到响应数据中是包含所指定的验证字符串,Pass
二、Size Assertion(数据包字节大小断言)
判断响应结果是否包含正确数量的byte。可定义(=, !=, >, <, >=, <=)
三、Duration Assertion(持续时间断言)
判断是否在给定的时间内返回响应结果
四、beanshell 断言
Bean Shell常用内置变量
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);
ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext。
vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
a) vars.get(String key):从jmeter中获得变量值
b) vars.put(String key,String value):数据存到jmeter变量中
更多方法可参考:org.apache.jmeter.threads.JMeterVariables
props - (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。
a) props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
b) props.put("PROP1","1234");
prev - (SampleResult):获取前面的sample返回的信息,常用方法:
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应code
更多方法可参考:org.apache.jmeter.samplers.SampleResult
sampler - (Sampler):gives access to the current sampler
在这里除了可以使用beanshell的内置变量外,主要通过 Failure 和 FailureMessage来设置断言结果。
其中脚本内容如下:
if ("200".equals(""+ResponseCode) == false ) { // 响应码不等于200时,设置断言失败,并输出失败信息 Failure=true ; FailureMessage ="Response code was not a 200 response code it was " + ResponseCode + "." ; print ( "the return code is " + ResponseCode); // this goes to stdout log.warn( "the return code is " + ResponseCode); // this goes to the JMeter log file } else { // 响应码等于200时,设置断言成功,并输出成功信息 Failure=false; FailureMessage = "Return true, and the response code was " + ResponseCode; } }