JMeter--常用断言的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011466469/article/details/78322632

Loadrunner有检查点,JMeter也有断言,http://jmeter.apache.org/usermanual/component_reference.html#assertions

1、Size Assertion 大小断言(响应文本的大小)

  • Name:名称,不解释;
  • Comments:注释;
  • Apple to:应用范围
  • Main sample and sub-sample: 主事务与子事务
  • Main sample only:仅主事务
  • sub-samples only:仅子事务
  • Jmeter variable:JMeter变量
  • Reponse Size Field to Test: 设置哪部分参与断言
  • Full Response: 对应:Size in bytes:2843
  • Response Headers: 对应:Headers size in bytes:400
  • Response Body: 对应:Body size in bytes:2443
  • Response Code:sub-samples only:仅子事务,仅选择这个的时候,可以设置size in byte:200
  • Response Message:sub-samples only:仅子事务,仅选择这个的时候,可以设置size in byte:OK
  • Size to Assert:
  • Size in bytes: 字节的大小,
  • Type of Comparison: 运算符,等于=,大于>,小于<,不等于!=,大于等于,小于等于。。。

2、Response Assertion 相应断言(响应文本内容)

  • Name:名称随意;
  • Comments:注释随意;
  • Apply to:应用范围:
  • Main sample and sub-sample: 主事务与子事务
  • Main sample only:仅主事务
  • sub-samples only:仅子事务
  • Jmeter variable:JMeter变量
  • Field to Test:参与断言的部分
  • Text Response:响应的主体部分,Response Data
  • Response Code:响应的状态码,如200
  • Response Message:响应的消息,如OK
  • Response Headers:响应的头信息,如Server: bfe/1.0.8.18
  • Request Headers:请求的头信息,如请求url
  • URL Sampled:采样器的url,请求的路径url
  • Document(Text):响应文本,包括标签<html></html>
  • Ignore Status:忽略状态,假设请求url:ww.baidu.com,请求断言选择Text Response错误,勾选了Ignore status,断言就成功;
  • patterns to Test:
    • 包含 - 如果文本包含正则表达式模式,则为true
    • 匹配 - 如果整个文本与正则表达式模式匹配,则为true
    • Equals - 如果整个文本等于模式字符串(区分大小写),则为true
    • Substring - 如果文本包含模式字符串(区分大小写),则为true
    • NOT
    • OR

3、BeanShell Assertion 此高级断言,校验接口数据的正确性(数据库方向)

Name:名称,随意,最好有业务意义;

Comments:注释,随意;

Reset bsh.Interpreter before each calll:若选择此项,则将为每个样本创建对应的解释器。一般用不到。

Parameters(->String Parameters and String []bsh.args):参数

Script file:包含 BeanShell 脚本的运行文件。将重写当前脚本 Script,其文件名存储在脚本变量名中。

Script(see below for variables that are defined):BeanShell 脚本。当包含了 BeanShell 脚本文件(script file)时,Script 可为空。

import org.apache.jmeter.util.JMeterUtils;

import org.apache.jmeter.samplers.SampleResult;

import org.apache.jmeter.assertions.AssertionResult;

String exp = vars.get("exp_sysNo");

String act = vars.get("sysNo");

if (exp.equals(act)) {

log.info(exp);

log.info(act);

log.info("Test passed.");

} else {

log.info(exp);

log.info(act);

log.info("Test failed to assert : Expected <" + exp + ">, but <" + act + ">.");

}

ac = "a";

if (exp.equals(ac)) {

log.info(exp);

log.info(ac);

log.info("Test passed.");

} else {

log.info(exp);

log.info(ac);

log.info("Test failed to assert : Expected <" + exp + ">, but <" + ac + ">.");

}

【转载一部分log.info的使用】

log.info("\n01.获取请求响应数据:SampleResult.getResponseData()" + SampleResult.getResponseData() + "\n\n");

log.info("\n02.获取请求响应返回码:SampleResult.getResponseCode()\n" + SampleResult.getResponseCode() + "\n\n");

log.info("\n03.获取请求响应信息:SampleResult.getResponseMessage()\n" + SampleResult.getResponseMessage() + "\n\n");

log.info("\n04.获取请求响应头信息:SampleResult.getResponseHeaders()\n" + SampleResult.getResponseHeaders() + "\n\n");

log.info("\n05.获取请求的头信息:SampleResult.getRequestHeaders()\n" + SampleResult.getRequestHeaders() + "\n\n");

log.info("\n06.获取请求的标签:SampleResult.getSampleLabel()\n" + SampleResult.getSampleLabel() + "\n\n");

log.info("\n07.获取请求执行结果:SampleResult.isSuccessful()\n" + SampleResult.isSuccessful() + "\n\n");

log.info("\n08.设置请求响应的返回码:SampleResult.setResponseCode(\"502\")\n" + SampleResult.setResponseCode("502") + "\n\n");

log.info("\n09.设置请求响应的信息:SampleResult.setResponseMessage(\"SampleResult.setResponseMessage\")\n" + SampleResult.setResponseMessage("设置响应信息:SampleResult.setResponseMessage") + "\n\n");

log.info("\n10.获取请求的返回码:SampleResult.getResponseCode()\n" + SampleResult.getResponseCode() + "\n\n");

log.info("\n11.获取请求的响应信息:SampleResult.getResponseMessage()\n" + SampleResult.getResponseMessage() + "\n\n");

log.info("\n12.获取请求的头信息:vars.toString()\n" + vars.toString() + "\n\n");

log.info("\n13.获取请求的头信息:props.toString()\n" + props.toString() + "\n\n");

log.info("\n14.获取请求的头信息:ctx.toString()\n" + ctx.toString() + "\n\n");

猜你喜欢

转载自blog.csdn.net/u011466469/article/details/78322632