• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

服务器性能测试

武飞扬头像
花间无久
帮助1

概念性能测试:用自动化工具,模拟不同场景,对软件各项性能指标进行测试和评估的过程性能指标:

  1.  
    * 响应时间:请求发起到请求响应的时间
  2.  
    * 并发数:并发测试的用户数
  3.  
    * 吞吐量:单位时间内处理客户端请求的数量
  4.  
     
  5.  
    * TPS:每秒事务(业务请求)数,TPS=并发数/平均响应时间
  6.  
    * QPS:每秒查询数,控制服务器处理指定请求数
  7.  
     
  8.  
    * 点击数(web项目):整个页面(含图片,链接,框架等)向服务器发送的请求数
  9.  
    * 错误率:负载情况下失败的概率(一般不超千分之五),错误率=失败业务数/业务总数
  10.  
    * 资源利用率:系统资源使用情况,资源使用量/总资源可用量
  11.  
    * PV和UV:

栗子:

  1.  
    * 后台代码性能
  2.  
    * 中间件(Tomcat,Apache等)、数据库、架构设计等查找瓶颈
  3.  
    * 服务器资源消耗(CPU、内存、磁盘、网络)

性能测试目的: 评估系统能力,寻找系统性能瓶颈,并优化,评估是否满足未来需求性能测试策略:基准测试:单用户运行的性能指标作基准做参考负载测试:逐步增加请求,确定最大负载量稳定性测试:服务器正常运行长时间测试满足业务需求(1天、1周等)并发测试:极短时间发送多个请求,验证并发处理能力压力测试:强负载下系统达到峰值情况发现问题,看系统的容错能力和可恢复能力容量测试等:极限压力下的各种极限参数值(TPS吞吐量,最大连接数,最大并发数等)
性能测试流程

1. 性能测试需求分析
  1.  
    * 熟悉被测系统
  2.  
    * 明确测试内容
  3.  
    * 明确测试策略
  4.  
    * 明确性能测试指标
1. 性能测试计划及方案
  1.  
    * 项目背景
  2.  
    * 测试目的
  3.  
    * 测试范围
  4.  
    * 测试策略
  5.  
    * 风险控制
  6.  
    * 交付清单
  7.  
    * 进度与分工
  1.  
    1. 性能测试用例
  2.  
     
  3.  
    2. 测试脚本编写/录制
  4.  
     
  5.  
    3. 建立测试环境
  6.  
     
  7.  
    4. 执行测试脚本
  1.  
    * 性能场景设置
  2.  
    * 执行脚本(已调试)
1. 性能测试监控
* 监控性能指标
1. 性能分析与调优
  1.  
    * 结果对比,提出性能瓶颈
  2.  
    * 调优难易(硬件-网络-服务器和数据库等-源代码和数据库脚本-系统架构)
1. 性能测试报告
  1.  
    * 覆盖情况,问题(分析-调优-解决)
  2.  
    * 风险规避控制
  3.  
    * 教训总结经验

性能测试工具Jmeter安装与Demo测试

* LoadRunner(收费)和Jmeter(免费)

环境搭建

  1.  
    * 安装JDK
  2.  
    * 安装Jmeter
  3.  
    * 启动双击jmeter.bat

界面介绍

  1.  
    * 菜单栏:FileSearch,Edit,Run,Option,Help
  2.  
    * 工具栏:New,Template,Save,StartStop
  3.  
    * 左侧面板:Test Plan
  4.  
    * 右侧面板:详情参数设置区域

Demo1:
步骤:

  1.  
    1. 测试计划中添加线程组
  2.  
    2. 线程组添加Http请求
  3.  
    3. 线程组添加结果查看树

参数化

  1.  
    * 用户定义变量
  2.  
    * 用户参数
  3.  
    * CSV Date Set Config
  4.  
    * 函数

