关闭

性能测试

268人阅读 评论(0) 收藏 举报
分类:


1、什么是性能测试

性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统响应时间、TPS(Transation Per Second)、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程。

1)负载测试(Load Testing)

通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。

2)压力测试(Stress Testing)

通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能出于失效状态,并以此来获得系统能够提供的最大服务级别的测试。压力测试,是一种特定类型的负载测试。

3)疲劳强度测试

通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。疲劳强度测试可以反映出系统的性能问题,例如内存泄露等。

2、软件的性能指标有哪些?

1)并发用户数(最佳、最大):应用系统可支持的并发用户数,通常反映系统的容量,即系统的处理能力情况。(最佳:对系统、用户都最佳;最大:系统、用户的最大容忍度)

2)响应时间:从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。包括网络传输时间、web/app服务器处理时间、DB服务器处理时间,但不包括浏览器上的内容显示时间。

3)吞吐量:单位时间内系统处理的客户请求的数量,直接体现应用系统的性能承载能力。

4)TPS(Transation Per Second):应用系统每秒处理完成的交易数量。

5)HPS(Hit Per second):每秒内用户对WEB页面的链接、提交按钮等点击综合。(HPS一般与TPS成正比关系,是B/S系统中非常重要的性能指标之一)

6)资源利用率:指系统在负载运行期间,数据库服务器、应用服务器、web服务器的CPU、内存、硬盘、外置存储,网络带宽的使用率。(一般,<20%为资源空闲;20%-60%为资源使用稳定,60%-80%为资源使用饱和;>80%则需进行资源调整和优化)

CPU使用率:用户进程与系统进程消耗的CPU时间百分比(一般目标:<80%)

内存利用率:iowait/iostat,内存利用率=(1-空闲内存/总内存大小)*100%(一般目标:10%-85%之间)

磁盘I/O:磁盘主要用于存/取数据。一般使用%Dist Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能

网络带宽:一般使用计数器Bytes Total/sec(标示)来度量,

7)事务成功率:一段时间内成功的交易数在总交易数中所占的比例


3、指标监控及分析(待补充)

1)资源指标

Linux系统,free、vmstat、sar、iostat等命令监控内存、CPU、磁盘IO等的使用情况

CPU:下面两种情况则可判断CPU存在瓶颈,1)CPU空闲持续为0;2)运行队列大于CPU核数3-4倍。(应用程序不合理、硬件资源不足、SQL语句等都可能引起CPU瓶颈)

内存:内存可用率在10%-85%之间即可接口,大于85%则存在瓶颈。(空间内存过小可能是内存不足或内存泄露引起)


性能测试 举例:

性能测试前,明确性能目标

系统要处理的最大并发用户数

系统运行高峰时期,响应时间小于X秒

TPS不小于多少

服务器资源利用率不超过80%

运行7*24小时,无明显的内存泄露现象

性能测试前,了解环境(测试环境):

硬件环境:了解被测服务器的硬件配置,用于加压客户端的机子配置,CPU、内存等

软件环境:了解被测系统的架构,前端、中间件、服务器(指运行系统软件服务器,如tomcat)、数据库,以及他们的部署位置

网络环境:找出系统性能瓶颈可以在广域网进行,其他的都在局域网进行。


0
0
查看评论

性能测试应该怎么做?

偶然间看到了阿里中间件Dubbo的性能测试报告,我觉得这份性能测试报告让人觉得做这性能测试的人根本不懂性能测试,我觉得这份报告会把大众带沟里去,所以,想写下这篇文章,做一点科普。 首先,这份测试报告里的主要问题如下: 1)用的全是平均值。老实说,平均值是非常不靠谱的。 2)响应时间...
  • chenjian98306
  • chenjian98306
  • 2016-07-06 14:53
  • 2724

如何做性能测试

性能优化的常见概念 吞吐量(TPS, QPS):简单来说就是每秒钟完成的事务数或者查询数。通常吞吐量大表明系统单位时间能处理的请求数越多,所以通常希望TPS越高越好 响应时间:即从请求发出去到收到系统返回的时间。响应时间一般不取平均值,而是要去掉不稳定的值之后再取均值,比如常用的90%响应时...
  • liweisnake
  • liweisnake
  • 2017-06-08 22:40
  • 2041

性能测试常见指标

1注册用户数         注册用户数指软件中已经注册的用户,这些用户是系统的潜在用户,随时都有可能上线。这个指标的意义在于让测试工程师了解系统数据中的数据总量和系统最大可能有多少用户同时在线。 2在线用户数       ...
  • Tongdingsidong
  • Tongdingsidong
  • 2017-06-26 17:29
  • 651

我学习性能测试及工具的笔记

学习的目的: 1.制定性能测试计划方案 2.进行性能测试需求分析 3.测试脚本开发 4.场景设计 5.测试执行 6.结果分析   开始进入入门阶段的学习 一、性能测试基础知识(学习性能测试过程中一些常见的术语、性能测试划分和性能测试应用的领域) 1.1什么是软件的性能 ...
  • zgnsjl
  • zgnsjl
  • 2014-06-17 12:10
  • 1097

性能测试高端发展方向

业界认为性能测试ROLE划分为 性能测试工程师(偏重编写性能测试脚本、性能测试执行) 和性能测试分析师 (偏重性能分析、系统调优,也需要更加广、深)的知识。根据个人的理解,性能测试高端发展有如下一些方向: 性能调优,架构评估,性能监控,容量规划,应用性能管理。性能调优偏重系统级调优、代码级调优,需要...
  • phphot
  • phphot
  • 2008-03-11 22:40
  • 727

性能测试工程师职业现状分析

该报告汇总统计了包括猎聘、拉勾、智联、前程无忧、58同城、中华英才网等主流招聘网站近一周(2016.5.25-2016.6.01)发布的性能测试工程师的招聘信息,主要从对性能测试工程师的技能要求、岗位职责、薪酬待遇、工作经验要求等角度进行统计抽样,以便对性能测试工程师的职业现状做个概要分析。 &...
  • jhyxzsf
  • jhyxzsf
  • 2016-06-03 10:27
  • 2664

性能测试面试题汇总(一)

Q1:什么是负载测试?什么是性能测试?   A1:负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间规定不超过1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量。   性能...
  • star890124
  • star890124
  • 2015-06-11 16:58
  • 3508

分布式系统性能测试框架

分布式系统性能测试框架 1.  分布式系统性能测试介绍 2.  测试框架
  • chenglinhust
  • chenglinhust
  • 2015-09-08 16:46
  • 1914

第十三讲、jmeter分布式性能测试

1、为何进行分布式测试     一台计算机能运行的线程数是有限的,在1.4GHz~3GHz的CPU、1GB内存的JMeter测试机上,可以处理的Jmeter线程就只有100~300个。比如某个接口测试的场景是支持1200的并发, JMeter就可能在运行800个线程左...
  • aisemi
  • aisemi
  • 2017-02-17 08:41
  • 433

第十一讲、jmeter性能测试实战-web程序

1、搭建AUT 第一步、下载所需文件     Discuz_***.zip------源码程序文件,是PHP程序,简体中文GBK的下载地址是http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_GBK.zip。...
  • aisemi
  • aisemi
  • 2017-02-16 21:46
  • 1324
    个人资料
    • 访问:46394次
    • 积分:699
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:12篇
    • 译文:0篇
    • 评论:4条
    最新评论