一.JMeter介绍1.JMeter是JAVA桌面应用程序用于测试客户端/服务端结构的软件1.1.JMeter用来测试静态和动态资源的性能1.2.JMeter用于模拟大量负载来测试一台服务器网络或者对象的健壮性或者分析不同负载下的整体性能2.JMeter帮助应用程序进行回归测试通过创建的测试脚本和assertions来验证程序返回所期待的值2.1.JMeter允许调用二次开发的jar包来丰富测试场景2.2.JMeter允许使用正则表达式来创建这些assertions二.JMeter与LoadRunner比较1.JMeter是开源测试工具虽然与LoadRunner相比有很多不足1.1.比如它结果分析能力没有LoadRunner详细2.JMeter优点2.1.JMeter它是开源的免费软件使用它不需要支付任何费用2.2.JMeter相比LR的庞大它非常小巧不需要安装2.2.1.但需要JDK环境因为它是使用Java开发的工具2.3.Jmeter是简单的web性能测试工具现在可以完成数据库、FTP、LDAP、WebService等方面的测试2.3.1.JMeter因为它的开源性当然也可以根据需求扩展它的功能2.3.2.JMeter可以测试性能可以测试接口甚至可以通过加载浏览器驱动完成UI自动化的工作2.4.两者最大的区别Jmeter不支持IP欺骗而LR支持3.JMeter缺点3.1.使用JMeter无法验证JS程序也无法验证页面UI3.2.所以Jmeter要须要和Selenium配合来完成Web2.0应用的测试四.JMeter下载安装1.下载最新版本的JMeter解压文件到任意目录(http://jmeter.apache.org/)2.安装JDK配置环境变量JAVA_HOME2.1.JDK环境变量https://www.cnblogs.com/du-hong/p/11670441.html3.JMeter2.11需要JDK1.6以上的版本支持运行4.JMeter可以运行在UnixWindows系统等5.应当避免Jdk路径与Jmeter路径有中文和空格否则会有异常会导致远程测试出现问题6.JMeter插件下载 http://jmeter-plugins.org/downloads/all/7.插件解压找到jmeter-plugins-manager.jar7.1.把jmeter-plugins-manager.jar放到apache-jmeter-5.5\lib\ext目录五.JMeter运行1.JMeter启动方法一1.1.进入bin目录双击运行jmeter.bat启动Jmeter1.2.注意打开的时候会有两个窗口JMeter的命令窗口和JMeter的图形操作界面1.2.1.不可以关闭命令窗口2.JMeter启动方法二2.1.进入bin目录双击ApacheJmeter.jar包运行2.2.注意打开会有只有一个窗口JMeter的图形操作界面和上边的不一样六.JMeter目录结构解析1.根目录Jmeter安装包解压后的根目录2.根目录说明(由上到下)2.1.backup目录脚本备份目录里边的文件都是以.jmx后缀结尾的文件2.1.1.实际开始安装解压后是不存在这个目录的2.1.2.这是由于使用过JMeter后JMeter自动创建这个目录然后备份了脚本文件2.2.bin目录可执行文件目录2.3.Jmeter.bat是启动Jmeter的主脚本打开Jmeter主界面2.4.Jmeter-server.bar是用来实现联机负载2.5.Jmeter.properties是Jmeter主要的配置文件超过80%的配置项都是通过这个文件实现2.5.1.(修改配置文件后要重启Jmeter才能生效)2.6.Jmeter使用的日志文件名称被定义到Jmeter.properties中在Jmeter.log可查看日志2.7.dosc目录docs目录下的文件是JMeter的JavaDocs2.7.1.而printable_docs的usermanual子目录下的内容是JMeter的用户手册文档2.7.2.其中component_reference.html是最常用到的核心元件帮助文档2.7.3.该目录下存放的是Jmeter官方文档的API文档主要是用于二次开发2.8.extras目录该目录下的文件提供了对构建工具Ant的支持可以使用Ant来实现测试自动化2.8.1.例如批量脚本执行产生HTML格式的报表测试运行时可以把测试数据记录下来2.8.2.Jmeter会自动生成个.jtl文件将该文件放到extras目录下运行“ant-Dtest文件名 report”2.8.3.就可以生成测试统计报表也可以用于持续集成2.9.lib目录该目录包含两个子目录2.9.1.其中ext子目录存放有JMeter的核心jar包另一个junit子目录存放JUnit测试脚本2.9.2.用户扩展所依赖的包应该直接放到lib目录下而非lib/ext下2.10.注意无法识别zip格式的包文件所以需要的包文件均要求以.jar结尾2.11.Licenses jmeter软件许可文件目录2.12.printable_docs目录该目录存放的是Jmeter官方提供的帮助文档2.12.1.printable_docs的demos子目录下有常用的JMeter脚本案例可以作为参考2.14.LICENSEJMeter许可说明2.15.NOTICEJMeter简单信息说明2.16.README.mdJMeter官方基本介绍3.打开backup文件目录4.打开bin文件目录4.1.examples目录下包含Jmeter使用实例里面是csv样例4.2.ApacheJMeter.jarJMeter源码包4.3.jmeter.batwindows的启动文件4.4.jmeter.logJmeter运行日志文件4.5.jmeter.shlinux的启动文件4.6.jmeter.properties系统配置文件4.7.jmeter-server.batwindows分布式测试要用到的服务器启动负载生成器服务文件4.8.jmeter-serverLinux下启动负载生成器文件4.9.shutdown.cmdwindows下Jmeter关闭文件4.10.stoptest.cmdwindows下Jmeter测试停止文件5.打开docs文件目录6.打开lib文件目录七.JMeter配置文件1.jmeter.properties配置文件Jmeter运行的关键配置#默认语言设置 languageen #捕捉cookie开关CookieManager.save.cookiestrue#配置编辑器的字体和尺寸 jsyntaxtextarea.font.family宋体 jsyntaxtextarea.font.size20#配置默认编码格式 sampleresult.default.encodingUTF-8#SSL配置重点关注下面几个配置# 指定HTTPS协议层 # 指定HTTPS协议层 https.default.protocolTLS# 指定SSL版本实际应用中可能需要修改 https.default.protocolSSLv3# 设置启动的协议 https.socket.protocolsSSLv2HelloSSLv3TLSv1# 缓存控制控制SSL是否可以在多个迭代中重用 https.use.cached.ssl.contexttrue#JMeter测试项目自动备份配置 # 设置是否启用自动备份默认是truejmeter.gui.action.save.backup_on_savetrue# 设置自动备份目录默认备份至JMeter根目录的backups下 jmeter.gui.action.save.backup_directory# 设置自动备份项目数默认为最近10个 jmeter.gui.action.save.keep_backup_max_count10#远程主机配置 # 配置远程主机的IP默认为本机。用逗号,可以设置多个远程主机 remote_hosts127.0.0.1# 多个远程主机指定示例如下其中:后为端口 remote_hosts127.0.0.1:1099,127.0.0.1:1200,127.0.0.1:1300# 对于RMID的配置请直接看配置文件中的选项说明 #日志管理配置 # 设置日志格式 log_format_typedefault# 设置日志输出级别 log_level.jmeterINFO# 设置junit日志输出级别 log_level.jmeter.junitDEBUG# 设置日志输出目标文件默认为 jmeter.log log_filejmeter.log # jmeter.bat关键配置修改 #为更优化的使用Jmeter需要对jmeter.bat中的配置根据当前机器的配置进行优化 #这里进行关键配置项说明大家根据自己的机器的配置来进行修改 #jvm相关配置在80行左右找到这些配置对其中的数值根据当前机器的硬件配置来修改 setHEAP-Xms2048m-Xmx2048msetNEW-XX:NewSize512m-XX:MaxNewSize512m setSURVIVOR-XX:SurvivorRatio8-XX:TargetSurvivorRatio50%setTENURING-XX:MaxTenuringThreshold2if%current_minor%LEQ8(remIncreaseMaxPermSizeifyou use a lot ofJavascriptin yourTestPlan:setPERM-XX:PermSize512m-XX:MaxPermSize1024m)# 设置输出报告模板格式 jmeter.save.saveservice.output_formatcsv2.system.properties配置文件定义Java进程的系统变量通过System.getProperties()可查询3.user.properties配置文件自定义配置可覆盖jmeter.properties七.Jmeter拓展1.Jmeter配置文件可能存在优先级关系好像user.properties会覆盖jmeter.properties1.1.一般修改配置都是修改或者添加user.properties不建议修改jmeter.properties2.Jmeter通过修改reportgenerator.properties的下面配置可以减少采样时间增加采样精度2.1.Jmeter生成的报告的其他内容也可以在这里修改建议这些修改都放到user.properties里面去3.修改jmeter.properties里的这些配置可以控制报告DashBoard的显示时间3.1.建议这些配置放到user.properties里面去4.输出的控制报告的显示时间