美文网首页
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