首页 > 其他分享 >性能测试知识科普(二):测试策略

性能测试知识科普(二):测试策略

时间:2023-03-21 11:33:37浏览次数:42  
标签:策略 验证 性能 知识 4C8G 并发 测试 科普

转载:https://www.cnblogs.com/imyalost/p/16711597.html

上一篇文章聊到了性能测试最基本的三个术语:并发、TPS、响应时间,并且以高速收费站的故事为例,详细的分析了这三个术语在实际的应用实践中该如何理解,以及三者之间的关系。

这篇文章是性能测试基础知识科普的第二篇,我想聊聊在实际工作中,性能测试最常见的一些测试策略。

 

性能测试的目的是什么

在聊测试策略之前,很有必要聊聊性能测试的目的,或者性能测试的本质是要做什么,解决什么问题。只有想明白这点,后面的需求分析、工具选型、制定测试策略才能更好的开展。

在实际的软件研发测试交付过程中,对测试同学来说,除了要验证功能的正确性之外,系统的性能表现也是很重要的一项工作内容。

简单理解就是用户在使用系统提供的服务时,除了功能不出错,还要尽可能支持更多的人用系统提供的服务。功能的正确性是基本盘,更好的性能具有更大的附加值。

软件系统是运行在服务器上面的,服务器的底层是硬件资源和网络,从另一个角度来看摩尔定律的话,就是硬件的配置越高越好,原则上能提供更好的性能。

当然,软件的性能还与其最初的设计和构建有很大的关系。

因此,性能测试的本质是什么?

  1. 找到软件运行环境中底层硬件的资源瓶颈;
  2. 找到软件设计和构建过程中出现的影响性能的点;

基于上述两点,再看下面这张图:

上图列举了常见的影响软件性能的一些因素和例子,对于性能测试来说,就是针对上述的这些因素,去设计对应的测试策略,验证是否存在相关的影响软件性能的因素。

 

新手小白需要的是什么

很多网上的文章或者技术专栏抑或技术书籍,告诉了我们很多的测试策略名词,比如并发测试/负载测试/极限测试/配置测试/容量测试/浪涌测试/高可用测试/容错恢复测试。

这些理论知识容易让小白云里雾里,不知道什么情况该用什么策略。当然,这些理论都没问题,但理论和实践之间存在一个巨大的鸿沟,那就是如何让理论成为自己的理论,这需要大量的实践思考和总结。

我曾经也写过这种理论性很强的文章,现在回头看确实有点贻笑大方。新手小白最需要的是什么?我一直思考这个问题。

现在回头看,他们最需要的是能以他们可以理解的方式一步步走入实践的方法,或者说理论切入实践的路径

 

工作中常用的测试策略

还是以实际工作的场景来谈常用的测试策略,其中最关键的就是2点:如何设置脚本并发和测试数据

下面是一些常见的工作案例,我会先介绍案例,然后举例说明测试策略。

案例名称

脚本并发策略/测试数据策略

服务配置/并发推荐数值

新服务上线

梯度递增压力/参数化

4C8G/20-100

性能优化验证

梯度递增压力/参数化

4C8G/10-40

负载均衡验证

梯度递增压力/参数化

4C8G/10-60

参数配置调整验证

恒定并发压力/参数化

4C8G/固定数值

业务/技术逻辑调整验证

恒定并发压力/参数化

4C8G/固定数值

一些经验之谈:

  1. 绝大多数场景,第一次压测都推荐梯度递增方式,这样便于找到性能拐点;
  2. 固定并发压力只适用于其他条件不变,只有某一个影响因素变更的情况下使用;
  3. 一般都推荐先梯度,找到性能拐点定位问题后,再通过固定并发方式去验证优化是否生效;
  4. 单独的性能测试环境很重要,如果环境无法独立,建议听领导的要求压测一波统计数据出个报告就行;
  5. 测试数据记得一定要参数化,一定不要用同一个或同一批数据去反复压测(功能测试都更新数据更何况性能);
  6. 以上都是经验之谈,新手小白可以照抄,但遇到问题建议不断调整去试错和验证,不要照着剧本念戏;

标签:策略,验证,性能,知识,4C8G,并发,测试,科普
From: https://www.cnblogs.com/ceshi2016/p/17239380.html

相关文章

  • 【Unity3D】基于模板测试和顶点膨胀的描边方法
    1前言​选中物体描边特效中介绍了基于模板纹理模糊膨胀的描边方法,该方法实现了软描边,效果较好,但是为了得到模糊纹理,对屏幕像素进行了多次渲染,效率欠佳。本文将介绍......
  • 如何提升性能测试效能
    转载:https://www.cnblogs.com/imyalost/p/16589950.html上周六应邀在天津devops峰会的质量内建专场做了一次分享,主题是《稳定性保障利器:全链路压测》。其中关于全链路压......
  • JS 知识点收集
    js文件中import中加{}和不加{}的区别参考网址https://blog.csdn.net/baidu_38225647/article/details/104968662大括号的加与不加取决于import来源的js文件-如果......
  • [MySql] 数据库死锁的排查和相关知识
    查看数据库最近的一次死锁执行以下命令:showengineinnodbstatus;查询结果......------------------------LATESTDETECTEDDEADLOCK------------------------2......
  • 具备哪些软件测试技能更受企业青睐?
    企业在招聘时,究竟具备哪些软件测试技能的小伙伴,能够更加容易的获得企业的青睐呢?换句话说,具备了哪些技能,才是企业先要招聘的“种子选手”呢?其实放眼全球,只要你关注业......
  • 如何分析并设计性能测试场景
    转载:https://www.cnblogs.com/imyalost/p/16500205.html前几天写了一篇文章《如何设计自动化测试case》,里面聊到了为什么要设计case:便于业务活动开展确保业务场景覆盖......
  • 软件测试人员如何提高自己的业务竞争力?
    在软件测试行业,现在大环境下门槛较低,大部分中专大专学历都可以在这个行业进行工作,本科学历就这个行业岗位来说,已经有了一定的核心竞争力。(学历虽然不能代表一切,但是可......
  • 软件测试工程师的自我修养是什么?
    1.对异常的敏锐“嗅觉”软件测试需要善于发现产品中存在的不足。不仅仅是从系统使用的正向看产品是否有问题,还要从用户角度出发,去设想产品的行为是否存在问题。正......
  • 软件测试
    ......