Jmeter之负载测试--在固定吞吐量下测试系统的性能表现

根据之前写的“性能测试之负载测试(生活比喻)”,可知性能测试结果都是有前提的;

本篇主要是说明如何在固定吞吐量下测试系统的性能表现;

还是老套路;

场景

测试百度主页在20 QPS的情况下,响应时间、流量等性能数据;

分析

1、这里的20 QPS应该是指Jmeter发送请求的QPS,而不是服务器处理的QPS;--因为假如我们以20 QPS的速度向服务器发送请求,但是服务器每秒最多只能处理8个请求,那么我们无论如何都无法测得服务器在20 QPS的情况下的性能数据;

2、难点在于让Jmeter【稳定地】以20 QPS的速度向服务器发送请求;

处理思路

利用Jmeter的constant throughput timer来设置Jmeter的请求吞吐量,同时检测服务器的响应时间等性能数据;

操作步骤:

1、为线程组添加“constant throughput timer(固定吞吐量定时器)”;如下图:

2、配置constant throughput timer

名称:定时的名称;

Target throughput:目标(期望)吞吐量,注意,这里的吞吐量不是per second,而是每分钟;

既然是测试在20 QPS情况下的系统表现,那么这里我们应该填 20*60=1200;

calculate throughput based on:这是一个下拉框,表示以**为基础来控制Jmeter的请求吞吐量,
我们这里选择All active threads in current thread group;

说明如下:

--This thread only :分别控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以线程的数量。

如果我们这里选择此种模式,然后设定了是10个线程,那么我们前面的Target throughput就应该填写1200/10=120 或 20/10*60=120了;

--All active threads : 设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。

如果我们这里选择此种模式,然后设定了是10个线程,那么我们前面的Target throughput就应该填写1200/10=120 或 20/10*60=120了;

--All active threads in current thread group :设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。

--All active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。

  All cative threads in current thread group (shared ):与All active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

3、配置线程组属性

前面只是配置了QPS,所以我们接着配置,Jmeter持续发送请求的时间,

(1)在线程属性-循环测试处,勾选上“永远”,(此时旁边的editText就无法输入了);

(2)勾选“调度器”,在持续时间中配置10秒,或在启动时间、结束时间处配置一个时间间隔为10秒的时间区间;

4、添加聚合报告、TPS监听器;

(1)我们以20QPS发送10秒,20*10=200个,聚合报告中215个,比较相近,可看为已达到目的;

我测试多次,有时候是205,有时候是210,这个受多因素影响,接近即可;

(2)看TPS;

也是基本为20QPS,百度服务器完成能胜任20QPS的压力;

5、测试报告

相信大家都发现了,同一个测试计划(此处是20QPS的情况下请求10秒),执行多次的结果不尽相同,吞吐量、响应时间等,所以我们写测试报告的时候并不是只写其中一个报告的测试值;

(1)同一个测试计划运行3次以上,并分别将关注的属性值记下来,比如我测试了5次,关注99%line,5次的值分别是300、344、285、360、380;

(2)将这些值绘制成一个曲线图,得出测试结论,99%Line大概是340ms;

参考鸣谢:

JMeter基础之一 一个简单的性能测试:http://www.cnblogs.com/fnng/archive/2012/12/22/2829479.html

时间: 2024-11-05 13:38:35

Jmeter之负载测试--在固定吞吐量下测试系统的性能表现的相关文章

提高VMware虚拟机下服务系统运行性能方法

因测试环境物理资源有限,往往公司会提供一台配置相对不错的物理服务器让我们在该服务器里面安装多个虚拟主机,如果物理服务器是linux之类的操作系统可以使用docker容器,如果使用的是wind2008等服务操作系统,部分会选择使用VM虚拟机,对于部分测试人员来说使用wind2008等服务操作系统当宿主机,然后在主机里面安装对应的不同类型的VM 虚拟操作系统相对比较容易,但是性能方面也是成为一大问题,下面是关于VM虚拟软件使用前一些优化配置方法建议,提供参考,可以大大提高VMware虚拟机的运行速度

使用JMeter进行负载测试——终极指南

