【性能测试】真实企业,性能测试流程总结分析(一)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

性能测试什么时候开始?

一般在系统功能稳定没有大的缺陷之后开始执行。
但前期准备工作可以从系统需求分析时就开始:性能目标制定、场景获取、环境申请等。

1、制定性能测试目标

在特定的并发用户数下测试特定场景的响应时间
在一定的响应时间的要求下来测试特定场景的最大并发用户数

测试特定场景的TPS

1)线上系统

对线上系统的日志进行分析以获取到这个系统每个功能的访问情况、最大的并发用户量、平均/最大/最小响应时间。

然后通过每日的增长趋势来确定最大的并发用户数、响应时间参考日志分析的结果,即与平均响应时间相当。

2)全新项目

开发过程相关文档

项目开发计划书、需求规格说明书、设计说明书等文档都可能涉及性能测试的要求。通过收集这些材料,可以找到初步的性能需求。但这些性能测试需求往往不够准确,需要性能测试人员进行专业的引导。

类似项目
公司的其他产品或以往项目会累积出一些数据,可以作为参考。

用户使用模型
分析用户使用模型是获取性能测试需求的有效手段,考虑哪些用户使用系统的哪些典型的业务,在什么时段有多少用户进行了什么功能的操作。

例如:
某OA系统每天早上8:00会有200个用户在10分钟内登录系统;

每天查询交易的高峰是在9:0011:00和下午的14:0016:00等,然后根据这个用户使用模型并结合80/20原则计算OA系统的登录以及交易查询业务的并发量。

80/20原则
80/20原理就是系统在每个工作日有80%的业务是在20%的时间内集中完成,或者系统80%的用户会在20%的时间内集中进行应用操作。

下面我们来举两个例子说明:
某网站每日的总访问人数为10万,其中浏览单品页占30%,搜索业务占20%,登录+购买业务占50%。采用80~20原则,8小时的20%作为基准时间,计算各个业务的并发数。

搜索业务:(100000*20%*80%)/(8*3600*20%)=2.78取整为3

浏览单品页:(100000*30%*80%)/(8*3600*20%)=4.17取整为5

登录+购买:(100000*50%*80%)/(8*3600*20%)=6.94取整为7

系统每年的业务集中在8个月完成,每个月平均有20个工作日,每个工作日8小时,按照80/20原则,即每天80%的业务在1.6小时完成。

年全年处理业务约100万笔,其中15%的业务处理中每笔业务需对应用服务器提交7次请求,其中70%的业务处理中每笔业务需对应用服务器提交5次请求,剩余15%的业务处理中每笔业务需对应用服务器提交3次请求。

根据以往的统计结果,每年的业务增长量为15%,考虑到今后3年的业务发展需要,测试需按现有业务量的两倍进行请求数来计算系统应该达到的TPS。

每年的总请求数=(100万*15%*7+100万*70%*5+100万*15%*3)*2=1000万

TPS=(10000000*80%)/(8*20*8*3600*20%)=8.68,取整即TPS=9

响应时间标准:
2秒以内,用户感受良好;
2~5秒,用户觉得可以接受;
5~10秒,用户会觉得很烦躁,无法接收,会频繁刷新页面;
10秒以上,用户完全无法接收,直接离开;

2、性能测试场景获取

1)线上系统

单场景:
根据对线上系统的日志分析结果,访问量排在前面的功能、本次改动的以及可能会影响到的功能、和钱有关的功能。

为保险起见最好再和开发确认一下会影响到的功能。

混合场景:
还是根据线上系统的日志分析结果,得到系统级别的最大并发数,再根据每日的增长趋势做一个增量从而得到最终的最大并发数。

然后根据日志分析结果中的各个重要功能的占比数来进行用户分配。

稳定性场景:
确定好单场景和混合场景后,还应该考虑稳定性场景。其目的是测试系统是否有内存泄漏现象发生,同时也可以测试系统的平均无故障时间。

所以,可以用混合场景做长时间的稳定性测试。

2)全新项目

单场景:
重要、核心的功能
常用功能
业务流程复杂的功能
资源占用严重的功能(比如多表查询或向多张表中插入数据)

混合场景:
根据一定的比例把所有重要的功能都加入混合场景

稳定性场景:
可以考虑用混合场景做长时间的稳定性测试。

3、性能测试数据确定

性能测试中很重要的一点就是场景数据的设计。

比如一个数据查询场景,如果该场景对应的数据库表只有10条数据,那么查询结果肯定相对较快。

但是,如果这个查询场景对应的数据库表有1000万条数据,那么查询结果肯定会比只有10条数据的查询结果要慢一些。

如果性能测试不考虑数据量,那么性能测试的结果是不准确的,上线后由于未考虑数据量的因素而引发的性能问题几率会很大。

对于线上系统来说,各表的数据量可以根据线上系统的各表数据量以及增量来确定。而新系统需要根据开发文档以及和相关项目干系人(如:客户代表、项目经理、需求分析员、系统架构师以及产品经理一起调研和讨论来决定)

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

【性能测试】真实企业,性能测试流程总结分析(一)_第1张图片

二、接口自动化项目实战

【性能测试】真实企业,性能测试流程总结分析(一)_第2张图片

三、Web自动化项目实战

【性能测试】真实企业,性能测试流程总结分析(一)_第3张图片

四、App自动化项目实战

【性能测试】真实企业,性能测试流程总结分析(一)_第4张图片

五、一线大厂简历

【性能测试】真实企业,性能测试流程总结分析(一)_第5张图片

六、测试开发DevOps体系

【性能测试】真实企业,性能测试流程总结分析(一)_第6张图片

七、常用自动化测试工具

【性能测试】真实企业,性能测试流程总结分析(一)_第7张图片

八、JMeter性能测试

【性能测试】真实企业,性能测试流程总结分析(一)_第8张图片

九、总结(尾部小惊喜)

勇往直前,不畏挫折;努力奋斗,无惧困境。拥抱变革,追逐梦想;燃烧激情,创造辉煌。只有坚持不懈的努力,才能让我们的人生绽放出耀眼的光芒。

把握当下,放眼未来,勇敢追逐梦想,脚踏实地努力奋斗。只要坚持不懈地追求,就能在人生的舞台上书写出属于自己的精彩篇章。

每一次努力,都是向梦想更近一步;每一次坚持,都是给未来更大的机会。相信自己的力量,勇往直前,奋斗不息,终将创造出辉煌的人生。

你可能感兴趣的:(性能测试,软件测试,测试工程师,压力测试,软件测试,软件测试工程师,性能测试,负载测试,Jmeter性能测试,自动化测试)