• 谈谈我对性能测试的认识:
    目的
    性能测试的最终目标是找到性能瓶颈,并联合研发同学一起去优化这个问题,所以报告只是你对测试过程的总结,漂亮的报告 !=(不等于) 完美的性能测试。

    方案
    前面提到了性能测试的目的,那么一个好的性能测试方案可以让我们开展性能测试工作变得游刃有余,方案包括:

    1、压测目标考虑,你压测的业务是什么,是基于什么协议实现的,模块与模块之前是如何调用的,只有清楚了这些,才能确定后面压测工具、压测协议、压测场景。
    2、性能指标考虑,需要你基于现有日志系统去估算用户合理并发数QPS,而不是怕脑袋想一个QPS,也不是无限制的压下去
    3、环境考虑,贴合真实线上环境搭建一套测试环境,包含服务器硬件(资源尽可能劣于线上环境)+网络传输(是否存在弱网传输情况)
    4、压测策略考虑,基于压测目标设置压测场景,
    比如
    第一轮基准压测,俗称摸底,看看不进行调优的情况下,每种单业务能达到的QPS是多少——这个环节用于单指标调优
    第二轮混合压测,比如业务有:登录后+访问页面+点击A页面/点击B页面,那么在混合压测里面就需要考虑:每种场景的比例时多少,即:登录、点A页面、点B页面的比例各是多少——这个环节用于混合指标调优
    第三轮疲劳测试,经过前2轮测试与调优后,进入第三轮长时间压测,主要看系统是否稳定的测试,这里面就需长时间监控:压力机以及被压服务的各项资源,及时报警找性能的拐点,这个环节出现拐点(QPS下降)大部分是内存泄露导致
    5、技术框架考虑,需要你确定使用的压测工具+准备压测的数据+研发需要协助打的桩(可能每次需要验证码,但我们需要测试登录后的性能,所以需要研发屏蔽验证码)
    6、监控工具考虑,可以是用压测工具自带监控工具,也可以使用一些第三方监控工具——nmon工具等
    7、性能测试用例,就是细化第4端——压测策略,把它们用例化
    8、报告输出:一般第三方工具具有报告输出功能,例:jmeter、loadrunner本身具有专业的报告,如果你是公司内部的压测工具,需要你自己写报告,那么报告里面需要包含:测试人员、测试执行时长、测试结果、期间被测服务的各项指标监控(响应时长、IO、内存、CPU占用情况)等指标。

    测试工具
    1、Jmeter ——该工具优点是开源免费、缺点是有的压测需要写java语法去驱动,例如对 dubbo接口的压测。
    2、ab压测工具——开源的linux下的压测工具,支持对常见http、tcp、udp协议的压测,
    3、loadrunner —— 企业级的性能压测工具,支持各种协议的录制与压测,优点是:有好的UI操作界面,通过简单录制后生成C语言的脚本,然后同关联、参数化脚本进行压测,并且可以对服务器的各项资源(CPU、内存、IO)进行监控,方便定位性能瓶颈,缺点是:不是免费的,如果是小公司可以找一些license去破解。

    本人之前从事过性能测试、大数据测试、自动化测试,

    我的公众号:数据猿温大大,更多干货在这里。

  • 怎么学习大数据 at October 19, 2020

    楼主好,本人目前在一家互联网公司从事大数据测试,已有3年。
    将一些关于大数据测试的经验放到我个人公众号上了:数据猿温大大,欢迎订阅关注。