一、概念
1、什么是(软件)性能测试、负载测试、压力测试?
性能:事务、物品的某些特性的评价值
-
- 车子的百公里油耗、跑步一百米需要时间几秒,性能就是要找出这些油耗或时间
软件性能测试是:是用一定的技术,找出或验证某个性能指标值的测试
-
- 性能测试就是:检测系统的指标值
- 假设找出车子本身的油耗太高,没有达到自己预期期望的低油耗,就可以认为车子的性能没有达标
- 性能测试就是:检测系统的指标值
负载测试是:不断的增加压力,寻找服务器的瓶颈
压力测试是:在一定的压力下,持续运行一段时间(比较大的压力 + 比较长的时间*24)
2、企业什么时候做性能测试?
- 公司活动
- 功能测试完成之后
- 操作性能测试、如果用的是第三方接口,可以在功能测试之前就会开始性能测试
3、性能测试的前提
1、性能测试的必要性研究----关键项评估
前提:这几种情况都可以进行性能测试
- 主管部门、监管部门审查
- 涉及生命财产安全
- 大型新系统
- 核心系统
- 架构调整
- 业务剧增(活动)
- 重大缺陷修复
2、可测性定义
- 可量化为性能指标值
- 要达到的性能指标值?要达到什么目的?
4、性能测试主要指标
TPS---最主要的性能指标 -----主要衡量整体的一个性能指标
- 每秒通过事务数
- 服务器处理事务数
响应时间 = t1 + t2 + t3 -----主要衡量服务器处理速度
- 从发起请求到收到请求响应的时间
- 网络传输时间 t1 t3
- 服务器处理时间 t2
- t1 = 请求发送到服务器接收到的时间
- t2 = 服务器处理的时间
- t3 = 服务器放回响应的时间
并发数 -------主要衡量用户数量
- 单位时间内发起请求的用户数
- 线程数---虚拟用户数
- 没有进程数这个概念
吞吐量、吞吐率(事务/S Kb/s) ------主要用来衡量网络
- 吞吐量 —— 事务数==机场春运期间运送多少课程,吞吐量
- 吞吐率 —— 网络每秒通过的数据量==机场每秒运送多少乘客
服务器资源利用率 ----主要用来衡量服务器在做性能测试过程中他的服务器资源消耗的情况(CPU、内存、磁盘、io)
- 服务器CPU = 资源利用率的指标
- 随着性能测试的时候,会虚拟非常多的虚拟用户(几百上千)来进行,这样一来服务器的计算会非常多,累计的CPU利用率也会增长,如果利用率非常高说明逻辑有问题(代码的计算逻辑)
- 服务器内存
- 进程需要的内存
- 服务器磁盘
- 磁盘的读写
- 服务器i/o
- 数据交互是否过于频繁
5、开展性能测试必备条件
- 网络要独立:网络要求、内网(zoom域),外网,独立分开,千万不要用聘内网外网
- 独立环境 ,功能测试不能和性能测试公用环境、数据库环境也要分开(互补影响)
6、聚合报告参数详解
1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
2. #Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
3. Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
4. Median:中位数,也就是 50% 用户的响应时间
5. 90% Line:90% 用户的响应时间
6. Min:最小响应时间
7. Max:最大响应时间
8. Error%:错误率——错误请求数/请求总数
9. Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
10. KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
7、性能测试报告中关注点
- #Samples 请求数
- Average 平均响应时间
- Min 最小响应时间
- Max 最大响应时间
- Error% 错误率
- Throughput 吞吐量
8、jmeter 文件目录介绍
- D:\Program Files (x86)\apache-jmeter-5.1.1\printable_docs : 文件中的 index.html 使用谷歌打开 翻译
- bin :启动脚本、配置文件
- ApacheJMeter.jar 也可以启动:如果配置了环境变量,可以直接双击执行 bin 文件下 ApacheJMeter.jar 也可以启动
- jmeter.bat 也可以启动
- jmeter.log 文件代表,记录启动日志
- jmeter.properties 是jmeter的配置文件
- jmeter.sh Linux启动文件
- jmeter-server.bat 用来分布式配置
- docs:api文档
- 二次开发的时候才有用
- lib 存放的架包
- /lib/ext:放第三方文件
- printable_docs:帮助文档
- 比如:index.html
9、http 协议
- 协议:超文本传输协议 HTTPS = HTTP基础上 + ssl(tls)的认证
- 用于规定客户端与服务端的数据传输格式
- http下两种协议
- TCP 面向连接,提供可靠数据传输 srt dst (三次握手四次挥手)
- UDP 无连接的,尽快传输数据
- 请求的四部分:
- 请求行
- 请求头
- 空一行
- 请求体
- 响应的四部分:
- 响应行
- 响应头
- 空一行
- 响应体
10、抓包 swagger (丝袜哥)接口
自行理解:https://petstore.swagger.io/
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******