jmeter使用详解

381 阅读4分钟

image.png

一、jmeter介绍

官网:jmeter.apache.org/

JMeter是Apache基金会的一个性能测试工具,用来测试服务器端应用程序的性能。因为简单易用,现在也被社区作为接口测试工具。性能测试用来确认系统是否能承受大量用户,JMeter能模拟大量用户访问网站。接口测试用来验证应用逻辑是否有问题,如打折活动结算金额是否正确。

二、前置补充知识

  • TPS(Transactions Per Second):每秒事务数。一个事务是指客户端向服务器发送请求然后服务器做出反应的过程,具体的事务定义,可以是一个接口、多个接口、一个业务流程等等。以单接口定义为事务举例,每个事务包括了如下3个过程:

    1、向服务器发送请求

    2、服务器自己的内部处理(包含应用服务器、数据库服务器等)

    3、服务器返回结果给客户端

    如果每秒能够完成 N 次以上3个过程,TPS 就是 N。

    TPS 是软件测试结果的测量单位。我们在进行服务性能压测时,接口层面最常关注的是最大 TPS 以及接口响应时间,个人理解 TPS 可以指一组逻辑相关的请求,而服务整体处理能力取决于处理能力最低模块的TPS值。

  • QPS(Query Per Second):每秒查询率。指一台服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标,比如dns,它不包含复杂的业务逻辑处理,比如数据库中的每秒执行查询sql的次数。QPS 只是一个简单查询的统计显然,不能描述增删改等操作,显然它不够全面,所以不建议用 QPS 来描述系统整体的性能;

    QPS 基本类似于 TPS,但是不同的是,对于一个事务访问,会形成一个 “ T ”;但一次 " T " 中,可能产生多次对服务器的请求,服务器对这些请求,就可计入 QPS 之中。

    如果是对一个查询接口压测,且这个接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS

    如果是容量场景,假设 N 个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = N * TPS

  • RPS(Request Per Second):每秒请求数。一般我们将它理解为一个HTTP请求。如果一个事务只有一个接口,那么TPS=RPS,如果这个接口是查询接口,那么TPS=RPS=QPS。用到的也较少

  • RT(Response Time):就是响应时间

  • 吞吐量:用于衡量网络成功传输的数据量,单位是Byte/s,一个系统的吞度量(承压能力)与request对CPU的消耗、外部介面、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统介面、IO影响速度越慢,系统吞吐能力越低,反之越高。也就是说吞吐量一般要根据实际情况看与什么指标关联性更大来判断系统的承受能力。 吞吐量这个概念争议也比较大,有人说吞吐量和TPS一样,实际关系并不是特别大。注:jmeter报告中的吞吐量指的可不是这个,而是TPS

  • 并发数:系统同时处理的request/事物数

  • 响应时间:一般取平均响应时间

三、jmeter安装

安装jmeter之前首先需要安装java环境,因为jmeter是java开发的启动需要依赖jdk

下载地址:jmeter.apache.org/download_jm… image.png

下载后解压,进入bin目录 启动ApacheJMeter.jar即可

四、jmeter使用

设置中文

image.png

1、创建线程组

image.png

20个线程1秒压测报告 image.png

2、创建请求

image.png image.png

3、测试报告输出

3.1、聚合报告

生成步骤

image.png 点击顶部运行按钮即可 image.png

参数详解

  • Label:定义HTTP请求名称
  • Samples:表示这次测试中发出了多少个请求
  • Average:平均响应时长——默认情况下是单个request的平均响应时长
  • Median:中位数,也就是50%用户的响应时长
  • 90% Line:90%用户的响应时长
  • Min:访问页面的最小响应时长
  • Max:访问页面的最大响应时长
  • Error%:错误请求的数量/请求的总数
  • Throughput:默认情况下表示每秒完成的请求数(request per second)
  • KB/Sec:每秒从服务器端接收到的数据量