目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
性能测试出现的初衷?
先思考一个问题:我们开展性能测试的初衷或者说需求从何而来?
可能是线上用户反馈APP响应太慢,可能是财务或成本部门反映IT的硬件成本太高,也可能是某次业务运营活动由于系统无法及时正确的处理导致了业务目标未达成(问:双11零点线上系统挂了是什么体验)。
这些问题归类来说,都是源于用户和业务的痛点或诉求:
APP响应太慢:想办法提升处理速度;
硬件成本太高:想办法降低硬件成本;
业务目标未达成:想办法提升系统稳定性;
性能测试的目的是什么?
在聊测试策略之前,很有必要聊聊性能测试的目的,或者性能测试的本质是要做什么,解决什么问题。只有想明白这点,后面的需求分析、工具选型、制定测试策略才能更好的开展。
在实际的软件研发测试交付过程中,对测试同学来说,除了要验证功能的正确性之外,系统的性能表现也是很重要的一项工作内容。
简单理解就是用户在使用系统提供的服务时,除了功能不出错,还要尽可能支持更多的人用系统提供的服务。功能的正确性是基本盘,更好的性能具有更大的附加值。
软件系统是运行在服务器上面的,服务器的底层是硬件资源和网络,从另一个角度来看摩尔定律的话,就是硬件的配置越高越好,原则上能提供更好的性能。
当然,软件的性能还与其最初的设计和构建有很大的关系。
因此,性能测试的本质是什么?
找到软件运行环境中底层硬件的资源瓶颈;
找到软件设计和构建过程中出现的影响性能的点;
新手需要的是什么?
很多网上的文章或者技术专栏抑或技术书籍,告诉了我们很多的测试策略名词,比如并发测试/负载测试/极限测试/配置测试/容量测试/浪涌测试/高可用测试/容错恢复测试。
这些理论知识容易让新手云里雾里,不知道什么情况该用什么策略。
当然,这些理论都没问题,但理论和实践之间存在一个巨大的鸿沟,那就是如何让理论成为自己的理论,这需要大量的实践思考和总结。
工作中常用的测试策略
还是以实际工作的场景来谈常用的测试策略,其中最关键的就是2点:如何设置脚本并发和测试数据。
下面是一些常见的工作案例,先介绍案例,然后举例说明测试策略。
案例名称 | 脚本并发策略/测试数据策略 | 服务配置/并发推荐数值 |
---|---|---|
新服务上线 | 梯度递增压力/参数化 | 4C8G/20-100 |
性能优化验证 | 梯度递增压力/参数化 | 4C8G/10-40 |
负载均衡验证 | 梯度递增压力/参数化 | 4C8G/10-60 |
参数配置调整验证 | 恒定并发压力/参数化 | 4C8G/固定数值 |
业务/技术逻辑调整验证 | 恒定并发压力/参数化 | 4C8G/固定数值 |
总结:
绝大多数场景,第一次压测都推荐梯度递增方式,这样便于找到性能拐点;
固定并发压力只适用于其他条件不变,只有某一个影响因素变更的情况下使用;
一般都推荐先梯度,找到性能拐点定位问题后,再通过固定并发方式去验证优化是否生效;
单独的性能测试环境很重要,如果环境无法独立,建议听领导的要求压测一波统计数据出个报告就行;
测试数据记得一定要参数化,一定不要用同一个或同一批数据去反复压测(功能测试都更新数据更何况性能);
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
每一次努力都是一次积累,每一份坚持都是一份收获。只有不断地挑战自我,才能让生命焕发出迷人的光芒。所以,请勇敢地奋斗,相信自己会创造出更美好的明天!
只要心中有梦想,就不要停下前进的脚步;只要你不轻易放弃,成功就会属于你;只需坚持努力,才能成就辉煌人生;只要勇往直前,每一天都会更加精彩!
每一次的努力,都是成为更好的自己的里程碑。每一个成功背后都有无数次的尝试和失败,并不是因为天赋异禀而取得的。只要心怀梦想、坚定信念,就能在前进的道路上越走越远,让未来变得更加辉煌。