性能测试——针对新手小白
为什么要学性能测试
进行性能测试:满足真实的业务场景(活动场景)满足商用要求支持大量的用户。满足商用要求。
性能概念
什么是性能?
性能:就是软件质量属性中的"效率"特性
什么是性能测试?
性能测试概念:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程

- 后台处理程序的性能(代码性能)
- 应用服务器、数据库、架构设计等是否存在瓶颈
- 服务器资源消耗(CPU、内存、磁盘、网络)
性能测试的目的是什么?
1、评估当前系统能力
例如:验收第三方提供的软件
性能需求文档
常见性能需求
1、WEB首页打开速度5s以下,web登陆速度 15s以下
2、邮件服务支持50万个在线用户
3、计费话单成功率达到99.999%以上。
4、在100个并发用户的高峰期,邮箱的基本功能,处理能力至少达到10TPS
5、系统能在高于实际系统运行压力1倍的情况下,稳定的运行12小时
6、这个系统能否支撑200万的vu(每天登录系统的人次)vu----Virtual user(虚拟用户)
2.寻找性能瓶颈,优化性能

3、评估软件是否能够满足未来的需要

功能测试与性能测试的区别
焦点不一样
功能测试:验证软件系统操作功能是否符合产品功能需求规格,主要焦点在功能(正向、逆向)
正向(功能),例如:输入正确的用户名密码,登录成功
逆向(功能),例如:输入错误的用户名密码,登录失败给出提示
性能测试:验证软件系统是否满足业务需求场景,主要焦点是业务场景的满足(时间、资源);
例如:100W人使用正确的用户名密码登录,1s内能登录成功, 时间
同时服务器的CPU使用率低于70%,内存使用率低于60等 资源
测试策略
1、基准测试
思考:
1、单用户性能不达标,有必要进行多用户性能测试吗?
2、影响性能的因素有很多(如:服务器配置、资源、代码效率),如何判断谁在导致性能变好/变坏?
狭义上讲:就是单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。
第1次:用户输入正确用户名密码,登录成功,耗时10ms
第2次:用户输入正确用户名密码,登录成功,耗时9ms
第3次:用户输入正确用户名密码,登录成功,耗时9.5ms
第4次:用户输入正确用户名密码,登录成功,耗时8.5ms
第5次:用户输入正确用户名密码,登录成功,耗时11ms.........
第100次:用户输入正确用户名密码,登录成功,耗时10ms
广义上讲:是一种测评估量和软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
基准测试:商城V1.0版本,模拟5w用户在硬件服务器(8CPU16G内存)上运行,下订单响应时间为3s-基准线
测试场景1:商城V1.0版本,模拟5w用户在硬件服务器(8GPU32G内存)上运行,下订单响应时间为2.5s
测试场景2:商城V1.0版本,模拟10w用户在硬件服务器(8GPU16G内存)上运行,下订单响应时间为4s
测试场景3:商城v1.1版本,模拟5w用户在硬件服务器(8CPU16G内存)上运行,下订单响应时间为2.8s
2、负载测试
思考:
电商系统平时可以正常运行,
双11时能保证也可以正常运行吗? 一用户量大
通过逐步增加系统负载,找出系确定在满足系统的性能指标情况下统所能够承受的最大负载量的测试。
电梯案例
电梯行业规范:电梯从1楼到5楼(15m)的运行时间不超过24s
进行负载测试:
case1:1人乘坐电梯,从1楼到5楼,运行时间为20s
case2:7人乘坐电梯,从1楼到5楼,运行时间为20s
case3:13人乘坐电梯,从1楼到5楼,运行时间为20s
case4:16人乘坐电梯,从1楼到5楼,运行时间为25s
Case5:19人乘坐电梯,从1楼到5楼,运行时间为28s
Case6:21人乘坐电梯,从1楼到5楼,运行过程中绳子断了。。。
练习
对商城系统进行负载测试:
模拟用户请求商城的首页(每个用户每秒钟发送10个请求),系统要求请求首页的时间不超过2s,测试商城系统的最大负载量。
测试步骤:
Case1:模拟1个用户,请求商城首页,记录运行时间
Case2:模拟5个用户,请求商城首页,记录运行时间
Case3 :模拟10个用户,请求商城首页,记录运行时间
Case4:模拟20个用户,请求商城首页,记录运行时间
Case5:模拟30个用户,请求商城首页,记录运行时间
该测试需要安装Jmeter
一、检查电脑是否有java的JDK,
显示版本号代表成功

