对于性能测试的一些理解

本文详细探讨了性能测试的关键指标,包括响应时间、吞吐量、并发和资源使用率,以及不同类型的测试数据。性能测试中常见的问题如响应时间波动、并发时的超时和内存溢出也进行了分析。此外,还提到了JVM内存设置对性能的影响。文章强调了测试数据的真实性和有效性,并提供了不同阶段选择合适数据类型的方法。最后,列举了面试中可能遇到的性能测试问题,如场景评估、指标监控和问题定位策略。
摘要由CSDN通过智能技术生成

性能测试对于大部分测试人员都是一个神秘地带,因为在很多公司,性能测试都是由一个性能测试团队来做,所以普通测试人员没有机会接触到真实的性能测试,因而很难学习到很多新的测试实践知识。

性能测试指标

通常来说我们会关注如下的性能测试指标。

响应时间:比较熟悉的就是2-5-8原则(据统计当网站慢一秒就会流失十分之一的客户),通常来说,2到5秒,页面体验会比较好,5到8秒还可以接受,8秒以上基本就很难接受了。但是有的项目也会例外,比如从海量的数据中去查询某些数据,或者生成报告(年度报告),这种可能就不太适合2-5-8原则,但是前提是要管理好客户的期望。

吞吐量:指的是在单位时间内客户端和服务器成功传送数据的数量

并发:客户/服务端同一批用户同时执行一个操作的数量

资源使用率:通常来说,我们关注的资源就是几大块:内存、CPU、I/O和网络

成功率:比如在某些情况下,API调用的成功率

测试数据一直是软件测试中的一个头疼的问题,特别是在性能测试中测试数据尤为重要,因为越真实的数据越能获得更好的结果。对于测试数据的类型可以分为以下四种:单一型,随机型,模板型,真实型。

单一型

它是通过录制或者观察,使用一个或者一类单一的测试数据来进行性能测试。这种数据的构建简单,但是数据过于单一,无法模拟真实用户。由于其数据构建简单,所以可以用于敏捷开发中的早期性能测试。

随机型

它是通过一些简单的数据规则,并结合随机算法生成的测试数据。这种数据和单一型比较,虽然增加了随机性,但是仍然缺乏真实性,并且其构建成本和性能问题的分析成本也相对较高。它可以用于上线前的大规模的多样化的综合性能测试。

模板型

它主要是通过数据分析并生成模板来构建测试数据。虽然它较随机型在一定程度上增加了用户真实性,但是准备数据的成本很高。在项目成本和资源允许范围内,可以结合模板型和随机型的方法,从而更为有效的进行性能测试。

真实型

它是通过直接导出或者重定向产品数据来做性能测试数据。它完全是真实的用户数据,构建成本较低,但是存在数据安全性的问题,比如数据泄露。在数据安全性可以得到有效保护的情况下是可以使用真实型数据来进行性能测试。

测试数据生成和管理对于一个大型产品的性能测试是十分重要的,所以如何高效的生成有效的测试数据成为了首要的任务。通过这四种测试数据类型,可以快速的判断在产品当前阶段适合使用那种类型的数据,从而避免一些弯路。

------------------------------------------分割线---------------------------------------------------------------------

一、性能测试常见问题分析:

1)执行过程中,响应时间出现拐点,波动大

1-JVM执行了GC垃圾回收,造成性能拐点

2-网络不稳定

2)高并发时,等待超时、连接失败等报错。

1-连接数设置不足

2-服务器资源已达到瓶颈

3)内存溢出问题。

1-JVM内存参数设置过低

2-程序本身存在内存溢出或内存回收问题

二、性能影响因素

应用服务器

数据库服务器

应用程序代码本身

服务器硬件及操作系统

三、常见性能影响因数

1)JVM内存设置参数

内存溢出类型 :OutOfMemoryError:java heap size / OutOfMemoryError: PermGen space

可在Tomcat的bin目录下的catalina.bat文件设置内存参数:

set JAVA_OPTS=

     -Xms6144m                                    Heap Space

     -Xmx6144m 

     -XX:PermSize=512M                     PermGen Space

     -XX:MaxPermSize=1024M     

------------------------------------------分割线------------------------------------------------------

面试中被问到的一些性能测试问题:

1.测试的指导方法论

2.怎么评估性能测试场景 、性能指标(用户数,数据量)

3.界面相应时间怎么制定?(3,5,8),接口响应时间怎么制定?(毫秒级)

4.服务器指标监控,监控哪些指标?

5. 若一个场景不达标时要怎么去做(分析定位不达标的原因)

6.tcp协议了解

7.性能问题最关键的点在哪(服务器资源, tcp是否占满,最主要的就是数据库 )

8.问题怎么去定位?    分层定位(底层 -数据库 缓存 tcp )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值