一、性能测试的类型
性能测试类型包括负载测试、压力测试、并发测试、容量测试、可靠性测试、异常测试。
负载测试:通过逐步加压的方法,达到既定的性能阈值的目标;阈值的设定应该是小于等于某个值,如CPU使用率小于等于80%。
压力测试:通过逐步加压的方法,使系统的某些资源达到饱甚至失效的状态,通俗来说就是在什么条件下能将系统压到崩溃。
并发测试:在同一时间内,多个虚拟用户同时访问同一模块、同一功能,通常的测试方法是设置集合点。
容量测试:通常是指数据库层面,目标是获取数控的最佳容量的能力,又称之为容量预估;具体的测试方法为在一定的并发用户,不同的基础数据量下观察数据库的处理能力,即获取数据库的各项性能指标。
可靠性测试:又称之为稳定性测试或疲劳测试。指系统在高压的情况下,长时间的运行系统是否稳定;比如当CPU使用率在80%以上,持续一周7*24小时,查看系统是否稳定。
异常测试:又称之为失败测试。指系统架构方面的测试,比如在负载均衡的情况下,测试down机或节点挂掉的情况下系统的反映情况。 比如nginx下挂了三个tomcat,挂掉其中一个tomcat后,即nginx下只有两个tomcat,此时系统正常的反映是挂掉的tomcat不会影响我系统的正常运行,也就是说nginx会检测到挂掉的tomcat而不会将用户请求转发到down掉的这台tomcat上。
二、需要掌握的技能
开发语言:推荐Java编程语言,因为该语言在互联网领域使用非常广泛,很多公司的软件都是使用Java语言开发的,所以当你对Java语言深入了解后和开发进行交流沟通无障碍以及做性能测试的时候比其他人做的更深入。
操作系统:现在大多数公司都使用Linux做为服务器,版本包括centos和ubuntu,绝大多数都是用centos系统;目前来说还是有少部分公司在使用windows server IIS来做服务器,基于市场的需求所以必须首先要会使用linux操作系统,然后要会使用linux的监控命令(通过监控命令获取服务器的数据信息和状态,那么在做性能测试瓶颈时就知道服务器处于什么状态时异常的)。
数据库:现在使用比较多的是SQL关系型数据库SQLServer、Mysql、对于金融行业如银行使用Oracle、DB2的比较多;NoSQL非关系型数据库用的则是Redis和MongoDB,做读写分离或者数据缓存以及ES数据库;那么作为性能测试肯定要会增删改查的操作,并且对数据库进行监控,同样根据数据库返回的状态信息,定位瓶颈后就可以进行调优了。
测试工具:第一种嘛就是自己通过Go、Java等语言进行开发一个性能测试工具;第二种则是市场应用比较多的工具则如Jmeter和LoadRunner,这里推荐使用Jmeter,原因是开源免费简单轻巧并且是纯Java语言开发的,而LoadRunner是收费且因功能强大所以比较笨重;因为是工具都不存在难度,用的多的熟练度就深了。
网络知识:网络对性能测试的影响非常大,如客户端向服务器发送请求数据,这个请求数据或者叫报文数据它是有一个大小的,当对后端接口调用传输的数据很大,而网络带宽不咋地这样就会导致该接口性能非常低,比如说网络带宽为10M,一次调用接口传输的数据大小为1M(举例),秒内并发最多能承受10个请求,所以在做性能测试时一定要对网络知识有一定的了解,不然连请求都没有发送到服务器怎么进行并发测试;其次对网络协议分层还是要进行了解,如OSI的七层模型以及TCP/IP四层模型。
业务知识:对于业务知识这一块是很重要的,当你进入一个公司或者企业,首选要对公司开发的产品进行熟悉,如该产品属于什么行业的,软件是干啥的,了解整个软件的业务流程,这样才能知道软件哪一块或者时候哪一个接口适用于做性能测试,那肯定是用户进行访问的接口了,最简单的例子就是注册和登录这两个接口,你肯定要清楚哪个接口是用户经常使用的,很明显就是登录接口,所以说了解公司产品业务是相当重要的。
行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群:,里面有各种软件测试+开发资料和技术可以一起交流学习哦。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!