二、下载Jmeter安装包
1.2、官网下载链接Apache JMeter - Download Apache JMeter
点击下载框中的zip包,zip后缀那个才是Windows系统的jmeter

2、下载完成后解压到指定盘符,我是解压到D:盘下的,只要自己记得住在哪就好,后面配置环境变量要用到

三、配置jmeter运行环境
1、桌面任务栏里点击放大镜,搜索控制面板

2、进入控制面板搜索环境变量

3、点击编辑系统环境变量

4、选择环境变量

5、然后点击新建

6、然后创建一个变量名,变量值就是浏览刚才Jmeter安装包的解压目录就可以了
JMETER_HOME
7、然后再创建一个变量CLASSPATH,
CLASSPATH
这个就不要用浏览目录了,可以复制下面这一串,把下面这一串复制到变量值中(前提是CLASSPATH这个变量是你自己创建的,而不是本来就有的)
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;%JMETER_HOME%\lib\jorphan.jar;
8、最后找到Path变量,在Path中添加一个变量,双击Path,点击新建按钮

9、 新建一个变量,可以直接复制进去
%JMETER_HOME%\bin

10、弄完了就点击确定!确定!确定!全部点确定
四、验证Jmeter是否配置成功
1、按win+r键,输入cmd,唤出命令窗口,输入jmeter,如果是下图这样,就安装成功啦

配置好后,你就可以在cmd命令窗口启动了jmeter啦!
五、更改语言
修改配置文件永久更改
这种方法会直接修改 JMeter 的配置文件,以后每次启动都会是中文界面。
-
用文本编辑器打开配置文件:
-
使用记事本、Notepad++、VS Code 等文本编辑器。
-
打开 JMeter 安装目录下
bin文件夹中的jmeter.properties文件。
-
-
查找并修改语言设置:
-
在文件中使用
Ctrl + F搜索以下内容:
text
#language=en
-
你会找到这一行(前面的
#表示该行是注释,配置不起效)。
-
-
取消注释并更改语言代码:
-
将这一行修改为:
text
language=zh_CN
-
关键步骤:务必删除行首的
#号,这样才能取消注释,使配置生效。 -
修改后保存文件。
-
-
重启 JMeter:
-
非常重要:关闭所有已经打开的 JMeter,然后重新启动它。新的配置就会生效,界面将永久变为简体中文。
-
语言代码说明
-
zh_CN:简体中文(中国) -
zh_TW:繁体中文(台湾) -
en:英语 -
fr:法语 -
de:德语
你可以根据需要将 zh_CN 替换为其他语言代码。

添加线程组

在线程组里添加http请求
在线程组里添加聚合报告
一个用户请求需要的时间大概0.066 秒

五个用户请求需要时间大概0.106秒
十个用户请求需要时间大概0.16 秒

二十个用户请求需要时间大概0.22 秒

三十个用户请求需要时间大概0.34秒

3、稳定性测试
为什么要进行稳定性测试
思考:
电商系统能抗住双11时的考验能保证长时间运行不出问题吗?
稳定性测试概念
在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求。
稳定运行时的负载量设置为多少?
例如:前面电梯案例中,实际测试的最大负载为:13人场景1:如果甲方要求用户正常的负载人数为15人,稳定运行的负载量为多少?(此时是bug,测不了。因为最大负载为13,无法满足用户需求,不能测稳定性)
场景2:如果甲方要求用户正常的负载人数为10人,稳定运行的负载量为多少? (正常测10)
4、压力测试
为什么要进行压力测试?
1、软件实际使用时,用户量超过预期(系统最大负载量),该如何反应?
2、软件由于意外情况出现问题,多久能恢复?
压力测试的概念
在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力。
5、并发测试
为什么要进行并发测试?
电商系统能抗住双11时的考验能保证在秒杀活动时不出问题吗?
并发测试的概念
并发测试(绝对并发):是指在极短的时间内,,发送多个请求,,来验证服务器对并发的处理能力。
生活中的案例:
悬赏任务: 做菜 - 西红柿炒鸡蛋(但是只有一个鸡蛋和一个西红柿)

使用场景:抢红包、秒杀、抢购
更多推荐
所有评论(0)