上次我们将dubbo接口与jmeter集成起来,但是jmeter是由java实现的,本身有很多限制,无法实现高并发,我们需要借助分布式来实现大压力测试。
在上次的例子中,我们只是实现了简单的dubbo接口测试,下面我们来实现参数化,我们先创建一个txt,并在里面添加入参及出餐:
添加csv config
修改我们写死的beanshell脚本
在修改脚本之后我们来添加一个beanshell断言
在jmeter里单机运行一下
接下来我们来实现jmeter分布式运行,在实现分布式的时候,我们需要区分两个概念,控制端(Controller)和远程执行端(server_slave)。很简单,控制端用来控制脚本执行,而实际的执行由远程执行端来运行。
在配置客户端与远程执行端之前,我们需要在每个安装jmeter的机器上配置jdk环境变量与jmeter环境变量。
Jdk环境变量:
右键计算机属性---》高级系统设置---》环境变量---》
变量名:JAVA_HOME
变量值:C:Program FilesJavajdk1.8.0_91 (即jdk安装的位置)
变量名:Path (这个变量名已在系统变量中存在,现只需在这个值的后面添加以下变量值就可以了)
变量值:;%JAVA_HOME%in;%JAVA_HOME%jrein;
变量名:CLASSPATH
变量值:.;%JAVA_HOME%lib;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;(记住前面的.)
打开cmd,输入java -version 回车,如果输出版本信息则安装成功,提示不是内部或外部命令则表示没有安装成功,可留言或自行百度解决。
Jmeter 安装
由于此软件是绿色版本,所以可解压在任意位置使用,解压后打开Jmeter目录.
右键计算机属性---》高级系统设置---》环境变量---》
变量名:JMETER_HOME
变量值:C:Program Filesapache-jmeter-3.2
变量名:Path (在后面添加以下变量值)
变量值:;%JMETER_HOME%in;
变量名:CLASSPATH
变量值:
%JMETER_HOME%libextApacheJMeter_core.jar;%JMETER_HOME%libjorphan.jar;
同样的,在cmd里运行jmeter,如果出现以下画面,就证明配置正确。
配置server_slave,在server slave上的jmeter/bin下面打开jmeter.properties
可以通过修改server port 为server slave修改监听端口
配置controller,打开controller上的jmeter/bin文件夹下的jmeter.properties
配置好之后,我们先启动server slave
在启动server slave的时候有时候会发现以下报错
在这里我们有两种解决方式
1, 在所有jmeter上进行设置,打开jmeter.properties,修改server.rmi.ssl.disable=true并打开配置
2,在各个jmeter端实现加密,双击运行jmeter/bin 下的create-rmi-keystore.bat
在启动之后,会询问很多问题,问什么回答什么就行
最后一步输入Y生成秘钥,将成功生成的秘钥rmi_keystore.jks 复制到每台jmeter上
通过以上两种方式,可以正常启动server slave与controller。
启动server slave
启动controller 端,并打开之前编写的测试dubbo的脚本。
点击在远端运行
这样,我们的jmeter分布式测试dubbo接口就实现了(过程中牵扯到所有代码以及文件都可以在GitHub上下载到https://github.com/chrisblue0605/dubboSample),希望能帮助到大家。
作 者:Testfan Chris
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接