Jmeter 2.11 分布式测试环境构筑

 

这个题目网络上还是有一些相关资源的,之所以自己重写,是因为自己在构筑的过程中,还是遇到了一些问题,而通常这种”个例”的问题很少会写到教程中。

 

构筑Jmeter运行环境的前提

安装JRE

 

Jmeter分布式测试的架构图

此图中,Controller机器本身也可以作为一台Server机器来执行测试脚本的。

 

Jmeter Server的启动

各个作为server的机器上,要使用jmeter-server.bat脚本来启动,如果执行后显示如下界面则说明脚本执行成功:

Jmeter的服务默认使用1099端口,如果存在其它的服务占用端口时,启用后会显示相关的异常信息,此时就需要修改一个脚本中的端口号了。

jmeter-server.bat脚本中默认是不设置SERVER_PORT这个环境变量的,当有端口冲突时,我们可以自己来指定个不冲突的端口,但要请记住此端口,我们后边会用到的。

 

服务启动后,我们还需要确认下这个端口是否可以远程访问。在其它机器(最好是Controller机器上)使用telnet命令来确认:

执行此命令后如果可以输入状态,而不是提示”连接被拒绝”,则表示此端口可以正常使用。如果无法连接,请确认网络、IP、防火墙是否都正确配置了(此部分就不在这讨论了)。

 

Jmeter Controller的启动

Controller还是使用jmeter.bat脚本启动,但启动前请先修改下jmeter.properties配置文件:

其中由于本机的1099端口被占用了,所以改用了9111端口,在此配置文件中追加正确的Server信息(IP:Port,如果是默认端口的,可以省略)。

 

保存配置文件后,再打开jmeter.bat脚本,此时”远程启动”中已经多出了我们配置好的几个Jmeter Server内容。我们可以指定在某个Server上运行测试,也可以选择在全部的机器上进行并发测试。

 

注意项

  1. Jmeter Server的端口号问题。可能会由于端口被占用、网络不通、防火墙拦截等原因造成无法正常工作,要解决这个问题必须要有一定”排除服务器网络问题”的能力才行;
  2. 测试脚本的执行。各个Jmeter Server上是不需要有脚本的,Controller机器在执行测试时,会自动把脚本同步到远程的主机上。这里需要注意的是:如果脚本中有引用外部资源时(如CSV文件),资源文件是必须要手动复制到各个Jmeter Server上的,而且要路径要保证一致。如果要想简化此操作,可以考虑把资源文件放到网络共享中,这样只要所有机器都可以访问到的资源就可以直接使用了。
  3. 只有Controller机器上是有GUI界面的,其它Server机器上都是命令窗口,测试结果也是显示的Controller的界面上的。
  4. 线程数。通过google,大部分人建议一台机器上的线程最大在200~300左右,不要过多,否则机器可能吃不消的。