浅谈性能测试现状
首先简单聊聊什么是软件性能测试(b/s,c/s)?以及目前性能测试的现状。
一、性能测试简单通俗来讲就是测试应用在服务端的具体性能体现,最终目的,第一是是为企业节省硬件成本,第二是避免功能在大并发时出现bug给公司造成损失,最重要是保证程序在定量的并发下保证程序稳定运行,避免程序宏机给公司造成巨大损失。
二,性能测试现状
1、现谈谈企业对于性能现状
目前小企业对于性能现状,性能就是工具,面试几乎都是问一堆工具如何使用,但是,工具 != 性能测试,只要掌握性能测试核心思想,实际并发工具一大堆,我们也是无法很透彻的掌握每一款工具,只需要熟练掌握一两款即可,比如lr、jmeter即可,而且工作中也是随测试人员,具体工作混乱不堪。
2、大企业
不得不说,大企业在性能方面做的确实很到位,据我所知,在某为公司,开发对于某个功能或者接口写完都要主导性能测试任务,直到性能指标达标且业务满足才可以发布上线
三、谈谈性能测试需要掌握的技术栈
1、理解并发概念,以及并发在不同公司业务下可能出现那些问题(先保证业务不出问题,其次再找瓶颈以及优化空间)。
2、linux,做性能,linux很重要,对于cpu、memory、io高消耗,具体什么原因,最简单的例子,锁等待会引起线程切换,从而引起上下文过高,从而导致cpu爆满,以及java中对象关键字使用错误,导致gc回收频率过高,或者gc扫描资源过大,引起cpu消耗过高;内存,最简单的内存泄露,比如java中,对象已不在使用老年代不能被GC及时回收导致堆无用内存不能及时释放,引起内存高消耗,io流,在程序中io无处不在,最简单的比如日志,sql查询(后期在讲),网络流等都是基于io,io堵塞会导致线程卡死甚至于程序崩溃。
3、mysql,大部分应用优化点都是基于mysql,程序的瓶颈很大部分也是存在于mysql。
4、ISO协议,一个程序的完整链路都是基于ISO,了解ISO可以从多维度排查问题
5、任何一门编程语言(java优先考虑),任何语言都是基于计算机,掌握一门语言,可以在工作中自己排查问题,而不是求开发排查,甚至有的问题开发人员一点,你就可以知道问题出在哪。
6、缓存技术(redis、kafka、mq)开发逼的,小企业现状优化就是中间件缓存技术使用,有时候不学不行。
7、docker,k8s容器化技术,也是市场现状,大部分都是敏捷开发,容器很符合他们的口味,对于性能测试来说不得不说是一个很恶心的事,但有时候,生活就像被强奸,没法反抗就享受。
8、最后说一句,性能测试貌似啥都要学,开发的要学,运维的都要学,没办法,多看书多积累。
后期,会逐渐写各个技术栈的使用以及性能调优,或者好的文章。

浙公网安备 33010602011771号