- 浏览: 21090 次
- 性别:
- 来自: 南京
最新评论
摘自:性能测试进阶指南 基础
说起性能测试大家常会提到负载,压力,并发,而且容易混为一谈。那么我们在接受到性能测试任务时,首先需要沟通这个功能需求的性能测试点在哪儿,需要对哪些地方采取性能测试。
根据具体的业务去分析需求点,知道每种性能测试类型侧重点各是什么?你的需求是否需要用到。
一.确定需求
这个系统最关心的是什么?整个系统的能容纳的用户量(公安网,有十三亿人口的身份证)?某一时间段,某个业务的集中访问?同一时间的真并发?长时间满负荷的工作?应急方案:集群?流控?队列?
二、需求分类
1.负载测试(Load testing):在一定的软硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的要求范围内,以此确定系统所能承载的最大用户数、最大有效用户数以及不同用户数下系统响应时间和服务器的资源利用率。
负载测试强调的是在一定环境下系统能够达到的峰值指标,大多数性能测试都是负载测试。
2.压力测试(Stress Test):在一定的软硬件及网络环境下,模拟大量虚拟用户向服务器发起请求,使服务器资源处于极限状态下并长时间连续运行,以测试服务器在高负载下能否稳定运行。
与负载获取峰值数据不同,压力强调极端情况下的系统稳定性,此时处理能力已经不重要了。
因为系统一旦上线,就有可能会长期处在大用户的访问状态,可能以前没发现的一些问题就会暴漏出来。比较典型的就是内存溢出。
3.容量性能测试(Volume test):在一定的软硬件及网络环境下,在数据库中构造不同数量基本的数据记录,运行一种或多种业务,在一定虚拟用户数量的情况下,获取不同数量级别的服务器性能指标。
容量与负载的区别在于,容量关心how much,负载关心how much和how fast。
how much:最大承受量,如系统最大用户数,最大存储量,最多处理的数据流量等。
容量测试也包含可伸缩性测试:硬件的可伸缩性和软件的可伸缩性。
a.硬件的可伸缩性:
增加cpu个数,增加存储器空间等。
b.软件的可伸缩性:
是否可以通过运行更多的实例或采用分布式来处理来支持更多的用户。
随负荷的增加响应时间也线性增加。如此便可通过线性增加硬件、实例、或分布式来处 理更多的数据,即不增加响应时间的前台下增加支持更多的用户。
4.配置测试(Configuration test):在不同的软硬件及网络环境下,运行一种或多种业务,在一定的虚拟用户数量的情况下,获得不同配置的性能指标,用于最佳的设备及参数配置。
5.基准测试(Benchmark test):在一定的软硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测的过程中,通过运行相同的业务场景比较测试结果,确定调优的结果是否达到预期效果,或者为系统的选择提供决策数据。
基准是基于配置测试,通过配置测试得到数据,并将这个数据作为基准来比较每次调优后的性能是否有所改善。
6.并发测试(Concurrency test):通过模拟多个用户并发访问同一个应用,存储过程或数据记录及其他并发操作,测试是否存在死锁、数据错误等故障。
主要是避免数据库或函数方法在并发下的错误。
比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。
三、性能测试方法的选择
1.在编码阶段,当一个函数、方法、存储过程通过单元后,我们便可开展并发和压力测试。
2.在整个功能开发完毕且冒烟测试通过后,便可开展容量测试。
3.功能测试阶段可以同步进行:负载、配置、基准测试。
四、测试的环境
1.硬件 服务器硬件配置,及用于加压客户端压力机的配置,CPU 内存
2.软件 被测系统的架构,前端、中间件、服务器(这里指运行系统软件服务器,如tomcat)、数据库,以及他们的部署位置。
3.网络 网络环境很重要。在上面的几个目的中,除了找出系统性能瓶颈可以在广域网进行,因为这个目的可以不用设置太多的虚拟用户,只要找出系统哪个地方影响了整个系统的性能就行。 其他目的的测试都需要在,局域网进行,不然你压力工具所发送的请求都会卡死在网络的传输过程中。
这里只是告诉在做性能测试时不要想这个测试是属于性能测试的哪一类呢?是并发性测呢?还是压力测试?
在做性能测试时请忘掉分类
这里只是告诉在做性能测试时不要想这个测试是属于性能测试的哪一类呢?是并发性测呢?还是压力测试?我们在做一个性能测试时也不局限在某一分类上,也可能我们的一个测试包含多个分类。
说起性能测试大家常会提到负载,压力,并发,而且容易混为一谈。那么我们在接受到性能测试任务时,首先需要沟通这个功能需求的性能测试点在哪儿,需要对哪些地方采取性能测试。
根据具体的业务去分析需求点,知道每种性能测试类型侧重点各是什么?你的需求是否需要用到。
一.确定需求
这个系统最关心的是什么?整个系统的能容纳的用户量(公安网,有十三亿人口的身份证)?某一时间段,某个业务的集中访问?同一时间的真并发?长时间满负荷的工作?应急方案:集群?流控?队列?
二、需求分类
1.负载测试(Load testing):在一定的软硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的要求范围内,以此确定系统所能承载的最大用户数、最大有效用户数以及不同用户数下系统响应时间和服务器的资源利用率。
负载测试强调的是在一定环境下系统能够达到的峰值指标,大多数性能测试都是负载测试。
2.压力测试(Stress Test):在一定的软硬件及网络环境下,模拟大量虚拟用户向服务器发起请求,使服务器资源处于极限状态下并长时间连续运行,以测试服务器在高负载下能否稳定运行。
与负载获取峰值数据不同,压力强调极端情况下的系统稳定性,此时处理能力已经不重要了。
因为系统一旦上线,就有可能会长期处在大用户的访问状态,可能以前没发现的一些问题就会暴漏出来。比较典型的就是内存溢出。
3.容量性能测试(Volume test):在一定的软硬件及网络环境下,在数据库中构造不同数量基本的数据记录,运行一种或多种业务,在一定虚拟用户数量的情况下,获取不同数量级别的服务器性能指标。
容量与负载的区别在于,容量关心how much,负载关心how much和how fast。
how much:最大承受量,如系统最大用户数,最大存储量,最多处理的数据流量等。
容量测试也包含可伸缩性测试:硬件的可伸缩性和软件的可伸缩性。
a.硬件的可伸缩性:
增加cpu个数,增加存储器空间等。
b.软件的可伸缩性:
是否可以通过运行更多的实例或采用分布式来处理来支持更多的用户。
随负荷的增加响应时间也线性增加。如此便可通过线性增加硬件、实例、或分布式来处 理更多的数据,即不增加响应时间的前台下增加支持更多的用户。
4.配置测试(Configuration test):在不同的软硬件及网络环境下,运行一种或多种业务,在一定的虚拟用户数量的情况下,获得不同配置的性能指标,用于最佳的设备及参数配置。
5.基准测试(Benchmark test):在一定的软硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测的过程中,通过运行相同的业务场景比较测试结果,确定调优的结果是否达到预期效果,或者为系统的选择提供决策数据。
基准是基于配置测试,通过配置测试得到数据,并将这个数据作为基准来比较每次调优后的性能是否有所改善。
6.并发测试(Concurrency test):通过模拟多个用户并发访问同一个应用,存储过程或数据记录及其他并发操作,测试是否存在死锁、数据错误等故障。
主要是避免数据库或函数方法在并发下的错误。
比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。
三、性能测试方法的选择
1.在编码阶段,当一个函数、方法、存储过程通过单元后,我们便可开展并发和压力测试。
2.在整个功能开发完毕且冒烟测试通过后,便可开展容量测试。
3.功能测试阶段可以同步进行:负载、配置、基准测试。
四、测试的环境
1.硬件 服务器硬件配置,及用于加压客户端压力机的配置,CPU 内存
2.软件 被测系统的架构,前端、中间件、服务器(这里指运行系统软件服务器,如tomcat)、数据库,以及他们的部署位置。
3.网络 网络环境很重要。在上面的几个目的中,除了找出系统性能瓶颈可以在广域网进行,因为这个目的可以不用设置太多的虚拟用户,只要找出系统哪个地方影响了整个系统的性能就行。 其他目的的测试都需要在,局域网进行,不然你压力工具所发送的请求都会卡死在网络的传输过程中。
这里只是告诉在做性能测试时不要想这个测试是属于性能测试的哪一类呢?是并发性测呢?还是压力测试?
在做性能测试时请忘掉分类
这里只是告诉在做性能测试时不要想这个测试是属于性能测试的哪一类呢?是并发性测呢?还是压力测试?我们在做一个性能测试时也不局限在某一分类上,也可能我们的一个测试包含多个分类。
发表评论
-
netstat当我们系统有问题的时候,我们不要急于去调查我们代码,这个毫无意义。我们首要需要看的是操作系统的报告。
2015-11-11 09:43 0http://blog.aliyun.com/896?spm= ... -
Code - 60990 Error: Two Way Communication Error: Function two_way_comm_post_mess
2015-09-14 10:28 657参考:http://www.blogjava.net/qile ... -
压力机疲劳
2015-09-10 16:31 5935个用户,使用一台压力机 5个用户,使用五台压力机 ... -
think_time
2015-09-09 15:56 0loadrunnerjava脚本,使用thinktime。 例 ... -
参数化
2015-09-07 18:40 439我这里写下参数类型为file的 Select Next R ... -
loadrunner 日志打印
2015-09-07 11:29 967参考: http://bbs.51testing.com/th ... -
应用日志对压测的影响
2015-09-06 12:03 5401.AIX小机 压测CPU的sys请求过多 尝试调整日志级 ... -
利用loadrunner代理方式,录制手机客户端脚本
2015-09-02 15:57 2407需要保证手机终端和电脑在同一无线网络内,手机终端可以通过代理将 ... -
sql句柄用尽,在请求数据库全部报错
2015-08-21 14:10 0execute read lnsprdinfo error!s ... -
hessian接口公司逐渐用ssf去替代它了
2015-08-19 17:13 0hession接口脚本 import lrapi.lr; ... -
关联小结
2015-08-19 14:41 619关联:从响应消息中取出我们需要的字段值。 每一次执行时都会变动 ... -
403Forbidden 防火墙拦截
2015-08-18 14:35 11321.小压力跑场景不到1MIN,请求消息都返回失败。 报抓关 ... -
数据库分表性能测试
2015-08-17 17:11 724业务背景: 随着业务发展,单表的数据量已达实际应用推荐的极限, ... -
运行时报错:network buffer size带宽问题
2015-08-17 10:20 991运行时报错: Action.c(8): Error -2660 ... -
杂待分类1
2015-08-10 18:11 01、进程与线程 进程是程序执行时的一个实例,即它是程序已经执行 ... -
同一action,响应时间不一致(回放>场景压测)
2015-08-07 14:24 897同一脚本,响应时间不一样(回放VS场景压测) 回放过程中事务 ... -
回放慢(仅web协议,java正常)
2015-08-06 11:39 496我用loadrunner11.0录制B/S模式的 ... -
响应时间(max & min)
2015-08-04 20:46 1004MAX Response time java脚本, ... -
压测分析1
2015-08-04 20:24 0增加用户无法增加TPS,响应时间较长,系统资源消耗较少。 增加 ... -
This Vuser already started a transaction with the same name, and has not yet
2015-08-04 19:06 1073压测执行报错:This Vuser already start ...
相关推荐
第一部分,关于性能测试知识的分享,分享内容如下: 性能测试基本流程 性能测试需求分析 web页面加载时间重要性 前端页面测试常见优化点 性能测试的基本概念 性能测试指标 服务器指标 网络指标 关键性能指标 性能...
IPB帧编码顺序(解码顺序)与显示顺序
分类器链中标记的预测顺序具有随机性, 分类结果存在着很大的不确定性与不稳定性, 且容易造成错误信息的传播。为此充分考虑标记的局部分布特性, 提出了一种局部顺序分类器链算法, 解决分类器链中分类器顺序问题。实验...
测试虚拟机IO读写性能,测试顺序写、顺序读、随机写、随机读的吞吐量。
【数据结构】线性表顺序表(全)测试代码用C语言C++实现动态及静态顺序表的定义、插入、删除 定义线性表节点的结构.pdf
超市商品分类陈列与陈列顺序案例.doc
混合顺序对三相泡沫性能的影响,刘朝文,张青松,以粉煤灰为例研究了固体颗粒的混合顺序对三相泡沫性能的影响。后混法(先发泡后混合)中,固体颗粒的加入量对起泡性能没有影响,
顺序容器 顺序容器 顺序容器 顺序容器 顺序容器 顺序容器 顺序容器
主要描述了性能测试对结果的分析方法,主要从数据库、内存、网络、服务器响应时间进行分析,并给出了响应的解决方法查找瓶颈时按以下顺序,由易到难。 服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器...
android不用另建工程进行单元测试及改变测试方法执行顺序示例代码
sql测试数据库与顺序插入的小代码,从SQL2005上建立的数据库,但在SQL2000及以上的平台上运行都没有问题。给那些想测试数据库压力或者玩数据库的人一个方便的入门途径,数据库插入代码为网上收集并整理后,在里面...
顺序表及其应用 顺序表及其应用 顺序表及其应用 顺序表及其应用 顺序表及其应用 顺序表及其应用 顺序表及其应用
改代码仅提供顺序表的基本代码,只可参考。谢谢
java 按顺序读取文件 java 按顺序读取文件 java 按顺序读取文件
当同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序时的用法
自动顺序启动与顺序停机.用一个时间继电器实现7台电机顺序启动。3秒启动一个电机。
activity生命周期调用顺序工程与测试日志
此程序支持win32平台也linux平台 此程序说明了顺序队列的生成,入队,出队,测试 注:此程序必须1,2,3同时存在才有效
使用c++实现顺序表的基本操作: 1、顺序表的初始化 2、顺序表的长度 3、顺序表插入元素 4、删除顺序表元素 5、遍历顺序表 6、查找顺序表元素
Webdriver+TestNG测试用例执行顺序