jmeter

jmeter 特点:

1.能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC) 这个功能比较强大

2.完全的可移植性和100%纯java 所以在任何平台下都可以运行

3.完全多线程 框架允许通过多个线程并发取样和通过单独的线程组队不同的功能同时取样  比较灵活

4.各种负载统计表和可链接的计时器可供选择 这个也比较强大  最新版的jmeter的统计比较以往的jmeter的统计,一般比以往的强大很多,但是在友好性方面丰富性方面如果和loadrunner比起来还是要逊色一点

5.数据分析和可视化插件提供了很好的可扩展性以及个性化  jmeter的扩展性可能比loadrunner的扩展性要好一点,可以自己开发插件添加进去都没有问题

6.具有提供动态输入到测试的功能

服务器模式启动:jmeter-server.bat 允许在远程节点上以服务器模式运行jmeter,并通过jmeter gui来控制

jmeter工作原理有两种:1,通过自己手写性能脚本然后通过jmeter去压测2,通过浏览器录制的方法然后通过jmeter多线程去压测(这块跟loadrunner差不多)

jmeter目录结构

bin目录是可执行文件,jmeter.bat启动,里面可以设置jvm参数

根据经验,heap最多设置为物理内存的一半,默认设置为512M,如果heap超过物理内存的一般,可能运行jmeter会慢,甚至出现内存溢出

jmeter的log在jmeter.log中查看

jmeter.properties文件中有一个属性log_level.JMeter

可以设置改变日志详细度,默认是info,可以改为debug

安装jmeter后(如果安装的是jmeter4.0刚安装完后是英文界面,更改可以点击option-——》choose language -——》Chinese simplified,然后就可以啦!)

打开jmeter 在test plan右击添加线程组

线程:

一般常用线程组:可以理解为loadrunner中的虚拟用户组

setup thread group:可用于执行预测试操作,这些线程的行为完全想一个正常的线程组元件,类似loadrunner中的init

teardown thread group:可用于执行测试后动作,这些线程的行为完全像一个正常的线程组元件,类似loadrunner中的end

JMeter的两种录制,不推荐第二种(应用型不太好)

  • 录制1

      jmeter+badboy

      下载安装badboy后打开(打开badboy后默认是录制状态可以点击红色圆形按钮停止录制)点击录制---->在工具栏中输入被测试        项目地址----录制完成后点击旁边的黑色按钮,结束录制,选择"文件"--->Export to jmeter....          打开jmeter工具,选择"文件"---          >"打开"刚才保存的文件(.jmx类型),打开文件导入进来

  • 录制2

         代理

  •  在JMeter中创建一个线程组(右键点击"测试计划"-->"添加"---->"线程组")
  • 在"工作台"--->"非测试元件"--->添加"HTTP代理服务器"
  • 代理服务器的端口,默认是8080(我的是8888),可自行修改,但不要与其他应用端口冲突
  • 目标控制器:录制的脚本存放的位置,可选择项为测试计划中的线程组(根据实际来选择即可)
  • 分组:对请求进行分组."分组"的概念是将一批请求汇总分组,可以把url请求理解为组
  •  - "不对样品分组":所有请求全部罗列

        - "在组间添加分隔" :加入一个虚拟的以分割线命名2的动作,运行同"不对样本分组",无实际意义

        - "每个分组放入一个新的控制器" :执行时按控制器给输出结果

  • "只存储每个组的第一个样本" :对于一次url请求,实际很多次http请求的情况
  • 点击启动
  • 在IE中选择"浏览器选项"--->"连接"--->"局域网设置"--->"代理服务器"--->将两个都勾选,地址是本机所以填写localhost,端口一定要和JMeter中配置的端口一致,点击确定(如下图,我JMeter中默认设置的8888)jmeter
  • 重启IE浏览器后输入测试网址,进行录制
  • 录制完成后,点击JMeter中的停止就可以(一定把IE设置中的代理服务器关掉否则在以后的浏览网址时会有很多不确定因素)