如何在Jmeter中使用外部的java文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Jmeter中使用外部的java文件相关的知识,希望对你有一定的参考价值。

通常用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变量中。
如图显示我将abc123def字符串截取出123,然后存到jmeter中,这样我就能在jmeter中使用$paramName获取到我处理后的值了。

7
这样对于请求前要加密、请求后要解密的情况,我们就能自己写工具包进行相关数据处理了

参考技术A 通常用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变量中。
如图显示我将abc123def字符串截取出123,然后存到jmeter中,这样我就能在jmeter中使用$paramName获取到我处理后的值了。

7
这样对于请求前要加密、请求后要解密的情况,我们就能自己写工具包进行相关数据处理了

Jmeter引用jar外部文件

一:先用java编写代码

这个需要对参数进行加密,其他的文件需要引用的直接引用;不会写的直接叫java程序员给你代码,复制到你的程序即可(#^.^#)

1.1:建立一个类,把需要动态加入的值作为参数传入,进行处理后可得到加密过后的值

注意:所有的文件都是在【encrypt】下面的,这个会在jmeter里面使用到

技术分享图片

1.2:写完之后,在程序里面使用main方法自己跑一篇,没有问他之后再打成jar包

技术分享图片

 

 1.3:开始生成jar文件

技术分享图片

 

1.4:点击下一步

技术分享图片

1.5:直接点击finish完成,即可

 

二:开始 jmeter

2.1:新建测试计划,并创建新线程、新增BeanShell Sampler

技术分享图片

 

注:在BeanShell Sampler里面script中写入东西之前,要查看Jmeter下面lib/ext里面有没有刚刚导出的jar文件,如果没有手动赋值进去

有很多种引入方式,我今天只用这一种,自己感觉比较方便一些

技术分享图片

 

2.2:确定好 文件已经放在lib/ext下面了,那么开始写入代码引用

技术分享图片

 

 

注:这里的System.out.println("################开始#######################");并没有在log-viewer中显示

 

2.3:想知道有没有引入成功,或者保存变量有木有成功,加一个Debug Sampler,查看

技术分享图片

24:引用成功,也成功的调用的jar里面的方法

 

三:遇到的错误

 

3.1: 在写BeanShell Sampler中调用方法时-多写了个new开始出现了一个错误,我把Tea这个类,把它New出来了,结果运行的时候报错,报错信息如下:

技术分享图片

报错结果:

技术分享图片

这个时候把 new 去掉,重新运行就可以了。这里不需要new 对象,这个方法本身就是静态的方法可以直接通过类名直接调用。

 

上一次也使用调用过成功了,但是过了几个月没用又忘记了;在网上一直找一直找,最后还是决定自己记录下印象比较深刻(#^.^#)。

 

以上是关于如何在Jmeter中使用外部的java文件的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter引用jar外部文件

csvread如何使用

jmeter如何使用使用MD5加密?

如何使用 sed 在特定行上方的 shell 文件中添加新行

在jmeter中引入自己的jar包

如何将参数从Selenium Webdriver传递给JMeter?