一、性能测试有几种类型,它们之间什么关系?
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,常见的几种性能测试如下:
(1)负载测试
负载测试指的是最常见的验证一般性能需求而进行的性能测试,主要是考察软件系统在既定负载下的性能表现;
负载测试是站在用户的角度去观察在一定条件下软件系统的性能表现;
负载测试的预期结果是用户的性能需求得到满足。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等
(2)压力测试
压力测试是为了考察系统在极端条件下的表现,极端条件可以是超负荷的交易量和并发用户数;
负载测试指的是最常见的验证一般性能需求而进行的性能测试,主要是考察软件系统在既定负载下的性能表现;
负载测试是站在用户的角度去观察在一定条件下软件系统的性能表现;
负载测试的预期结果是用户的性能需求得到满足。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等
(2)压力测试
压力测试是为了考察系统在极端条件下的表现,极端条件可以是超负荷的交易量和并发用户数;
压力测试和负载测试不同的是,压力测试的预期结果就是系统出现问题,而我们要考察的是系统处理问题的方式;
压力测试是能让我们识别系统的弱点和在极限负载下程序将如何运行,负载测试关心的是用户规则和需求,压力测试关心的是软件系统本身
(3)并发测试
验证系统的并发处理能力。一般是和服务器端建立大量的并发连接,通过客户端的响应时间和服务器端的性能监测情况来判断系统是否达到了既定的并发能力指标;
(3)并发测试
验证系统的并发处理能力。一般是和服务器端建立大量的并发连接,通过客户端的响应时间和服务器端的性能监测情况来判断系统是否达到了既定的并发能力指标;
并发测试往往涉及服务器的并发容量,以及多进程/多线程协调同步可能带来的问题
(4)基准测试
当软件系统中增加一个新的模块的时候,需要做基准测试,以判断新模块对整个软件系统的性能影响;
(4)基准测试
当软件系统中增加一个新的模块的时候,需要做基准测试,以判断新模块对整个软件系统的性能影响;
基准测试的,需要打开/关闭新模块至少各做一次测试,关闭模块之前的系统各个性能指标记下来作为基准(Benchmark),然后与打开模块状态下的系统性能指标作比较,以判断模块对系统性能的影响
(5)稳定性测试
稳定性测试即测试系统在一定负载下运行长时间后是否会发生问题;
(5)稳定性测试
稳定性测试即测试系统在一定负载下运行长时间后是否会发生问题;
软件系统的有些问题是不能一下子就暴露出来的,或者说是需要时间积累才能达到能够度量的程度
(6)可恢复测试
测试系统能否快速地从错误状态中恢复到正常状态。比如,在一个配有负载均衡的系统中,主机承受了压力无法正常工作后,备份机是否能够快速地接管负载;
(6)可恢复测试
测试系统能否快速地从错误状态中恢复到正常状态。比如,在一个配有负载均衡的系统中,主机承受了压力无法正常工作后,备份机是否能够快速地接管负载;
可恢复测试通常结合压力测试一起来做。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
二、使用 JMeter开展性能测试
1、由于本身电脑里就有8.0版本的JDK,直接在官网下载了apache-jmeter-5.1.1版本安装,安装过程由于JDK版本高没有太大问题
1、由于本身电脑里就有8.0版本的JDK,直接在官网下载了apache-jmeter-5.1.1版本安装,安装过程由于JDK版本高没有太大问题
2、打开apache JMeter
3、添加HTTP请求,服务器或者ip键入www.taobao.com,端口默认,协议为HTTPS
4、.添加监听器并启动
5、进行多组负载测试
设置线程数为500
错误率为0
设置线程数为1000
错误率为0
设置线程数为101
错误率为0
从上面来看的话,淘宝作为大多数人在用的电商网站还是很不错的,错误率基本等于0
三、遇到的问题
1、第一次测试时没有注意循环问题,线程组设置1,导致测试不严谨,又重新测试
2.、测试用户数500中发生错误,由于没有设置出错后停止测试,导致一直测试