这篇教程讨论的是JMeter,它是一款基于Java的.集合了几个应用程序.具有特定用途的负载和性能测试工具. 本篇主要涉及的内容: 解释一下JMeter的用途 JMeter的实现方式以及采用的技术 安装与配置 介绍用户界面的基本特征 详细介绍不同的测试计划的配置方法 如何分析结果数据 涉及几个重要的最佳实践 所有的例子都是基于Java 8 update 0.20,Eclipse Luna 4.4, JMeter 2.11, MySQL Community Server 5.6.21的开发环境.那

什么是测试环境?如何搭建测试环境?

测试进行软件测试的之前,需要搭建好测试环境.那什么是测试环境呢?     简单的说就是软件运行的平台,即软件.硬件和网络三种环境的合集,也就是说:测试环境=软件+硬件+网络     硬件:包括PC机.笔记本.服务器.各种终端等.例如要测试photoshop软件,是要在PC机上测,还是笔记本上测?是在cpu为酷睿的计算机上测,还是要在炫龙的cpu上测?不同的硬件环境photoshop的处理速度是不一样的.     软件:这里主要指的是软件运行的操作系统.例如测试photoshop,是指window

Jmeter测试结果分析(下)

前文再续,续接上一回.上一篇讲了如何利用Assertion将测试结果进行初步的筛选.那么,当我们拿到了测试结果之后,我们应该如何去看待它们呢?它们又是怎么来的呢? 一.Listener的使用 用过LoadRunner的人应该都知道,LoadRunner会为我们提供一大堆图标和曲线.但是在Jmeter里,我们只能找到几个可怜的Listener来方便我们查看测试结果.但是,对于初学者来说,一些简单的结果分析工具可以使我们更容易理解性能测试结果的分析原理.所以,千万别小看这几个简单的Listener啊

如何在运行时更改JMeter的负载

在某些情况下,能够在不停止测试的情况下更改性能测试产生的负载是有用的或必要的.这可以通过使用Apache JMeter™的恒定吞吐量计时器和Beanshell服务器来完成.在这篇文章中,我们将介绍如何实现这一点,同时提供示例. 在性能测试场景中,负载主要由访问正在测试的应用程序的虚拟用户数量来定义.在JMeter中,虚拟用户实现为线程.其他可以定义测试负载的参数或变量是测试持续时间,思考时间和上升周期.在这篇文章中,我们将要改变的load参数是吞吐量,通过Constant Throughput

Linux负载均衡软件LVS之四(测试篇-完)

一.启动LVS集群服务LVS负载均衡管理和使用有两种方式,一种是以ipvsadm命令行脚步与ldirectord监控方式,一种是以Piranha工具进行管理和使用.下面分别介绍. 1.利用ipvsadm命令行脚步与ldirectord监控方式管理LVS在一切配置完毕之后,依次执行下面的操作启动LVS集群服务.首先,启动每个real server节点的服务:[[email protected] ~]# /etc/init.d/lvsrs  start start LVS  of  REALServ

jmeter get post 压力测试及ab 的压力测试及单个接口xhprof对比

Jmeter  下载和运行 1.官方网站:http://jmeter.apache.org/ 解压后, 运行  "bin/jmeter.bat" Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言 2.实际测试的例子 目标: 测试搜索接口的压力 方法一:请求类型:get  http://api.zintao.com/Search/Search/search?keyword=商品&did=12312

(转)Linux负载均衡软件LVS之四(测试篇-完)

一.启动LVS集群服务LVS负载均衡管理和使用有两种方式,一种是以ipvsadm命令行脚步与ldirectord监控方式,一种是以Piranha工具进行管理和使用.下面分别介绍. 1.利用ipvsadm命令行脚步与ldirectord监控方式管理LVS在一切配置完毕之后,依次执行下面的操作启动LVS集群服务.首先,启动每个real server节点的服务:[[email protected] ~]# /etc/init.d/lvsrs  start start LVS  of  REALServ

# 课下测试ch02

课下测试ch02 1.假设下面位串是基于IEEE格式的5位浮点表示,一个符号位,2个阶码位,两个小数位.下面正确的是(AD) A . 3.5的表示是[01011] B . -1.0的表示[01111] C . 0.5的表示是[00011] D . 1.5的表示是[00110] 解析: 1. IEEE浮点表示: 符号:s通过其值1负和0正决定V的正负,对于V=0另作解释. 尾数:M是一个二进制小数,它的范围是1 – 2-ε,或者0 – 1-ε 阶码:E的作用是对浮点数加权,权重是2的E次幂(可能是