360SDN.COM

性能测试-从入门到放弃(写给组内的两名实习生)

来源:TestOps  2017-09-12 10:25:33    评论:0点击:

张彦松 ? 前饿了么资深测试工程师

https://maimai.cn/article/detail?fid=170756129&from=timeline

老张是我认识多年的性能测试高手,一心全栈性能测试,现终于出关,这篇文章就是实在。

-----云层

性能测试-从入门到放弃(这里说的放弃,是放弃杂念)

一、性能测试初级:

A、性能测试基础:专业基础课

        1、操作系统原理、《鸟哥的私房菜》(操作系统应用)

        2、数据库导论、Oracle数据库管理与开发(数据库应用,何明写的)

        3、计算机网络基础

        4、java基础;

        5、软件工程基础,大学的教科书就行。

        6、数据结构与算法:对后面提高有帮助,入门可以了解就好。

B、测试入门理论:专业课

        1、软件测试知识:《软件测试》-周予滨 姚静翻译、《google软件测试之道》

        2、性能测试基础理论:软件性能测试过程详解与案例剖析(段念);《Microsoft .NET Web应用程序性能测试》,《Microsoft .NET Web应用程序性能测试》

           这本书虽然是讲.NET下的性能测试,但是我们重点关注作者的视角。看看作者从哪些方面来阐述性能测试,可以从中得到很多启发。

C、项目管理入门:专业课

        1、项目管理、敏捷项目管理。分别找一本入门书看看就好。

D、工具

    jmeter、LR以及相关的书籍。

E、工作中常见的分析方法:swot分析法、pdca循环原则、5w2h分析方法、smart原则目标管理、时间管理-紧急与不紧急、任务分解法(wbs)、

二八原则、鱼骨图分析法、OGSM计划法、头脑风暴法、名义群体法、德尔菲法,这十二种分析方法,我也不能完全掌握,但还是分享给你们吧。

二、性能测试提高:

        一般三-五年到了提高这个层次,这个阶段需要了解的东西就很多了。因为到了这个阶段后,你会认识到,性能测试最重要的是对性能的认识。

        你已经开始不满足只是用工具来发请求,以及写一些自己都不能深入理解的性能测试报告了。

        开始了解跟性能相关的方方面面:这个时候,你会发现:了解被测对象,比测试本身重要的多。

        如何了解被测试对象。我总结出一些小经验:从架构的角度去了解。

        从技术架构、应用架构、业务架构去了解你的被测试对象。举一个简单的例子大家就明白了:技术架构相当于一个桶,这个通能装多少,

        是桶的容量决定的。应用架构相当于桶里的小容器,如水杯。主要是方便水的存储与取出。或者更好的合理利用桶的空间。业务架构更多的理解为液体的类型:如水、油、硫酸等等。相信说到这里,大家应该明白了。为什么要去了解你的被测对象。你的被测对象,直接决定了

        性能的瓶颈在哪里。

        通俗的说法,就是请求的方式与处理的方式,以及处理的平台决定了系统的性能。

        例子虽然简单,但是实际去了解起来,却非常费事。

        这里面的知识分为两类,以基础架构为例:一类是纯粹的讲基础架构,另外一类则是将基础架构的实际应用。

        互联网的架构非常的庞大,分为几大类:

                1、传统的互联网架构:从前端到后端:cdn(前段静态缓存)、F5(硬负载均衡)、nginx/haproxy(软负载均衡)、tomcat(应用服务器)、redis/memcache(缓存服务器)、

                oracle/mysql(数据库服务器)

                2、大数据的生态圈:底层HDFS,上面跑MapReduce/Tez/Spark,在上面跑Hive,Pig。或者HDFS上直接跑Impala,Drill,Presto。这解决了中低速数据处理的要求。Storm是最流行的流计算平台

                还有一个有些独立的模块是KV Store,比如Cassandra,HBase,MongoDB(大数据这块的知识,我也在学习中)

                3、人工智能与机器学习。这是这几年才火起来的,这块的基础架构我没有深入了解过。但是也很重要。因为有架构就有性能,有需求就有市场。

        以上只是标注了与基础架构相关的知识。关于应用架构与业务架构的知识,我还无法系统的列出来。

        基础架构这块的学习:可以在网上买书,先针对每个节点进行基础的了解。然后重点放在基础架构应用上。这里推荐一些书:

        从全局来讲解系统性能相关:

        《构建高性能的web站点》、《大型网站技术架构》、《淘宝技术十年》、《大型网站服务器容量规划》、《亿级流量网站架构核心技术》

        从局部讲解系统性能相关:

        《深入理解java虚拟机》、《从paxos到zookeeper分布式一致性原理与实践》、《oracle9i10g编程艺术》、《高性能mysql》、《habase权威指南》(学习中)、

        《大话存储》、《大话处理器》、《大型网站系统与java中间件实践》、《hadoop权威指南》(学习中)、《大规模分布式存储系统》(学习中)、《rabbitmq》、

        缓存数据库相关的书籍,我没有找到好的推荐。

        纯性能优化相关:

        《java性能优化权威指南》、《性能之巅》、《java性能优化 让你的java程序更快 更稳定》。

        上面只是对互联网技术架构的一点小小的认识,还不包括人工智能、机器学习。因为这些方便,我确实积累的少了。不敢妄谈。

        至于应用架构、业务架构之类的,确实没有找到系统介绍的好书。听说在这几本书中可以窥探一二:《领域驱动设计》、《架构之美》、《企业应用架构模式》、

        《企业架构》。

        我个人的本意是想把商业战略、企业架构(业务架构、IT架构)、运营架构都弄明白是怎么回事。因为我觉得,这些跟性能都有莫大的关系,也算是对我从业这么多年来的一个交代。

        每个人,最终还是要向自己交代的。

三、不仅仅关注性能,领域结合是产生创新的方式之一。

        可能你会认为,这个阶段还会有更多高深的东西。我的理解,这个阶段更多的拓展学习了。

        有了第二个阶段的学习,你已经具备了深厚的内容。基本没有你看不明白的东西了。

        接下来需要拓展自己视野:

        深入了解并学些一些自动化相关的知识。

        深入学习一些测试开发的知识。

        了解一些前沿的模式:如devops、testops

        关注核心论坛或者各种峰会对性能的新的认识。

        把你的知识拓展到性能、并发、高可用、安全、伸缩、扩展等领域去。

        了解各大互联网公司对技术这块的理解。

        了解一些有意思的新观点,如:泊松分布、排队论、MaKov模型、Monte carlo模拟、自相似理论、admda理论

四、第四点不知道写点什么了,也许应该去研究一下历史,如《二十四史》,又或者是《明朝那些事》。毕竟是人文生活,还是要回归社会的。

总述:一家之言,不可不信,也不可全信。

相关连接:

LR你真的会用么?来看看你会几个?

阅读原文

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权