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"; }
就成功了