jmeter新增
- 准备:用户定义的变量
- 取样:JSR223 Sampler,含python:对一个字符串进行重新排序显示
- 验证:beanshell断言
- 结果查看:查看结果树、断言结果、聚合报告
用户定义变量
JSR223 Sampler
python脚本
import sys reload(sys) sys.setdefaultencoding('utf8') #保证结果树的响应数据中的中文不为乱码,否则会提示错误信息:jmeter python Cannot create PyString with non-byte value #python脚本:将jmeter的变量赋值到python,然后对其进行排序,并输出排序后的字符串。 a = vars.get("b") #jmeter的变量b赋值到python print ("将a排序显示,办法1(列表):") lista = list(a) #字符串转为列表 lista.sort() #列表排序 bb = str(lista) newa = '' #创建一个空字符串 for i in lista: newa= newa+i #排序后的列表每项加给新字符串 vars.put("newaj",newa); #排序后的字符串赋值给jmeter的变量newaj c = vars.get('newaj') #将newaj的值给变量c SampleResult.setResponseData("原字符串:"+"${b}"+'\n'+"排序后的字符串使用vars.get打印出:"+vars.get('newaj')+'\n'+"or直接使用变量打印出:"+c); #响应信息输出,可直接使用vars.get('newaj') 输出,也可使用变量vars.get('newaj') 输出。 #SampleResult.setSuccessful(True) #SampleResult.setSuccessful(False) #SampleResult.setResponseCode("502")
beanshell断言
beanshell断言的脚本
String data = SampleResult.getResponseDataAsString(); String code = SampleResult.getResponseCode(); if(code == "200" ){ FailureMessage = "code:"+code+",OK,check current"; } else{ Failure = true; FailureMessage = "code:"+code+",ERROR,check error"; }
结果过分了,code命名是200 ,但就是报错……回头再确认下为什么
把断言脚本改为:
String data = SampleResult.getResponseDataAsString(); String code = SampleResult.getResponseCode(); if(code != "200" ){ FailureMessage = "code:"+code+",OK,check current"; } else{ Failure = true; FailureMessage = "code:"+code+",ERROR,check error"; }
就成功了