目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、性能测试是什么?
性能测试是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
性能测试概括为三个方面:
应用在客户端性能的测试;
应用在网络上性能的测试;
应用在服务器端性能的测试;
通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。
目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。
一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。
用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。
从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。
当然性能测试不单是指用户数量增加的场景,还有各方面的。
拿购物网站举例,可以含有以下方面的性能测试内容(不限于此):
突发大数量用户同时操作;
长时间操作;
弱网下操作(可以在多差的网络下仍继续正常工作);
2、性能测试的目的
1)评估系统的能力
测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。(根据测试结果查看是否符合指标,如果是首个版本,可以作为规格说明书中的指标参考)。
2)识别体系中的弱点
受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。(找到弱点,在整个产品生命周期中,不断提升,所谓知己知彼)。
3)系统调优
重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
4)检测软件中的问题
长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。(通过内存趋势图,可以预判结果)。
5)验证稳定性(resilience)可靠性(reliability)
在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
3、性能测试主要看什么指标
性能测试不同于功能测试,功能测试只要求软件的功能实现即可,而性能测试是测试软件功能的执行效率是否达到要求。
例如某个软件具备查询功能,功能测试只测试查询功能是否实现,而性能测试却要求查询功能足够准确、足够快速。
但是,对于性能测试来说,多快的查询速度才是足够快,什么样的查询情况才足够准确是很难界定的,因此,需要一些指标来量化这些数据。
性能测试常用的指标包括响应时间、吞吐量、并发用户数、TPS等,下面分别进行介绍。
1)响应时间
响应时间(ResponseTime)是指系统对用户请求做出响应所需要的时间。这个时间是指用户从软件客户端发出请求到用户接收到返回数据的整个过程所需要的时间,包括各种中间件(如服务器、数据库等)的处理时间。
响应时间越短,表明软件的响应速度越快,性能越好。
但是响应时间需要与用户的具体需求相结合,例如火车订票查询功能响应时间一般2s内就可以完成,而在网站下载电影时,几分钟完成下载的速度就已经很快了。
系统的响应时间会随着访问量的增加、业务量的增长等变长,一般在性能测试时,除了测试系统的正常响应时间是否达到要求之外,还会测试在一定压力下系统响应时间的变化。
2)吞吐量
吞吐量(Throughput)是指单位时间内系统能够完成的工作量,它衡量的是软件系统服务器的处理能力。
吞吐量的度量单位可以是请求数/秒、页面数/秒、访问人数/天、处理业务数/小时等
吞吐量是软件系统衡量自身负载能力的一个很重要的指标,吞吐量越大,系统单位时间内处理的数据就越多,系统的负载能力就越强。
3)并发用户数
并发用户数是指同一时间请求和访问的用户数量。例如对于某一软件,同时有100个用户请求登录,则其并发用户数就是100。
并发用户数量越大,对系统的性能影响越大,并发用户数量较大可能会导致系统响应变慢、系统不稳定等。软件系统在设计时必须要考虑并发访问的情况,测试工程师在进行性能测试时也必须进行并发访问的测试。
4)TPS(TransactionperSecond)
TPS是指系统每秒钟能够处理的事务和交易的数量,它是衡量系统处理能力的重要指标。
5)点击率(HitsperSecond)
点击率是指用户每秒向Web服务器提交的HP请求数,这个指标是web应用特有的个性能指标,通过点击率可以评估用户产生的负载量,并且可以判断系统是否稳定。点击率只是一个参考指标,帮助衡量Web服务器的性能。
6)资源利用率
资源利用率是指软件对系统资源的使用情况,包括CPU利用率、内存利用率、磁盘利用率等。资源利用率是分析软件性能瓶颈的重要参数。
例如某一个软件,预期最大访问量为1万,但是当达到6000访问量时内存利用率就已经达到80%制了访问量的增加,此时就需要考虑软件是否有内存泄漏等缺陷,从而进行优化。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
每一份付出,都将成为成功的催化剂。别放弃自己对未来的期许,相信自己的能力和潜力,坚定信念,迎接挑战,勇往直前,你将收获属于自己的人生辉煌。
在困境中寻找力量,在失败中寻求智慧。不要停下脚步,勇敢迈向前方,用坚持和努力书写属于自己的辉煌篇章,成就真正的人生价值。
勇往直前,脚步不停,即使路途再漫长与艰难,也要坚信奋斗的力量。相信自己的潜能,拥抱挑战,努力追寻梦想,你将创造出属于自己的璀璨人生。