• 如何拆解性能测试需求


    看完点个赞呗,难道想白嫖不成?更多内容请访问微信公众号 :三国测,扫码关注哟!

     原文链接:http://www.cnblogs.com/zishi/p/6722744.html

    前言:

    近期接到一些性能测试项目,各种各样的项目类型,有接口、网站不一而足,但是往往没有一个明确的性能需求。需求方最常见的一句话就是:“这个需要性能测试”或者“项目上线前要压一压”,等我发了邮件去问具体性能需求,才匆匆忙忙的抛出比如“网页7秒内打开”之类的话,这样的需求,首先不准确,比如这个7秒,是在什么样的带宽多少用户并发返回的结果呢?

     

    在项目开始之前:

    一般来讲,在软件(网站)调研阶段,需求分析人员与业务人员进行沟通,此时就需要明确的提出性能指标,比如并发用户量,交易频度、业务数据量、网络要求等等。然后对系统的响应时间、用户数和资源进行分析,最终提供一份性能需求给测试人员,进行性能测试。

     

    测试需求是一切的基石:

    在公司,我们做性能测试基本是以运营统计数据为准,说白了,是以TPS为基础建模,响应时间是后续结果,建场景的基础都是以TPS为主,然后需要提供网络拓扑。比如Booking接口每天交易200000笔,根据2/8原则,80%的访问发生在20%的时间,集中的交易数:200000*80%=160000,集中访问时间:24*20%=17280秒,计算可得160000/17280=9.3TPS。那么如果是新项目,没有现成的TPS怎么办?此时就需要需求方进行确认,期望项目达到什么样的支撑量。

    打个比方,我们的客户管理系统,可能需要支撑同时2000人访问,那么对于测试人员需要去做的就是通过模拟线上的压力,把这个情景进行压测出来,甚至有些时候我们需要模拟一个极限的数字,比如以我们现有的环境条件,我们是否可以支撑200%甚至300%这样的数字?

    所以,作为测试人员,期望提过来的需求是相对清晰跟合理的。比如你项目生产环境最多只有20人使用或者数据存量只有寥寥,那么是否有必要进行这个压力测试,则需要另行商榷。正常来讲,需要进行压测的网站访问量肯定是比较大的,那么我们需要根据经验,结合具体的功能去定义一些压测点,例如:

    1、 首页访问

    2、 个人中心展示

    3、 用户登录功能

    ……

    经过确认这些测试点,我们又可以进行下一步,确认具体测试参数。比如上文提到的需要支撑2000人,又或者页面需要在3秒钟内返回。

            有些情况是在特定要求下的,比如百万级的业务数据条件、100用户并发执行10小时、每次访问数据量大于1M等等,对于特殊需求,需求方在项目初期就要尽可能的挖掘出来,因为要创建符合的模拟场景是很耗费时间和资源的。

     

    常见的性能需求:

    首页打开速度3秒以下;

    接口返回在300毫秒以下;

    系统在200%的压力下可以稳定运行12小时;

    20用户并发,接口处理能力至少达到50TPS

     

    一些其他的方法:

    首先是提问,问测试同事和架构师,可以得到很多有用信息,例如接口响应时间不要超过300毫秒啦,网页访问要低于3秒等等,这些数据都可以是确认新项目性能的一些参考。

    其次是找以前项目的历史数据,进行横向比较。一般来说公司对项目的性能要求会保持一致性,所以用公司的历史数据参考是非常靠谱的事情。

    最 后要注意一些特殊场景,比如刚刚过去的双十一。我们平时测试注重的是一个平均值,那么这种时刻就是峰值。在双十一的时候,公司页面可能会承受平时十倍的访 问量。类似情况还有寒暑假前期、重大节假日、火车票抢票开始等等,这些都是需要业务人员提供具体生产数据,然后进行计算和转换的。

    作者原创技术文章,转载请注明出处

  • 相关阅读:
    那是什么进程 —— svchost.exe是什么? 它为何运行?
    共享一下我的博客皮肤
    C#3.0亮点 —— 关键字var和匿名类型
    改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)
    C#3.0亮点 —— 分部方法
    解决C#中一个"异步方法却同步执行"的问题
    改善代码设计 —— 简化函数调用(Making Method Calls Simpler)
    改善代码设计 —— 总结篇(Summary)
    理解A*寻路算法具体过程
    改善代码设计 —— 组织好你的数据(Composing Data)
  • 原文地址:https://www.cnblogs.com/zishi/p/6722744.html
Copyright © 2020-2023  润新知