性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)

  • JMETER 函数助手 digest
  • JMETER 函数助手 random
  • JMETER 函数助手 RandomString
  • JMETER Debug Sampler
  • JMETER JSON 断言
    • 匹配其中一个key
    • 匹配正则表达式的值
    • 匹配一个key且匹配value
    • 匹配一个空值和非空值
    • Invert assertion (will fail above conditions met)反转断言(将在满足以上条件时失败)
  • BeanShell 断言
  • BeanShell断言常用方法
  • BeansShell 脚本编写
  • JMETER 变量
  • JMETER CSV参数化

JMETER 函数助手 digest

digest 摘要函数返回特定哈希算法中的加密值
函数助手官方说明

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第1张图片

JMETER 函数助手 random

${__Random(1,50,randNum,randNum)}
性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第2张图片

JMETER 函数助手 RandomString

${__RandomString(3,abc123,randStr)}

Chars to use for random string generation

  • 需要随机的字符串 如:abc123,这个几个字符串随机 ,生成符合长度的数据

Random string length

  • 随机生成的长度

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第3张图片

JMETER Debug Sampler

英文 中文 路径
Debug Sampler 调试样本 右键一个线程组Thread Group-Add-Sampler-Debug Sampler

如果每次都想查看一下随机数,可以添加一个debug 样本查看具体的数值
性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第4张图片

JMETER JSON 断言

返回值是json格式的可以使用json断言,需要用到json path的语法格式
json path

匹配其中一个key

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第5张图片

返回的key不对就提示报错
性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第6张图片

匹配正则表达式的值

Value expected to match regexp

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第7张图片

匹配一个key且匹配value

Value expected to be ‘[0-9]’, but found ‘0’
性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第8张图片

匹配一个空值和非空值

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第9张图片

Invert assertion (will fail above conditions met)反转断言(将在满足以上条件时失败)

意思就是取反

BeanShell 断言

BeanShell是使用Java语法的一套脚本语言,在JMeter的多种组件中都有BeanShell的身影,如:

  • 定时器:BeanShell Timer
  • 前置处理器:BeanShell PreProcessor
  • 采样器:BeanShell Sampler
  • 后置处理器:BeanShell PostProcessor
  • 断言:BeanShell Assert
  • 监听器:BeanShell Listener

通过BeanShell可以对请求数据、响应数据或环境变量进行更加灵活的处理和判断。

Beanshell有一些默认的内置变量和方法,用户可以通过这些变量与JMeter进行交互,比如:

  • prInt:非GUI模式下打印信息(输出信息到stdout)
  • log:输出信息到日志(文件)
  • log.debu(“调试信息”)
  • log.info(“响应状态码” + ResponseCode)
  • log.warn(“警告信息”)
  • log.error(“出错信息”)
  • ResponseCode:响应状态码(String类型)
  • ResponseHeaders:响应头(String类型)
  • prev:获取当前请求结果
  • prew.getResponseDataAsString():获取响应体数据(String类型)
  • prew.getResponseCode():获取状态码(同ResponseCode,String类型)
  • vars: 操作jmeter变量
  • String var1 = vars.get(“变量名”):获取变量的值(假设为String类型)
  • vars.put(“变量名”, 变量值):设置变量值
  • props: 操作JMeter属性
  • props.get(String,String) 可以获取Jmeter中已经生成的属性
  • props.put(String,String) 可以创建和更新Jmeter属性
  • ctx:获取当前线程上下文数据(可获取所有信息)
  • ctx.getVariables(“变量名”):获取变量值(同vars.get())
  • ctx.setVariables(“变量名”, “变量值”):设置变量(同vars.put())
  • ctx.getProperties(“属性名”):获取属性值(同props.get())
  • ctx.setProperties(“属性名”,“属性值”):设置属性(同props.put())
  • ctx.getPreviousResult():获取当前请求结果同(prev)
  • ctx.getCurrentSampler():获取当前采样器
  • ctx.getPreviousSampler():获取前一采样器
  • ctx.getThreadNum():获取线程数
  • ctx.getThreadGroup():获取线程组
  • ctx. getThread():获取当前线程
  • ctx.getEngine():获取引擎
  • ctx.isSamplingStarted():判断采样器是否启动
  • ctx.isRecording():判断是否开启录制
  • ctx.getSamplerContext():获取采样器山下文数据
  • ctx详细API可参考:JMeter上下文

BeanShell断言常用方法

方法 说明
ResponseCode 从样本响应中获取code
ResponseHeaders 从样本响应中获取响应头
ResponseMessage 从样本响应中获取响应消息
ResponseDataAsString 从样本响应中获取响应数据

来分别获得String格式的响应状态码、响应头、响应体数据,结合if判断通过变量Failure=false或Failure=true来设置断言是否通过,当设置Failure=true时,还可以设置FailureMessage来设置失败原因。

BeansShell 脚本编写

beanshell官方教程
参考资料

log.info("打印一个beanshell日志");
String res_header = ResponseHeaders;
log.info("我自己打印的"+res_header);
boolean res = res_header.contains("UTF-9");
if(res==false){
	Failure = true;
	FailureMessage = "断言失败";
	}else{
		Failure = false;
		FailureMessage = "断言成功";
		}

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第10张图片

JMETER 变量

英文 中文 路径
User Defined Variables 用户自定义变量 右键一个测试计划TestPlan
User Defined Variables 用户自定义变量 右键一个线程组Thread Group-Add-Config Element-User Defined Variables

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第11张图片
固定写法:${变量名}
后面只要ip,端口有改变,只需要修改变量的值就可以了
性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第12张图片

JMETER CSV参数化

英文 中文 路径
CSV Data Set Config CSV参数化设置 右键一个HTTP请求-Add-Config Element-CSV Data Set Config

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第13张图片
CSV 参数的变量名设置
性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第14张图片
CSV 参数的迭代次数,这是线程的循环次数

性能测试_Day_05(jmeter函数助手、json断言、beanshell、参数化)_第15张图片

你可能感兴趣的:(#,性能测试,java,jmeter,压力测试)