性能测试
1、性能测试的概念:使用工具模拟若干真实用户对系统发起访问,观察系统的各项性能指标是否达标
对性能测试的理解:稳定性、响应时间、高并发、服务器处理能力、正确性
选电脑、选手机:5000智能手机,500智能手机—区别 性能不一样-硬件性能、软件性能
2、性能测试和功能测试的关注点区别
功能测试关注:能不能用,所有的功能点都需要测,不管该功能点有没有人使用
性能测试关注:能不能高效快速使用,能不能稳定运行,关注用户高频使用的功能点(接口)或者系统的核心功能(接口)
3、为什么需要做性能测试?
问题:不做性能测试能不能上线?
答:可以
1) 满足需求方的需求
2)系统调优
3)找出系统的瓶颈----突破、预防
4)已经出现问题,重现问题,便于解决
4、性能测试的分类
购票网站----服务器
PC+浏览器|手机----客户端
按端分类:
客户端:移动端(APP)–使用监控软件监控CPU使用率,流量消耗情况、电量消耗情况、卡顿次数,崩溃次数(闪退)—monkey测试
服务器端:因为并发更大,所以测得更多
5、性能测试的工具
1) 代码–》java\python。。。
- jmeter —java 开发
3)loadrunner --C开发
4) locust(蝗虫) --python 开发的库
6、怎么做性能测试?
6.1 使用python 来完成一个简单的性能测试脚本
需求:模拟10个用户来登录蜗牛进销存
多线程 + 登录功能
6.2 使用jmeter 来进行性能测试
Jmeter
apache 基金会开发一个开源软件,支持二次开发,简单,轻量,支持多种协议;本身提供的场景有限,但是支持各种各样的插件
loadrunner --LR
商业付费软件,复杂,场景更真实(能够模拟的真实场景更多)
Jmeter 安装配置
准备条件:jmeter使用java开发,需要jdk 环境变量 java -version
安装:解压即安装 --注意不要有中文或者特殊符号的目录
启动:
1) bin 目录下点击jmeter.bat ;linux jmeter.sh
- 命令行 输入jmeter 启动,这种需要配置环境变量
jmeter 环境变量配置:a) 新建系统变量 JMETER_HOME,值为 D:\software\apache-jmeter-5.1
b) 系统变量PATH 后面追加 % JMETER_HOME%\bin,与其他变量之间用“;”隔开
检测jmeter 环境变量配置: 新的cmd 窗口,输入 jmeter -v
启动失败解决:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jwE7kz71-1623802838113)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210615154710966.png)]
jmeter 内存设置不合理
解决方案:
打开bin 目录 jmeter.bat ,搜索 set heap 关键字
**set HEAP=-Xms1024m -Xmx1024m **
jmeter 堆内存设置:
Xms:初始堆内存,表示启动jmeter 需要占用1024m(1g)内存,一般推荐设置为系统内存的1/64,最大不超过系统内存的1/2
Xmx:最大堆内存,表示jmeter 最大可以有多少内存,当初始堆内存使用完了的时候会向最大堆内存扩展,推荐设置为系统内存的1/16,最大不超过系统内存的1/2
实际:一般xms=xmx,或者xmx=2xms
注意:设置太小–jmeter 执行脚本的时候卡顿
设置太大–jmeter 启动失败
外观和语言设置:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9oKfzvXq-1623802838119)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210615160352940.png)]
注意:这里的语言设置是一次性的,永久设置需要修改配置文件
jmeter.properties ---->添加一行 language=zh_CN
jmeter 脚本的编写:
1)使用badboy 来录制
2)使用jmeter 自带的录制控制器来录制 ----默认端口8888
模板–》recording–>create-------->创建的是一个线程组+录制控制器+代理服务器
模板点击报错,手动添加HTTP代理服务器,录制线程组
adboy 来录制
2)使用jmeter 自带的录制控制器来录制 ----默认端口8888
模板–》recording–>create-------->创建的是一个线程组+录制控制器+代理服务器
模板点击报错,手动添加HTTP代理服务器,录制线程组