性能测试技术调研

一、什么是性能测试

   性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。【百度百科】
    性能测试在软件的质量保证中起着重要的作用,包括在客户端的测试、网络和服务器端的测试。
  • 客户端测试:它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点。
    负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。
    压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。例如限时抢购,是一种短时间内把系统负载压到极限的例子。
  • 网络端测试:应用在网络上性能的测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。
  • 服务端测试:对于应用在服务器上性能的测试,可以采用工具监控。

二、性能测试的范围

软件性能测试的目的主要有以下三点:

  • 评价系统当前性能,判断系统是否满足预期的性能需求。
  • 寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。
  • 判定软件系统的性能表现,预见系统负载压力承受力,在应用部署之前,评估系统性能。

三、性能测试的工具

  • LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。
  • Apache JMeter,是基于Java的压力测试工具,它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
  • PerformanceRunner(简称PR),是性能测试软件,通过模拟高并发的客户端,通过协议和报文产生并发压力给服务器,测试整个系统的负载和压力承受能力,实现压力测试、性能测试、配置测试、峰值测试等。
  • NeoLoad是Neotys出品的一种负载和性能测试工具,可真实地模拟用户活动并监视基础架构运行状态,从而消除所有Web和移动应用程序中的瓶颈。NeoLoad通过使用无脚本GUI和一系列自动化功能,可让测试设计速度提高5-10倍,并将维护的脚本维持在原始设计时间的10%,同时帮助用户使用持续集成系统自动进行测试。

四、性能测试的评判标准

对于用户来说,则最关注的是当前系统:

  • 是否满足上线性能要求?
  • 系统极限承载如何?
  • 系统稳定性如何?

性能测试监控关键指标说明:

资源指标:

CPU使用率:指用户进程与系统进程消耗的CPU时间百分比。

内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%。

磁盘I/O: 磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作,一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能。

网络带宽:一般使用计数器Bytes Total/sec来度量,Bytes Total/sec表示为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。

系统指标:

并发用户数:某一物理时刻同时向系统提交请求的用户数。

在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。

平均响应时间:系统处理事务的响应时间的平均值。事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间。
事务成功率:性能测试中,定义事务用于度量一个或者多个业务流程的性能指标,如用户登录、保存订单、提交订单操作均可定义为事务。
超时错误率:主要指事务由于超时或系统内部其它错误导致失败占总事务的比率。


铸剑团队签名:
【总监】十二春秋之,[email protected]
【Master】戈稻不苍,[email protected]
【Java开发】雨鸶,[email protected];思齐骏惠,[email protected];小王子,[email protected];巡山小钻风,[email protected]
【VS开发】豆点,[email protected]
【系统测试】土镜问道,[email protected]尘子与自由,[email protected]
【大数据】沙漠绿洲,[email protected];张三省,[email protected]
【网络】夜孤星,[email protected]
【系统运营】三石头,[email protected];平凡怪咖,[email protected]
【容灾备份】秋天的雨,[email protected]
【安全】保密,你懂的。
原创作者:尘子与自由
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(性能测试,压力测试,测试工具,自动化,软件测试)