本帖最后由 草帽路飞UU 于 2022-8-25 16:57 编辑
浅谈软件测试中的性能测试
一、性能测试概念
1、为什么要有性能测试?
2、性能测试是什么?
3、性能测试的目的
二、性能测试指标
1、响应时间
2、吞吐量
3、并发用户数
4、TPS(Transaction Per Second)
5、点击率
6、资源利用率
三、性能测试种类
1、负载测试
2、压力测试
3、并发测试
4、配置测试
5、可靠性测试
6、容量测试
四、性能测试流程
1、性能测试流程
2、性能测试流程分析
(1)分析性能测试需求
(2)制定性能测试计划
(3)设计测试用例
(4)编写性能测试脚本
(5)测试执行及监控
(6)运行结果分析
(7)性能测试报告
五、结束语很多时候,我们都知道软件有黑白盒测试,但往往还遗漏掉了一个性能测试。 在下面的这篇文章中,就带领大家来了解性能测试。一起来学习吧~ 一、性能测试概念
1、为什么要有性能测试?(1)2007年10月,北京奥组委实行2008年奥运会门票预售,一时间订票官网访问量激增导致系统瘫痪,最终奥运会门票暂停销售5天。 (2)2009年11月22日,由于圣诞临近, eBay 网站的商品交易量比去年同期增长 33% ,正是由于多出的这33%使得 eBay 网站不堪重负而崩溃,导致卖家蒙受当日销售额 80% 的损失,可谓损失惨重。 (3)12306订票网站,自2010年上线以来就饱受诟病,每年春运期间,总会因为抢票高峰而崩溃,用户在买票时出现无法登陆的现象。2014年,12306网站甚至出现了安全问题,用户可以轻易获取陌生人的身份证号码、手机号码等信息。 通过以上例子我们可以清楚的认识到,不管是奥运会的门票预售系统,还是12306的订票系统崩塌,都是由于软件系统没有经过性能测试或者性能测试不充分而引发的问题。因此,作为一名测试人员,除了要对软件的基本功能测试之外,还需要对软件性能进行测试,软件性能测试也是非常重要且非常必要的一项测试。
2、性能测试是什么? 所谓性能测试,就是通过性能测试工具模拟正常、峰值及异常负载状态下对系统的各项性能指标进行测试的活动。性能测试能够验证软件系统是否达到了用户期望的性能需求,同时也可以发现系统中可能存在的性能瓶颈及缺陷,从而优化系统的性能。
3、性能测试的目的 性能测试的目的主要有以下四点: - 验证系统性能是否满足预期的性能需求,包括系统的执行效率、稳定性、可靠性、安全性等。
- 分析软件系统在各种负载水平下的运行状态,提高性能调整效率。
- 识别系统缺陷,寻找系统中可能存在的性能问题,定位系统瓶颈并解决问题。
- 系统调优,探测系统设计与资源之间的最佳平衡,改善并优化系统的性能。
二、性能测试指标 性能测试指标有以下6个指标:
响应时间 吞吐量 并发用户数 TPS (Transaction per Second) 点击率 资源利用率 接下来将围绕着这6个指标进行一一讲解。
1、响应时间 响应时间 (Response Time) 系统对用户请求作出响应所需要的时间。 这个时间是指用户从软件客户端发出请求到用户接收到返回数据的整个过程所需要的时间,包括各种中间件(如服务器、数据库等)的处理时间。 如下图所示: 从上图中可以看到,从客户端发出请求到客户端接收到返回数据的整个过程即为系统的响应时间,为 t1+t2+t3+t4+t5+t6 。
一般来说,响应时间越短,表明软件的响应速度越快,性能越好。但是响应时间需要与用户的具体需求相结合,例如火车订票查询功能响应时间一般2s内就可以完成,而在网站下载电影时,如果一部电影能够在几分钟内完成下载,则说明该网站就已经很快了,所以需要依据实际情况而定。
2、吞吐量 吞吐量 (Throughput) 是指单位时间内系统能够完成的工作量,它衡量的是软件系统服务器的处理能力。 吞吐量的度量单位可以是请求数/秒、页面数/秒、访问人数/天、处理业务数/小时等。 吞吐量是软件系统衡量自身负载能力的一个很重要的指标,吞吐量越大,系统单位时间内处理的数据就越多,系统的负载能力就越强。
3、并发用户数 并发用户数是指同一时间请求和访问的用户数量。
并发用户数量越大,对系统的性能影响越大,并发用户数量较大可能会导致系统响应变慢、系统不稳定等问题。软件系统在设计时必须要考虑并发访问的情况,测试工程师在进行性能测试时也必须进行并发访问的测试。
4、TPS(Transaction Per Second) TPS 是指系统每秒钟能够处理的事务和交易的数量,它是衡量系统处理能力的重要指标。
5、点击率 点击率是指用户每秒向 Web 服务器提交的 HTTP 请求数,这个指标是 Web 应用特有的一个性能指标,通过点击率可以评估用户产生的负载量,并且可以判断系统是否稳定。点击率只是一个参考指标,帮助衡量 Web 服务器的性能。
6、资源利用率 资源利用率是指软件对系统资源的使用情况,包括CPU利用率、内存利用率、磁盘利用率等,资源利用率是分析软件性能瓶颈的重要参数。
三、性能测试种类 性能测试种类主要有以下六种:
负载测试 压力测试 并发测试 配置测试 可靠性测试 容量测试
接下来将围绕着以上这六种性能测试种类进行讲解。
1、负载测试 (1)定义 负载测试是指逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能够承受的最大负载量。
(2)举个例子 负载测试类似于举重运动,通过不断给运动员增加重量,确定运动员身体状况保持正常的情况下所能举起的最大重量。 对于负载测试来说,前提是满足性能指标要求,例如一个软件系统的响应时间要求不超过 2s ,则在这个前提下,不断增加用户访问量,当访问量超过1万人时,系统的响应时间就会变慢,响应时间会超过 2s 。因此,可以确定系统响应时间不超过 2s 的前提下最大负载量是1万人。
2、压力测试 (1)定义 压力测试也叫强度测试,它是指逐步给系统增加压力,测试系统的性能变化,使系统某些资源达到饱和或系统崩溃的边缘,从而确定系统所能承受的最大压力。
(2)压力测试与负载测试的区别 负载测试是在保持性能指标要求的前提下系统能够承受的最大负载,而压力测试则是使系统性能达到极限的状态。 压力测试可以揭露那些只有在高负载条件下才会出现的 Bug ,如同步问题、内存泄露等。
(3)峰值测试 性能测试中还有一种压力测试叫做峰值测试,它是指瞬间(不是逐步加压)将系统压力加载到最大,使测试软件系统在极限压力下的运行情况。
3、并发测试 (1)定义 并发测试是指通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其他性能问题。
(2)举个例子 并发测试一般没有标准,只是测试并发时会不会出现意外情况,几乎所有的性能测试都会涉及到一些并发测试,例如多个用户同时访问某一条件数据,多个用户同时在更新数据,那么数据库可能就会出现访问错误、写入错误等异常情况。
4、配置测试 (1)定义 配置测试是指调整软件系统的软硬件环境,测试各种环境对系统性能的影响,从而找到系统各项资源的最优分配原则。
(2)举个例子 配置测试不改变代码,只改变软硬件配置,例如安装版本更高的数据库、配置性能更好的CPU、内存等,通过更改外部配置来提高软件的性能。
5、可靠性测试 (1)定义 可靠性测试是指给系统加载一定的业务压力,使其持续运行一段时间(如 7*24h ),测试系统在这种条件下是否能够稳定运行。
6、容量测试 (1)定义 容量测试是指在一定的软硬件及网络环境下,测试系统所能支持的最大用户数、最大存储量等。
(2)举个例子 容量测试通常与数据库、系统资源(如 CPU 、内存、磁盘等)有关,用于规划将来需求增长(如用户增长、业务量增加等)时,对数据库和系统资源的优化。
四、性能测试流程 1、性能测试流程 先用一张图来查看性能测试的整个流程。如下图所示:
|