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";
}

就成功了

 

posted on 2019-11-13 13:18  jxba  阅读(6385)  评论(0编辑  收藏  举报