美文网首页
jmeter使用groovy实例

jmeter使用groovy实例

作者: _Irving | 来源:发表于2023-04-27 14:44 被阅读0次

前面我们写过使用python处理修改响应内容传参和批量生成参数,但是实际压测过程中发现,使用python性能很差,后面我们又尝试换用groovy,发现groovy性能更好,处理更快

下面是我们之前使用python写的处理将参数添加如下内容
import json
s=vars.get("list") #获取jmeter的参数
s=json.loads(s)  #JSON 字符串解码为 Python 对象
for i in range(len(s)):
    s[i]["__id___"]=str(i)
    s[i]["_row_"]=str(i)
s=json.dumps(s,ensure_ascii=False)  #将 Python 对象编码成 JSON 字符串
vars.put("list_new",s)
现在我们换成groovy来实现
import groovy.json.JsonSlurper
import groovy.json.JsonOutput


def json=vars.get("payList")
JsonSlurper jsonS = new JsonSlurper()
def s = jsonS.parseText(json)
for (int i in 0..<s.size()){
    s[i].each{key, value -> 
            if (value instanceof Integer){
                s[i].put(key,String.valueOf(value))
/*              s[i].key=String.valueOf(value) */
            }
        }
    s[i]."__id___"=String.valueOf(i)
    s[i]."_row_"=String.valueOf(i)
}
def json1 = JsonOutput.toJson(s)
vars.put("payList_new",json1)
还有就是我们之前用到的批量生成参数,换成groovy来实现
import groovy.json.JsonSlurper

def json=vars.get("fieldData")
JsonSlurper jsonS = new JsonSlurper()
def s = jsonS.parseText(json)

def makeCS(s){
    s.each { key, value -> 
    if (value instanceof List){
        log.info("pass")
        }else if(value instanceof java.util.LinkedHashMap){
            makeCS(value)
        }else if(value instanceof String){
        vars.put(key,value)
    }else{
    vars.put(key,String.valueOf(value))
    }
   }    
}

makeCS(s)
虽然代码看起来要更复杂一些,但是我们比较压测结果就知道性能差异:
  • python执行报告:
    image.png
  • groovy执行报告:
    image.png

相关文章

网友评论

      本文标题:jmeter使用groovy实例

      本文链接:https://www.haomeiwen.com/subject/fobvjdtx.html