本文介绍在jmeter中调用自己写java工具包,并非直接继承jmeter提供的java sample request接口。
工具/原料
- jmeter
- eclipse
方法/步骤
- 通常用jmeter做http请求(或者其他类型)时,有时候要对请求的数据(或者响应的数据)进行特定的处理再进行请求,如加密、解密。
- 这时候我们可以用java自己写一些工具类,利用jmeter提供的beanshell来调用我们的工具类对数据进行处理,然后再进行相关的请求。
- 首先在eclipse写个属于自己的工具类,我写了一个根据左右边界截取字符串的工具类GetStringWithLBRB.java,“选择”你所有写的类文件,“右击”选择导出,“导出”jar包(随便命名,记住该类在eclipse中的包路径即可)
- 然后将导出的jar包放到\apache-jmeter-2.12\lib\ext目录里,在jmeter中创建一个项目,添加一个http request,在这个请求里我们添加一个前置beanshell。
- 在beanshell中导入我们的jar包(包路径既我们在eclipse中看到的路径),beanshell中的两个方法是我们最常用到的:vars.get(String paramStr)、vars.put(String key,String value),前一个是从jmeter中获得变量值,后一个是将数据存到jmeter变量中。
- 比如:
jmeter中有参数param1,那么我们在beanshell中就可以通过
String param2 = vars.get(param1);
这样param2就获取到了jmeter中的参数param1的值了。再比如:
String paramName=“abc123def”;
String paramName1=paramName.Substring(3,6);
vars.put(“paramName”,paramName1);
这样paramName作为参数就存到jmeter中,我就能在jmeter下面步骤中使用${paramName}获取到我处理后的值了。 - 这样对于请求前要加密、请求后要解密的情况,我们就能自己写工具包进行相关数据处理了。