性能-Jmeter

官网地址:http://jmeter.apache.org/

下载地址:http://jmeter.apache.org/download_jmeter.cgi

下载慢可以更换其他镜像地址下载

启动方式:下载后,启动bin目录下的jmeter.bat (windows)

修改jmeter为中文

临时:Options -> Choose Language -> Chinese(Simplified)

永久:在bin目录下找到配置文件jmeter.properties,

搜索language,将language=en,改为language=zh_CN

操作:

创建压测计划(Hello World)

(1)测试计划(右键)-> 添加 -> 线程(用户) -> setUp线程组

(2)线程数和Ramp-up时间 都填写 10

(3)线程组右键 -> 添加 -> 取样器 -> HTTP请求 -> 填写服务器ip,端口号,路径

(4)如果需要添加头信息,在配置元件中->HTTP信息头管理器

(5)线程组右键 -> 添加 -> 监听器 -> 查看结果树

(6)点击头部绿色启动箭头开始压测,再点击否,开始执行

概念

  • 线程组:一组线程并发执行,每个线程就是一个请求

  • 线程数:线程组内的线程个数,模拟并发数

  • 准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,比如100个线程,20秒,则表示20秒内 100个线程都要启动完成,每秒启动5个线程

  • 循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环

  • 特殊线程组

    • setUP:最先执行,前置工作
    • 线程组:中级执行,常规处理
    • tearDown:最后执行,收尾工作
  • 聚合报告(Aggregate Report)

    • lable: sampler的名称
    • Samples(样本): 一共发出去多少请求,例如10个用户,循环10次,则是 100
    • Average(平均值): 平均响应时间
    • Median(中位数): 50% 用户的响应时间
    • 90% Line : 90% 用户的响应不会超过该时间 (90% of the samples took no more than this time. The remaining samples at least as long as this)
    • 95% Line : 95% 用户的响应不会超过该时间
    • 99% Line : 99% 用户的响应不会超过该时间
    • min : 最小响应时间
    • max : 最大响应时间
    • Error%:错误的请求的数量/请求的总数
    • Throughput: 吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps
    • KB/Sec: 每秒接收数据量

性能测试的关键点

  • TPS
    • Transactions Per Second 每秒事务数, 可以是一个接口、多个接口、一个业务流程
    • 包括增删改操作
  • QPS
    • Queries Per Second, 每秒查询数, 指一台服务器每秒能够响应的查询次数
    • QPS 只是一个简单查询的统计,不能描述增删改等操作
    • 如果单压测查询接口 TPS=QPS
  • RT
    • 响应时间