服务器性能测试
概念性能测试:用自动化工具,模拟不同场景,对软件各项性能指标进行测试和评估的过程性能指标:
-
* 响应时间:请求发起到请求响应的时间
-
* 并发数:并发测试的用户数
-
* 吞吐量:单位时间内处理客户端请求的数量
-
-
* TPS:每秒事务(业务请求)数,TPS=并发数/平均响应时间
-
* QPS:每秒查询数,控制服务器处理指定请求数
-
-
* 点击数(web项目):整个页面(含图片,链接,框架等)向服务器发送的请求数
-
* 错误率:负载情况下失败的概率(一般不超千分之五),错误率=失败业务数/业务总数
-
* 资源利用率:系统资源使用情况,资源使用量/总资源可用量
-
* PV和UV:
栗子:
-
* 后台代码性能
-
* 中间件(Tomcat,Apache等)、数据库、架构设计等查找瓶颈
-
* 服务器资源消耗(CPU、内存、磁盘、网络)
性能测试目的: 评估系统能力,寻找系统性能瓶颈,并优化,评估是否满足未来需求性能测试策略:基准测试:单用户运行的性能指标作基准做参考负载测试:逐步增加请求,确定最大负载量稳定性测试:服务器正常运行长时间测试满足业务需求(1天、1周等)并发测试:极短时间发送多个请求,验证并发处理能力压力测试:强负载下系统达到峰值情况发现问题,看系统的容错能力和可恢复能力容量测试等:极限压力下的各种极限参数值(TPS吞吐量,最大连接数,最大并发数等)
性能测试流程
1. 性能测试需求分析
-
* 熟悉被测系统
-
* 明确测试内容
-
* 明确测试策略
-
* 明确性能测试指标
1. 性能测试计划及方案
-
* 项目背景
-
* 测试目的
-
* 测试范围
-
* 测试策略
-
* 风险控制
-
* 交付清单
-
* 进度与分工
-
1. 性能测试用例
-
-
2. 测试脚本编写/录制
-
-
3. 建立测试环境
-
-
4. 执行测试脚本
-
* 性能场景设置
-
* 执行脚本(已调试)
1. 性能测试监控
* 监控性能指标
1. 性能分析与调优
-
* 结果对比,提出性能瓶颈
-
* 调优难易(硬件-网络-服务器和数据库等-源代码和数据库脚本-系统架构)
1. 性能测试报告
-
* 覆盖情况,问题(分析-调优-解决)
-
* 风险规避控制
-
* 教训总结经验
性能测试工具Jmeter安装与Demo测试
* LoadRunner(收费)和Jmeter(免费)
环境搭建
-
* 安装JDK
-
* 安装Jmeter
-
* 启动双击jmeter.bat
界面介绍
-
* 菜单栏:File,Search,Edit,Run,Option,Help
-
* 工具栏:New,Template,Save,Start,Stop等
-
* 左侧面板:Test Plan
-
* 右侧面板:详情参数设置区域
Demo1:
步骤:
-
1. 测试计划中添加线程组
-
2. 线程组添加Http请求
-
3. 线程组添加结果查看树
参数化
-
* 用户定义变量
-
* 用户参数
-
* CSV Date Set Config
-
* 函数
通过${att_name}来引用变量
-
1. 用户定于变量(单独一组变量)
-
2. 用户参数(多组数据)
-
3. CSV Date Set Config(多组数据)
-
4. 函数counter(计算请求数和用户数),random(生成随机数),timeshift(时间戳)
5.CSV和用户定义变量的作用域
-
* csv是对针对线程
-
-
* 对所有线程组中线程生效:父节点是测试计划,并线程共享模式为所有线程
-
* 对当前线程组生效:父节点是某个线程组
-
-
* 用户定义变量针对测试计划
-
-
* 无论用户定义变量组件在哪里,都对整个测试计划生效
断言响应断言
Json断言
持续时间断言
关联正则表达式提取器参数解释
XPath提取器参数解释
JSON提取器
跨线程组关联(不同的两个线程组)
-
* __setProperty函数,将值存为Jmeter属性
-
* __property函数读取Jmeter属性值
-
* 使用BeanShell取样器
脚本录制
-
* 设置代理服务器
-
* Jmeter配置非测试元件http代理服务器
-
* 设置过滤(类似fiddler)注意代理服务器端口一致栗子:
启动:证书认证
录制:打开目标网站
拓展:
信息头管理器:
Cookie管理器:
连接数据库
-
* 启动数据库服务
-
* 配置mysql连接jar包
-
* 配置数据库数据
-
* 添加线程组(jdbc请求)
-
* 结果树查看
逻辑控制器if控制
* 变量调用的方法
循环控制
foreach控制
* 使用场景:和用户自定义变量/正则表达式一起使用
定时器同步定时器
-
* 阻塞线程,达到指定数量,立即释放并发请求
-
* 阻塞数量不满足时,会一直处于阻塞状态无法发送请求(数量必须整除)
-
* 阻塞数量不满足可设置阻塞超时时间,达到时间直接请求
常数吞吐定时器使用场景:一个用户以10QPS(10次/s)频率访问百度首页,持续一段时间统计运行情况
分布式测试使用场景:高并发,单台电脑(cpu和内存无法支持)
-
* 原理:一台控制机,其它是代理机。执行时控制机发送脚本到代理机,代理机执行,类似命令行模式执行,不用打开jmeter界面,执行结束代理机传回执行结果汇总
-
* 控制机
-
* 代理机
测试报告
命令行生成:
jmeter -n -t ceshi.jmx -l re.jtl -e -o ./report
-
* -n:非GUI模式执行Jmeter
-
* -t [jmx file]:指定脚本文件
-
* -l [result file]:结果文件
-
* -e:生成测试报告
-
* -o [html report folder]:测试报告存放路径
性能测试常用图表
-
* PV(Pege View),打开一次页面 1数量
-
* UV(unique visitor)唯一访问量,记录真实用户访问数量
常用平均并发数计算公式
* 普通计算方法
TPS = 总请求数/总时间
* 二八原则计算方法
TPS = 总请求(80%)/总时间(20%)
* 按业务数计算
插件管理包
-
* 下载对应jar包
-
* jar包放入jmeter的第三方库中lib/ext/下
-
* 下载常用组件https://jmeter-plugins.org/install/Install/
-
1. Concurrency Thread Group 线程组,线程中创建
-
2. Transactions per Second 每秒事务数,监听器中创建
-
3. Bytes Throughput Over Time 吞吐量,监听器中创建
-
4. PerfMon Metrics Collector 性能指标收集器,监听器中创建
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhhhgeh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22