【jmeter的使用】【性能测试】


前言:使用jmeter进行简单性能测试实践,以百度搜索为例


性能测试基本指标:并发数、吞吐率、响应时间


并发数

并发数:是指在同一个时间点,同时请求服务的客户数量。

TPS吞吐率与QPS查询率

1)Transactions Per Second,意思是每秒事务数。一个事务是指客户端向服务器发送请求然后服务器做出反应的过程,具体的事务定义,可以是一个接口、多个接口、一个业务流程等等。以单接口定义为事务举例,每个事务包括了如下3个过程:
(1)向服务器发请求
(2)服务器自己的内部处理(包含应用服务器、数据库服务器等)
(3)服务器返回结果给客户端
如果每秒能够完成 N 次以上3个过程,TPS 就是 N。
注:TPS 是软件测试结果的测量单位。我们在进行服务性能压测时,接口层面最常关注的是最大 TPS 以及接口响应时间。

2)Queries Per Second,意思是每秒查询率。指一台服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标,比如dns,它不包含复杂的业务逻辑处理,比如数据库中的每秒执行查询sql的次数。QPS 只是一个简单查询的统计显然,不能描述增删改等操作,显然它不够全面,所以不建议用 QPS 来描述系统整体的性能;
注:QPS 基本类似于 TPS,但是不同的是,对于一个事务访问,会形成一个 “ T ”;但一次 " T " 中,可能产生多次对服务器的请求,服务器对这些请求,就可计入 QPS 之中。

3)区别:
(1)如果是对一个查询接口压测,且这个接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS
(2)如果是容量场景,假设 N 个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = N * TPS

响应时间

响应时间:指的是用户从发出请求到接收完响应之间的总耗时,它由网络传输耗时、服务处理耗时等多个部分组成。通常以毫秒(ms)作为单位。

线程并发的设置

  • 线程数:一个线程代表着一个用户;
  • Ramp-Up Period (in seconds): 多长时间内初始化完这些线程(启动所有线程的时间);
  • 循环次数:可以自定义所有线程循环几次,若勾选上永远,则表示不停止或者在设定的限定时间将会一直执行下去;
  • 调度器:调度器时间和Ramp-Up Period (in seconds)时间是采取设置得时间最短得那个执行策略;
    在这里插入图片描述
    上图设置表示:1秒启动10个请求,持续1分钟循环发送;

定时器

1)同步定时器

作用:积攒启动的一定线程数后一次发出,模拟同步并发操作;
在这里插入图片描述
但是同步定时器仅能满足同步并发一定数量的线程;但不能满足如一秒需要发送多少请求的并发数,则需要使用如下准确的吞吐量定时器。

2)准确的吞吐量定时器

作用:使其按指定的吞吐量执行,以每分钟为单位。
在这里插入图片描述

3)常数吞吐量定时器

作用:
在这里插入图片描述
注意:准确的吞吐量定时器Precise Throughput Timer和常数吞吐量定时器Constant Throughput Timer功能类似,但是能更精准的控制请求。区别就是Constant Throughput Timer根据时间来做定时器(到了多少秒就发请求);Precise Throughput Timer是根据吞吐量在做计时器(到了多少量就发请求)。也就是能做到控制请求的速度和个数。

用户自定义变量设置

作用:可以定义一些常用变量,方便请求是参数写入、断言操作
在这里插入图片描述

响应断言

在这里插入图片描述
可添加断言结果:
在这里插入图片描述

聚合报告查看

1)当采用准确的吞吐量定时器:设置每秒3个并发线程,持续10S,根据线程组一秒启动时10个线程,持续循环10S的设置;
运行查看性能聚合报告:
在这里插入图片描述
2)当采用上文设置的常量吞吐定时器:设置一分钟60个样本量,一秒一个样本量,根据线程组一秒启动时10个线程,持续循环10S的设置;
则聚合报告如下:线程组一秒启动10个线程,则每秒吞吐量为10
在这里插入图片描述
3)采用同步定时器:设置模拟用户组的数量为10,延迟时间设置为0,根据线程组一秒启动时10个线程,持续循环10S的设置;
则聚合报告如下:
在这里插入图片描述

聚合报告参数:

  1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
  2. #Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次(如上设置常量吞吐定时器),那么就显示100
  3. Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
  4. Median:中位数,也就是 50% 用户的响应时间
  5. 90% Line:90% 用户的响应时间
  6. Min:最小响应时间
  7. Max:最大响应时间
  8. Error%:错误率——错误请求数/请求总数
  9. Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 :
  10. KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
    性能测试中需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值