jmeter中用python实现请求参数的随机方式
作者:wjcaolinghua
首先,需下载Jython插件于https://www.jython.org/download后,将其放入JMeter的lib目录并重启JMeter,其次,添加JSR223PreProcessor并选择Python作为语言,编写脚本,其中metrics_ids3和metrics_weidu3为列表变量
jmeter用python实现请求参数的随机
首先需要下载插件来让jmeter支持python脚本
下载地址:https://www.jython.org/download
下载完成后放到jmeter安装目录的lib文件夹下
放置完成后需要重启jmeter
添加JSR223 PreProcessor,Language下拉框中多2项
选择第一项
添加python脚本
脚本中metrics_ids3和metrics_weidu3的值为列表
import json import random # 原始的metrics id和维度列表 m***s_ids = ${metrics_ids3} m***s_weidus=${metrics_weidu3} # 生成随机组合的函数 def generate_random_combination(ids): return random.sample(ids, random.randint(1, len(ids))) # 生成随机组合指标和维度 chosen_m***s_ids = generate_random_combination(m***s_ids) chosen_m***s_weidus = generate_random_combination(m***s_weidus) # 将chosen_metrics_ids赋值给randomMet***s randomMet***Ids = chosen_met***s_ids randomWeidus= chosen_met***s_weidus # 打印到JMeter日志中(可选) #log_message = "Random Met***s IDs: " + str(randomMet***Ids) +" Random weidus:"+str(randomWeidus) ## 使用print语句在JMeter日志中输出 #print(log_message) # 构造整个请求体 body = { "chosenM***sIds": chosen_met***s_ids, "chosenD***Ids":[] , "timeP***tion": { "statTime": "m***", "beginTime": "202*-02", "endTime": "202*-01" }, "printSql": False, "pageNum": -1 } # 将整个body转换为JSON格式的字符串 body_json = json.dumps(body) # 将body_json设置为JMeter变量 vars.put("requestBodyJson", body_json)
在http请求中添加
body${requestBodyJson}
添加View Results Tree,运行脚本,查看结果
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。