通过${att_name}来引用变量

  1.  
    1. 用户定于变量(单独一组变量)
  2.  
    2. 用户参数(多组数据)
  3.  
    3. CSV Date Set Config(多组数据)
  4.  
    4. 函数counter(计算请求数和用户数),random(生成随机数),timeshift(时间戳)

5.CSV和用户定义变量的作用域

  1.  
    * csv是对针对线程
  2.  
     
  3.  
    * 对所有线程组中线程生效:父节点是测试计划,并线程共享模式为所有线程
  4.  
    * 对当前线程组生效:父节点是某个线程组
  5.  
     
  6.  
    * 用户定义变量针对测试计划
  7.  
     
  8.  
    * 无论用户定义变量组件在哪里,都对整个测试计划生效

断言响应断言
Json断言
持续时间断言
关联正则表达式提取器参数解释
XPath提取器参数解释
JSON提取器
跨线程组关联(不同的两个线程组)

  1.  
    * __setProperty函数,将值存为Jmeter属性
  2.  
    * __property函数读取Jmeter属性值
  3.  
    * 使用BeanShell取样器

脚本录制

  1.  
    * 设置代理服务器
  2.  
    * Jmeter配置非测试元件http代理服务器
  3.  
    * 设置过滤(类似fiddler)注意代理服务器端口一致栗子:

启动:证书认证
录制:打开目标网站

拓展:
信息头管理器:
Cookie管理器:
连接数据库

  1.  
    * 启动数据库服务
  2.  
    * 配置mysql连接jar包
  3.  
    * 配置数据库数据
  4.  
    * 添加线程组(jdbc请求)
  5.  
    * 结果树查看

逻辑控制器if控制

* 变量调用的方法

循环控制
foreach控制

* 使用场景:和用户自定义变量/正则表达式一起使用

定时器同步定时器

  1.  
    * 阻塞线程,达到指定数量,立即释放并发请求
  2.  
    * 阻塞数量不满足时,会一直处于阻塞状态无法发送请求(数量必须整除)
  3.  
    * 阻塞数量不满足可设置阻塞超时时间,达到时间直接请求

常数吞吐定时器使用场景:一个用户以10QPS(10次/s)频率访问百度首页,持续一段时间统计运行情况
分布式测试使用场景:高并发,单台电脑(cpu和内存无法支持)

  1.  
    * 原理:一台控制机,其它是代理机。执行时控制机发送脚本到代理机,代理机执行,类似命令行模式执行,不用打开jmeter界面,执行结束代理机传回执行结果汇总
  2.  
    * 控制机
  3.  
    * 代理机

测试报告
命令行生成:
jmeter -n -t ceshi.jmx -l re.jtl -e -o ./report

  1.  
    * -n:非GUI模式执行Jmeter
  2.  
    * -t [jmx file]:指定脚本文件
  3.  
    * -l [result file]:结果文件
  4.  
    * -e:生成测试报告
  5.  
    * -o [html report folder]:测试报告存放路径

性能测试常用图表

  1.  
    * PV(Pege View),打开一次页面 1数量
  2.  
    * UV(unique visitor)唯一访问量,记录真实用户访问数量

常用平均并发数计算公式

* 普通计算方法

TPS = 总请求数/总时间

* 二八原则计算方法

TPS = 总请求(80%)/总时间(20%)

* 按业务数计算

插件管理包

  1.  
    * 下载对应jar包
  2.  
    * jar包放入jmeter的第三方库中lib/ext/
  3.  
    * 下载常用组件https://jmeter-plugins.org/install/Install/
  1.  
    1. Concurrency Thread Group 线程组,线程中创建
  2.  
    2. Transactions per Second 每秒事务数,监听器中创建
  3.  
    3. Bytes Throughput Over Time 吞吐量,监听器中创建
  4.  
    4. PerfMon Metrics Collector 性能指标收集器,监听器中创建

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhhhgeh
系列文章
更多 icon
同类精品
更多 icon
继续加载