此篇为博主原创内容,若转载请写明出处,谢谢!
前言
在搭建之初,我们要思考的2个点:
1.性能怎么测试?
2.性能的测试环境如何搭建(该如何去做)?
1.什么是性能?
个人理解为:合理的架构、低耦合、高内聚、吞吐好,计算强,一系列的组合
2.什么是性能测试?
通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
3.性能测试的目的:
性能测试的目的,简单说其实就是为了获取待测系统的响应时间、吞吐量、稳定性、容量等信息。而发现一些具体的性能相关的缺陷(如内存溢出、并发处理等问题),我认为只是一种附加结果。从更高的层次来说,性能测试最想发现的,是瓶颈。如何能得到所需要的信息,就需要从多方面进行测试。
2.性能怎么测试?
在实际工作,一般的应用系统会从这么几个方面进行性能测试:
1.基准测试
Benchmark或者Baseline测试。一般为单用户测试,或者是零数据量环境下的测试。目的在于建立一个可度量的参考标准,为其他测试场景或者调优过程提供对比参考。也可认为是最基础的性能测试,如果基准测试的结果都不能达到预期要求,那么后续场景也就没必要测试了。
2.日常压力测试
在基准测试通过后,应该先进行较小压力下的测试,首先对系统在日常压力下的表现进行测试。此压力需要根据系统使用相关数据得出,如系统平均每天访问量、平均在线人数、每日完成事务数等。通过此测试,发现一些较表面的性能问题并进行处理。
3.峰值压力测试
在日常压力测试通过后,需要进行更大压力的测试。此处压力同样需要相关数据的支持,一般为未来几年后的预期压力。可根据历史日均压力、日最高压力等信息,估算出未来几年的日均以及日最高压力。再通过一些通用估算方法、如二八原则(80%的工作在20%时间内完成,相当于2小时完成一天8小时的工作量),将日压力转换成峰值压力。
峰值压力为可预期到的最大负载压力,通过了此测试,则认为系统有能力满足未来增长的压力。
4.容量测试
验证了系统是否可满足预期的压力后,还需要知道系统能够承受的最大压力,也就是容量。一般通过“拐点法”进行测试,逐步增大系统的压力,直到性能指标不可接受或者出现了明显的拐点
5.稳定性测试
验证系统是否可长期稳定的运行,是否存在一些短时间内可能无法发现的缺陷(如内存溢出、数据库连接不释放等)。为了缩短测试工期,一般可将预期一天的压力集中在2小时内完成(二八原则),这样持续加压10小时,便相当于系统运行5天。注意监控各种性能指标是否平稳,有无下降。
性能测试要统一考虑这么几个因素:Thoughput吞吐量,Latency响应时间,资源利用(CPU/MEM/IO/Bandwidth…),成功率,系统稳定性
二、性能测试环境搭建:
1.搭建被测试对象服务器
2.搭建测试所需要用到的数据库【Oracle or mySQL】
3.本地进行Jmeter的下载以及环境配置
因性能需求,个人所需的被测试对象服务器采用虚拟机:1G内存,1核CPU,软体为:Centos 7
本人使用电脑为Mac,所以,上述工作为此带来大量的工作量,新手建议在windows下列进行上述环境搭建。
搭建步骤:
1.Mac采用VMware Fusion 搭建虚拟机。
2.搭建完成后,在虚拟机进行环境配置(详细步骤不做阐述,可百度):
1.卸载linux自带JDK
2.下载SUN 公司的JDK进行安装
3.安装成功后进行环境变量配置
4.下载tomcat
5.进行tomcat环境变量配置包括端口名称的更改,有些端口会占用
6.可对tomcat进行设置为开机启动(自选)
7.tomcat启动后,打开firefox进行登录check,查看localhost:xxxx/是否成功开启,若是开启失败,请自行百度,成功说明没有问题
8.在虚拟机启动后,关闭防火墙(不同公司的linux命令不同,请自行百度)
9.设置桥接(wifi连接与网线连接有区别,所以要进行设置),原因:其他机器需要访问你虚拟机所以要开启桥接,方便日后测试
设置完毕后,在本机访问虚拟机下的tomcat服务器,在此,要使用虚拟机IP+端口进行访问,若是无法访问,需要看桥接是否正常开启
二:根据公司性能需求,搭建所需开发框架,之后进行打包操作,本人使用的是IntelliJ IDEA IDE编辑器
在使用的过程中,需要使用到maven进行打包
打包成功后,把war包加载入虚拟机中,war包放入tomcat下webapps下,并开启tomcat服务,war会自动解析,
查看是否已上传成功,可根据ip+端口+项目目录名称/index.jsp进行访问。
其中坑多的点在于:
1.tomcat
2.虚拟机网络设置、防火墙无法永久性关闭
3.tomcat若是不觉得麻烦,不要对其做过多修改,避免出现更多奇奇怪怪问题,比如更改server。xml等等文件操作,需谨慎
4.项目打包时,需要本地提前做数据库以及其他的相关操作,并验证是否可以通过编译不会出错
5.如何将本机的war包放入虚拟机中?
我的操作是将本地搭建一个ftp,然后虚拟机进行访问
windows下列可以进行一个共享文件夹进行访问