Jmeter在Idea上编写BeanShell

    xiaoxiao2022-07-03  184

    环境搭建

    1、下载Jmeter源码:http://jmeter.apache.org/download_jmeter.cgi 2、导入源码至Idea,参考:https://blog.csdn.net/lijing742180/article/details/85295967

    编写脚本

    BeanShellTestElement.java在目录:src/core/util/BeanShellTestElement,在该类下新增一个方法:

    private void mBeenShellScript(JMeterContext jmctx, JMeterVariables vars, Properties props, String SampleResult,int ResponseCode,String ResponseMessage,boolean IsSuccess,String Label,Logger log){ String marketPrice_ALL = vars.get("marketPrice_ALL"); String outerSkuCode_ALL = vars.get("outerSkuCode_ALL"); String sellPrice_ALL = vars.get("sellPrice_ALL"); String sellableNum_ALL = vars.get("sellableNum_ALL"); String[] marketPriceArr= marketPrice_ALL.split(","); String[] outerSkuCodeArr = outerSkuCode_ALL.split(","); String[] sellPriceArr = sellPrice_ALL.split(","); String[] sellableNumArr = sellableNum_ALL.split(","); String[] skus = new String[marketPriceArr.length]; for (int i = 0; i < marketPriceArr.length; i++) { Map map = new HashMap(); map.put("outerSkuCode", outerSkuCodeArr[i]); map.put("sellPrice", sellPriceArr[i]); map.put("marketPrice", marketPriceArr[i]); map.put("sellableNum", sellableNumArr[i]); log.info(marketPriceArr[i]); log.info(outerSkuCodeArr[i]); log.info(sellPriceArr[i]); log.info(sellableNumArr[i]); String jsonStr = new Gson().toJson(map); skus[i]=jsonStr; } vars.put("skus",Arrays.toString(skus)); log.error(Arrays.toString(skus)); }

    运行脚本

    把代码复制到Jmeter运行

    注意事项

    Jmeter不能使用泛型

    HashMap<String, String>不能使用:

    //在Jmeter上会报错 HashMap<String, String> map = new HashMap<>();

    需要使用Map的时候,使用以下语句:

    Map map = new HashMap();

    使用Jar包

    在Jmeter上添加Jar包 使用绝对路径,如:D:gson.jar使用相对路径,如:./gson.jar把jar包放置在jmeter下的lib目录 在BeanShell上import用到的类
    最新回复(0)