JMeter是一款非常不错的免费开源压力测试工具,越来越多的公司在使用。不过,在使用过程中可能会存在一些问题,比如:GUI模式非常消耗资源,单个客户端测试无法达到目标压力。而使用非 GUI 模式,即命令行模式运行JMeter测试脚本能够大大缩减所需要的系统资源,使用远程启动模式也可以像Loadrunner那样进行分布式测试。下面跟随小编一起来看看吧。

工具/原料

 
  • JMeter安装包
  • 一台客户机
  • 一台服务器

非GUI模式下运行JMeter

 
  1. 1

    非GUI模式包括在Windows和Linux下运行,小编在这里演示Windows下使用DOS命令运行,Linux下与之类似。

  2. 2

    使用Badboy录制脚本导入JMeter后调试脚本正常运行,并配置好线程数、循环数、调度器等,如下图:

  3. 3

    在命令行中输入:cmd进入DOS命令窗口,再进入JMeter安装的bin目录,如下图:

  4. 4

    DOS命令执行语法:jmeter -n -t <testplan filename> -l <listener filename>。

    --当前目录运行

    JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录。如果在D:\E\02_Test\A2_性能测试\JMeter\apache-jmeter-2.13\bin目录下执行以上命令,JMeter会去该目录下寻找product_select.jmx脚本并把执行结果放在该目录。

    --其他目录运行

    如果脚本在其他目录,并且执行结果存放到其他目录,需要使用绝对路径,如:jmeter -n -t D:\E\02_Test\A2_性能测试\JMeter\JMeter脚本\product_select.jmx -l D:\E\02_Test\A2_性能测试\JMeter\JMeter测试结果\product_select_20160311001.jtl

  5. 5

    product_select_20160311001.jtl是刚才执行测试的结果,使用JMeter图形界面打开即可看到查看详细报告内容,如下图:

    END

远程启动JMeter

 
  1. 1

    JMeter客户端和JMeter远程服务器安装好JMeter,并配置JVM环境变量,使用java -version命令来检测JDK是否安装成功,如下图:

  2. 2

    JMeter客户端和JMeter远程服务器网络环境能够互通,使用ping命令来检测,小编这里客户端IP为:192.168.20.242,服务端为:192.168.5.90,检测结果如下:

  3. 3

    在JMeter远程服务器上运行JMETER_HOME/bin/jmeter-server (UNIX)或者JMETER_HOME/bin/jmeter-server.bat(Windows)脚本,小编这里是UNIX服务器,使用命令:./jmeter-server -Djava.rmi.server.hostname=192.168.5.90,如下图:

  4. 4

    在JMeter客户端上修改/bin/jmeter.properties文件,找到属性"remote_hosts",使用JMeter远程服务器的IP地址作为其属性值。可以添加多个服务器的IP地址,以逗号作为分隔。

    例如:

    #remote_hosts=127.0.0.1

    remote_hosts=192.168.5.90:1099,192.168.5.91:1099,192.168.5.92:1099

  5. 5

    在JMeter客户端上远程启动,JMeter客户端会自动向JMeter远程服务器上分发测试计划,可以查看远程服务器执行情况,执行完成后在客户端可以查看具体执行结果,如下图:

    END

注意事项

 
  • 非GUI模式下运行JMeter和远程启动JMeter都要先配置好JMeter测试策略

最新文章

  1. 【原】Github系列之二:开源 一行代码实现多形式多动画的推送小红点WZLBadge(iOS)
  2. Regex
  3. Win7虚拟机无法打开内核设备:\\Global\\vmx86
  4. Expect 初学
  5. iOS开发 判断用户是否开启了定位
  6. Apache的Order Allow Deny心得
  7. java集合框架复习(一)
  8. simhash--文本排重
  9. hdu 2665 Kth number_划分树
  10. HDU 5889 (最短路+网络流)
  11. 版本工具:truck tag branch区别
  12. Spring消息之JMS.
  13. Python爬虫入门教程 46-100 Charles抓取手机收音机-手机APP爬虫部分
  14. Entity Framework入门教程(12)--- EF进行批量添加/删除
  15. 5种网络IO模型
  16. B. School Marks(典型贪心)
  17. Linux pwn入门教程——格式化字符串漏洞
  18. Atitit 大龄软件工程师的出路attilax总结
  19. November 30th 2016 Week 49th Wednesday
  20. IE各浏览器HACK

热门文章

  1. 微信小程序的那些坑
  2. Leetcode 467.环绕字符串中的唯一子字符串
  3. vue-resource发送multipart/form-data数据
  4. 文本生成器(bzoj 1030)
  5. 【CF732D】Exams(线性扫描,贪心,二分)
  6. C语言的二次实验报告
  7. Lua开发环境搭建(Mac OS X)
  8. js-数字渐增到指定的数字,在指定的时间内完成(有动画效果哦)插件jquery.animateNumber.js
  9. python笔记4:高级特性
  10. VUE之命令行报错:Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead 解决办法