jmeter+python:简单实例1(jmeter调用python脚本)

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}"+'
'+"排序后的字符串使用vars.get打印出:"+vars.get('newaj')+'
'+"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";
}

就成功了

原文地址:https://www.cnblogs.com/jxba/p/11848222.html