第四次作业—— 性能测试(含JMeter实验)
一、性能测试有几种类型,它们之间什么关系?
性能测试包括:负载测试、压力测试、配置测试、并发测试、容量测试、可靠性测试、失败测试。
负载测试:是通过逐渐增加系统的负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能承受的最大负载量的测试。简而言之,负载测试时通过逐步加压的方式来确定系统的处理能力和能够承受的各项阈值。
压力测试:是通过逐步增加系统的负载,测试系统性能的变化,并最终确定在什么负载条件下,系统性能处于失效状态,并获得系统能提供的最大服务级别的测试。压力测试是逐步增加负载,使系统某些资源达到饱和和甚至失效。
配置测试:主要是通过对被测试软件的软硬件配置进行测试,找到系统各项资源的最优分配原则。配置测试能充分利用有限的软硬件资源,发挥系统的最佳处理能力,同时可以将其与其他性能测试类型联合应用,从而为系统提供重要依据。
并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及一些并发测试。
容量测试:在一定的软、硬件条件下,在数据库中构造不同数量级的记录数量,通过运行一种或多种业务场景在一定虚拟用户数量的情况下,获取不同数量级别的性能指标,从而得到数据库能够处理的最大会话能力,最大容量等。系统可处理同时在线的最大用户数,通常和数据库有关。
可靠性测试:通过给系统加载一定的业务压力(如CPU资源在70%~90%的使用率)的情况下,运行一段时间,检查系统是否稳定因为运行时间较长,通常可以测试出系统是否有内存泄漏等问题。
失败测试:对于有冗余备份和负载均衡的系统,通过失败测试来检验如果系统局部发生故障,用户能否继续使用系统,用户受到多大的影响,如几台机器做均衡负载,一台或几台机器垮掉后系统能够承受的压力。
负载测试和压力测试都属于性能测试,两者可以结合进行。负载测试是慢慢增加测试难度,压力是一次性施加系统所能承受的最大或者当前瓶颈,以求得目前的极限性能。
二、使用 JMeter开展性能测试
1.下载安装JMeter
电脑安装了Java,之前配置好了JDK。
JMeter下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 不知为何还是下载断断续续的。
下载好后直接解压,我下载时版本更新到了5.1.1,打开的是:
打开后
添加线程组
暂时设置10线程数,1s准备时长,其余默认。然后添加HTTP请求,网址选择www.12306.cn
添加查看结果树(发现12306查看网络错误所以换成百度)
添加用户自定义变量
添加断言、断言结果和聚合报告
测试多组负载
并发用户数100:
并发用户数500:
并发用户数1000:
心得:一开始用12306发现有错于是用了百度来测试,我在设置路径为/s的情况下运行发现响应时间过慢于是将其去掉,然后进行测试,在并行用户为100时并无异常,但测试500时发现一直卡顿在403且在350左右开始有异常,测试1000时卡顿在710且在350左右异常。