美文网首页
JSR223使用python语言

JSR223使用python语言

作者: _Irving | 来源:发表于2023-03-27 17:35 被阅读0次
    相关测试元件包括:
    • 定时器:  JSR223 Timer
    • 前置处理器:JSR223 PreProcessor
    • 采样器:  JSR223 Sampler
    • 后置处理器:JSR223 PostProcessor
    • 断言:   JSR223 断言
    • 监听器:  JSR223 Listener

    JSR223 可以支持Groovy、Javascript、Python等脚本

    下载python相关jar包

    地址https://search.maven.org/artifact/org.python/jython-standalone
    下载好后将其放到jemter的/lib/ext路径下,重启jmeter就可以了

    image.png
    实例
    1. 下面是测试中遇到一个请求的响应体一部分
        "lists": {
            "datagrid_hkfsbg": {
                "gridId": null, 
                "limit": null, 
                "list": [
                    {
                        "hjszd": "迁移无", 
                        "zhiwu": "", 
                        "dwyb": "", 
                        "glrywlsh": "QY744086", 
                        "dwdh": "", 
                        "gjjzxbh": "", 
                        "gtjkrgjjzh": "", 
                        "gtjkrzjlx": "", 
                        "jtdqfwts": "", 
                        "dkjchlx": "01"
                    }
                ], 
                "start": null, 
                "total": null
            }
        }
    
    1. 但是我们在这个请求后有一个必要的请求的请求体包含如下json格式内容如下:
    [
        {
              "hjszd": "迁移无", 
              "zhiwu": "", 
              "dwyb": "", 
              "glrywlsh": "QY744086", 
              "dwdh": "", 
              "gjjzxbh": "", 
              "gtjkrgjjzh": "", 
              "gtjkrzjlx": "", 
              "jtdqfwts": "", 
              "dkjchlx": "01"
              "__id___": "0", 
              "_row_": "0"
            }            
    ]
    
    1. 我们和前面请求响应体内容一比较,发现这个请求参数值是前面响应体的一部分,只是多了两个键值对
    "__id___": "0", 
    "_row_": "0"
    
    1. 我们使用json提取器获取响应体此部分内容


      image.png
    2. 然后添加JSR223 Sampler(前面添加jar包后,重启后在此处就能选择Python语言)


      image.png
    3. 然后在下面添加我们的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)
    log.info(u"list_new:" + s)
    
    image.png
    1. 然后在jmeter请求中使用${list_new}就可以了

    相关文章

      网友评论

          本文标题:JSR223使用python语言

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