软件性能测试--过程详解与案例分析

不同的人性能的认关注点不同

用户:关注的是响应时间,从用户发出指令到返回的结果完成。有些如服务器返回的数据量大,可以部分优先展示给用户,让用户提前感知到。

系统管理员:关注 系统利用率(服务器的资源使用,应用服务器的资源使用,数据库的资源使用),系统可扩展性(能否实现扩展,系统性能可能的瓶颈),系统的容量(最多能支持多少用户访问,最大业务处理量),系统的稳定性(能否支持7*24小时)。

开发:系统架构,数据库设计,代码,设计与代码这里是列表文本

性能几个重要概念

  • 用户响应时间:用户从发出请求开始到接收到返回结果完成。对于WEB应用来说可以分为呈现时间+服务端响应时间。呈现时间取决于数据在被客户端收到后呈现给用户所消耗的时间(即浏览器接收到响应数据后呈现和执行页面上的脚步所耗费的时间),而服务器的响应时间只应用系统从请求发出开始到客户端收到数据所消耗的时间。其中服务器的响应时间又可以细分,如应用处理时间,系统间的网络消耗时间,数据库的处理时间等。
  • 并发用户数:1、同一时间段内,访问系统的用户数量(在用户进行某些操作时,其实并未给服务器造成压力)(从业务层面考虑)2、服务端承受的最大并发数量,仅从机器考虑。
  • 吞吐量 单位时间内系统处理的客户端请求数量. 对于web系统的性能测试过程中,吞吐量主要以请求数(单击数)/秒。页面数/秒 或字节数/秒。也就是我们所说的QPS
  • 性能计数器 ,即统计cpu利用率,内存使用率等
  • 思考时间,即休眠时间,从业务的角度来讲,该时间指的是用户在进行操作时,每个请求质检的间隔时间。

性能测试测试过程

  1. 计划测试 ,进行需求的手机,典型场景的确定 1.测试设计 ,主要进行测试用例的设计 1.创建vu(vitural user)脚本,根据测试用例创建脚本
  2. 创建测试场景,主要进行测试场景的设计和设置,包括监控指标的设定 1.运行测试场景 主要对已创建的测试场景进行执行,收集相应的数据
  3. 分析结果

性能测试方法:

  1. 验收性测试:如要求系统在100个并发数的条件下进行某操作,响应时间不低于50ms。
  2. 负载测试:找到系统处理能力的极限。方法:检测-加压-性能指标超过预期(如响应时间不超过10s,cpu不低于某值),找到系统的极限值。
  3. 压力测试:指在系统在一定的饱和状态下,如cpu,内存使用情况达到高值时,系统的处理能力,以及是否出现错误。测试系统的稳定性。
  4. 配置测试:改变硬件条件,网络环境,调整应用服务器,数据库的参数等,从而确定各个因素对系统性能的影响,找出影响最大的因素。用于调优和规划性能
  5. 并发测试,主要发现系统中的内存问题,数据库问题,线程/进程问题,或者其他问题,如死锁等
  6. 可靠性测试, 即维持一段时间的压力测试,如2天,看系统是否稳定。
  7. 失效恢复测试,又一台或者部分功能不可用时,系统中的热备份或者负载均衡是否有效,能够保证系统的稳定。

计数器

  1. 系统技术器,如内存,cpu 磁盘IO的,进程,网络等的使用情况
  2. J2EE应用服务器计数器:JVM, JDBC Connection,Excute Queue (执行队列)
  3. 数据库服务器计数器:System(Total Processor TIme 数据库进程占用CPU时间),Memory(缓存命中率等),Lock (锁),I/O 。

服务端性能测试工具架构

  1. 虚拟用户脚本生成器
  2. 压力产生器
  3. 用户代理
  4. 压力调度和监控系统
  5. 压力结果分析工具

测试计划阶段

1、性能测试领域分析(性能测试的目的) 2、用户活动剖析与业务建模(找出用户的关注点和业务模型) 3、确定性能目标 4、制定测试时间计划

测试设计与开发阶段

1、测试环境设计 2、测试场景设计 3、测试用例设计 (测试用例是对测试场景的进一步细化,细化内容包括场景中涉及业务的操作序列描述,场景需要的环境部署等)。

工具

1、单元层面的有Junit4 @Test(timeout = 500) 2、接口层面的,http 接口 curl-loader;Rest接口 (RestClient 库和Jmeter) 3、系统层面的, LoadRunner ,Jmeter

Http参数

  1. Accept-Encoding 如gzip
  2. Connection :keep-alive 长连接
  3. expires : 用于浏览器缓存

提升Web性能的方法

  1. 减少页面加载所需要的时间 1、 减少网络时间 (使用DNS缓存技术,减少需要传输文件的尺寸,加快文件传输速度,CDN)
  2. 减少发送的请求数(利用浏览器缓存,使用合并的图片文件)
  3. 提高浏览器下载的并发数(1、Js文件放在htnl文档的最后 2、使用多个域名,由于每个域名最多保持6个连接数)
  4. 让页面尽早开始显示(将样式表的应用放在html文档的开头,如head标签中(避免了新样式可能带来的重绘)2、 JS放在文档的最后(避免加载JS时,阻止了其他页面元素的显示,这样在用户感受不到加载和执行JS的时间)

转载于:https://my.oschina.net/ouyangtaohong/blog/872891

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值