apache hmter是一个100%的纯java桌面应用,用于接口测试和性能测试
可以用静态和动态的资源(文件,java对象,数据库,ftp服务器)的性能进行测试
可以用于对服务器、网络或对象模拟繁重的负载来测试他们的强度或分析不同压力类型下的整体性能

官网:

Apache JMeter - Download Apache JMeter
image.pngimage.png

特点:

  • 提供图形化的结果
  • 能够对http和ftp服务器、数据库进行性能测试
  • 纯java开发,就别可一致性
  • 免费,轻量
  • 多线程
  • 可视化设计允许操作和更精确计时
  • 缓存和离线分析、提供了很多种图形化的测试结果显示方式
  • 扩展性强

    缺点:

  • 无类似于loadrunner的ip欺骗功能

  • 录制功能需要bodboy或者fiddler、使用浏览器代理录制
  • 报表类型较少
  • 工具入门比loadrunner困难
  • 场景设计比loadrunner复杂
  • 纯多线程模式,不支持进程模式
  • 场景控制及干预不如loadrunner方便
  • 大并发时,结果数据不是很准确

    支持的协议:

  • web:http\https

  • soap 简单对象访问协议
  • ftp、tcp
  • ldap轻量目录访问协议
  • 面向消息的中间件(通过jms)
  • 邮件smtp/pop3/imap
  • jdbc/mongodb

    扩展性强:

  • 相比其他http测试工具,jmeter最主要的特点在于扩展性强

  • jmeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装在到内存,让用户通过不同的彩蛋调用

    原理:

  • 以县城的方式来运行的

  • 如果以进程方式来运行,每台负载机上的进程数量就不会运行太多
  • 当我们要大量并发时就需要大量的负载机,这显然不经济的
  • java也是支持多线程的,所以jmeter选择以线程的方式来运行
  • jmeter通过县城组来驱动多个线程运行测试脚本对被测服务器发起负载,每个负载机上都可以运行多个线程组
  • 运行场景不仅可以在gui方式下完成,还可以使用命令行,而且命令行运行的方式对于负载机的资源消耗会更小

    架构图:

    image.png

    • 控制机:
      • 运行多台jmeter负载机进行性能测试时,被选中作为管理及的那台机器就是控制机
      • jmeter控制机也可以参与脚本运行,同时它也担负着管理远程负载机置灰远程负载机运行的任务额,并且手机远程负载机的测试结果
    • 负载机:
      • 向北侧应用服务器发起负载的机器,控制机同时也是一台负载机
      • jmeter负载机受控制机管理
      • 负载机受控制机管理首先要启动一个客户端程序(jmeter-server.bat),这样控制机可以接管负载机
      • 控制机会把运行的脚本隐蔽的发送到远程负载机
      • 如果运行的测试脚本有参数文件以及依赖的jar包,控制机不能把他们发送到远程负载机,这种情况需要手动拷贝
      • 在利用jmeter做性能测试自动化时可以用工具来实现自动拷贝
    • 远程运行顺序
      • 远程负载机首先启动agent程序,待控制机控制
      • 控制机连接上远程负载机
      • 控制机发送指令启动线程
      • 负载机运行脚本,回传状态
      • 控制机手机结果并显示

        目录介绍:

        image.png
  • bin目录:

    • 可执行文件目录,放置各项配置文件(日志,jvm设置等)、启动文件(jmeter启动快捷方式,报告生成快捷方式,heap dump快捷方式等)、启动jar包、示例脚本
    • examples里面存放csv样例
    • jmeter.bat windows的启动文件
    • jmeter.log 日志文件
    • jmeter.sh linux的启动文件
    • jmeter.properties系统配置文件
    • jmeter-server.bat windows分布式测试要用到的服务器
  • docs目录:
    • 帮助文档目录,放置jmeter api离线文档,web方式存放
  • extras目录:
    • 扩展插件目录,目录下的文件提供了对ant的支持,jmeter辅助功能,提供与ant、jenkins集成的可能性
    • ant与jenkins构建性能测试自动化架构
    • ant可以利用xsl脚本把xml格式的测试结果以html方式展示
  • lib目录:
    • 插件目录,里面全是jar包
    • jmeter会自动化在jmeter_home/bin和ext目录下寻找需要的类
    • lib目录下的ext子目录是jmeter的核心jar包
    • 用具扩展所依赖的jar包直接放在lib或lib/ext下
    • jmeter支持运行junit测试类,其测试包放在lib/junit目录下
    • 注意:jmeter需要的包文件均要以.jar结尾,无法是被zip格式的包文件
  • licenses目录:
    • jmeter权限相关信息放在文件夹,全是文本文件,对测试没有任何实际意义
  • printable_docs目录:
    • jmeter的离线帮助文件放置目录,是我们学习jmeter的乡道
    • usermanusal子目录下jmeter用户手册,其中component_reference.html是常用的核心元件帮助手册
  • license:
    • license说明文件
  • notice:
    • 版权声明
  • readme:
    • jmeter简明介绍

      启动:

      点击bin目录下的jmeter.bat

      页面介绍:

      image.png
  • 文件:
    • 新建:创建一个空的jmx文件
    • 模板:对常用的功能使用指导。主要有录制、jdbc测试、webserver测试等,分为基本步骤和详细截图。如果点击用户链接,则会链接到apache jmeter网站查看湘潭西的步骤和截图指导
    • 打开:打开一个已经存在的jmx文件
    • 合并:会将多个jmx合并为一个
    • 保存测试计划:仅保存测试计划,工作台中添加的内容不会被保存
    • 保存测试计划为:将测试计划另存为
    • 选中部分保存为:可以对选中部分另存为jmx,注意另存为食点哪个位置,存的就是那个内容
    • 保存为测试片段:村委一个测试片段,只能线程组、测试计划
    • 还原:将现在的jmx还原为已经保存过的jmx
  • 编辑:
    • 保存节点为图片:将菜单的配置GUI保存为图片
    • 保存屏幕为图片:将整个jmeter接麦你保存为图片
    • 切换:类似于java中设置断点的意思
  • 查找:
    • 查找:搜索所有配置中匹配的项,匹配成功显示为红色
    • 重置搜索:重置搜索,清除搜索结果
  • 运行:
    • 启动:启动运行 测试计划
    • 不停顿开始:无停顿启动运行测试计划
      • 可以忽略定时器
      • 在启动时运行更快
    • 远程启动/停止:指定一个远程agent运行/停止测试计划
    • 远程启动/停止所有:让所有远程agent运行/停止测试
    • 停止:停止执行测试计划
    • 关闭:关闭测试计划
    • 远程关闭:关闭一个指定远程agent
    • 远程关闭所有:关闭所有远程agent
    • 远程退出:指定一个远程agent退出执行
    • 远程退出全部:所有远程agent退出执行
    • 清除:清除选择菜单的执行结果
    • 清除全部:清除所有菜单的执行结果
  • 选项:
    • 外观:jmeter界面样式
    • 日志查看:日志查看器,选中后可以在右下方查看运行日志
    • 日志级别:从什么级别的日志开始记录
    • ssl管理器:导入外置的ssl管理器,用于更好的管理证书,jmeter代理服务器不支持记录ssl(https)
    • 选择语言:选择接麦你的语言,目前支持中文,英文,德语等
    • 全部折叠:折叠所有菜单
    • 全部展开:展开所有菜单
    • 放大:放大界面字号
    • 缩小:缩小界面字号
    • 运行前自动保存:点击勾选,就会在运行前自动保存代码,默认需要手动
  • 工具:
    • 创建一个怼存储:创建jvm崩溃的堆转储,可以用于堆分析工具(jhat)
    • 函数助手对话框:编写脚本的时候,可以使用函数助手可以协助生成指定的代码
    • gemerate html report:用于聚合报告结果文件生成html格式的测试结果
  • 帮助:
    • 这个节点是什么:当鼠标放上去的时候会提示

汉化: