性能测试之理论知识

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 性能测试之理论知识

进程:程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。通俗来说,进程就是程序的一次执行过程。我们在电脑上打开很多应用,每一个应用就可以看作是一个进程。


线程:一个进程中可以包含许多线程,线程中所使用的资源都来源于进程。


性能测试环境必备条件

  1. 网络要求
    • 内网、外网独立分开,不要跨内网外网(云服务器除外)
    • 使用有线网络,不要用wifi网络(特别是在大并发量时,不要用wifi网络)
  2. 服务器环境
    • 与生产环境硬件配置相同的服务器及集群
    • 功能测试与性能测试不能共用一套环境

性能测试步骤

  1. 性能测试准备
    • 需求分析
    • 确定性能指标
    • 熟悉产品架构/框架
    • 微服务数据流向
    • 编写测试用例、及确定测试场景
  2. 搭建性能测试环境
    • 工具选型与准备
    • 被测系统环境搭建(应用服务器,数据库数据)
    • 网络配置
  3. 性能测试脚本开发
  4. 性能测试脚本执行
  5. 结果分析与调优
    • 分析依据:结果图表
    • 分析思路:服务器硬件瓶颈 > 网络瓶颈 > 服务器os瓶颈(参数配置、数据库、web服务器) > 应用瓶颈(sql语句、数据库设计、业务逻辑、算法)
  6. 测试报告与结果跟踪

性能测试相关概念
性能测试

  • 狭义:通过工具,找出或获取系统在不同工况下的性能指标
  • 广义:负载测试、压力测试、容量测试、稳定性测试等
    负载测试:逐步增加系统负载,测试系统性能变化,并最终确定系统所能承受的最大负载区间。
  • 关键词:逐步增加并发用户数
  • 目的:找出最大并发量
    压力测试:在一定的性能压力下,持续运行比较长的时间(小时),观察系统服务及资源使用情况
  • 关键词:较大压力 + 较长时间
  • 目的:测试服务器的稳定性
    可靠性测试 / 稳定性测试:同压力测试,只是压力比较小
    容量测试:在一定的软硬件条件下,在数据库不同数量级数据量的情况时,对系统中读写较多的业务进行测试,从而获取不同数据量级下的性能指标
  • 关键词:不同数量级
  • 数据量尽量与生产保持一致
    测试顺序
    1. 先做负载测试,得到最大并发用户数区间。
    2. 再做性能测试,得到最大并发用户数具体值和对应的指标。
    3. 如果服务器有不稳定的问题,做压力测试

性能测试指标

  1. 并发
    • 狭义:同一时间点,发起相同的请求
    • 广义:同一时间点,发起相同或不同的请求
  2. 并发用户数(并发量):同一时间点,发起请求的用户数,在Jmeter中指线程数(一般jmeter单台电脑可支持1000-1500并发)
  3. 事务:在Jmeter中,默认一个取样器的一个请求,为一个事务。也可以通过事务控制器,控制多个取样器,为一个事务
  4. TPS(Transaction Per Second):服务器每秒处理的事务数。衡量服务器最重要的指标。
  5. 响应时间:从发起请求到收到请求响应的时间。包括:发起请求网络传输理时间 + 服务器处理时间 + 返回响应网络传输时间。
    • 得到真正的服务器处理时间,需要降低网络传输时间,要具备良好的网络条件(使用网线,不用wifi)
  6. 网络:除做视频、直播、文件存储的业务,其它业务网络瓶颈的存在率较低
    • 网络带宽指每秒传输的数据量
    • 单位:Mb/s
    • 换算:1B=8bit,例:100Mb/s带宽换算为实际网速,100Mb/s = 100 / 8 MB/s = 12.5 MB/s,12.5MB/s = 12.5 * 1024 KB/s = 12800 KB/s
  7. 吞吐量:单位时间内处理的请求数量(事务/s)。在没有网络瓶颈和并发用户数不变时,吞吐量=TPS。吞吐量是衡量网络的重要指标。
  8. 吞吐率:单位时间内传输多少KB的数据量,KB/s。
  9. QPS(Query Per Second):每秒查询的次数
  10. RPS(Request Per Second):每秒请求的次数
  11. HPS(Hit Per Second):每秒点击的次数

资源利用率

  • CPU
  • Memory
  • I/O
    ps:一般不超过80%

性能测试策略:缓起步,持续时间长,快结束

  • 如果起步过快,如:ramp-up为1s,线程数为200。有可能在1s内无法产生200个线程数,从而导致线程数达不到200。如果产生了200个线程,也可能向服务器发起瞬间请求过大,造成服务器异常
  • 如果结束慢,会拉低TPS,减少整个过程中对并发数的影响
  • 如果瞬间结束,不可中断的请求会因为时间太短被强制结束,会导致出现报错
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
7月前
|
Prometheus 监控 前端开发
性能测试基础知识
性能测试基础知识
|
7月前
|
监控 测试技术 数据处理
如何做性能测试?
如何做性能测试?
|
6月前
|
测试技术
性能测试包括哪些方面?
性能测试是评估电力系统响应时间、吞吐量和资源利用率的关键步骤,确保系统在不同负载下表现良好。它包括响应时间、吞吐量、资源利用率和稳定性测试,通过负载、压力、基准和故障恢复测试来检验系统性能。性能测试对于系统正常运行、问题发现及优化升级至关重要。
性能测试包括哪些方面?
|
监控 关系型数据库 MySQL
学会这些性能测试干货知识点,才好拿捏性能测试
学会这些性能测试干货知识点,才好拿捏性能测试
|
测试技术
性能测试(1)——基础概念
性能测试就是通过特定的方式对被测试系统按照一定测试策略施加压力,获取该系统的响应时间、TPS、吞吐量、资源利用率等性能指标,来检测系统上线后能否满足用户需求的过程。
127 0
|
测试技术
性能测试理论知识
软件性能 :软件的一种非功能特性,它关注的不是软件是否能完成特定功能,而是在完成功能时展现的及时性。性能测试 :通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
|
存储 缓存 监控
性能测试基础知识体系
网关层:网关是请求入口和业务接入层,一般登录验签调用、加解密鉴权、限流等操作,都是在网关进行;
性能测试基础知识体系
|
负载均衡 测试技术
性能测试知识科普(二)
在聊测试策略之前,很有必要聊聊性能测试的目的,或者性能测试的本质是要做什么,解决什么问题。只有想明白这点,后面的需求分析、工具选型、制定测试策略才能更好的开展。
性能测试知识科普(二)
|
数据可视化 测试技术
性能测试知识科普(三)
还有在一些技术交流群,很多同学会说自己遇到的问题,如不知道怎么用jmeter参数化,locust的压测结果图表怎么看,怎么写gatling的压测脚本等等。并不是说觉得用工具low,而是遇到问题,我个人觉得首先应该分析问题,找到解决方法和策略,然后寻找合适的工具来辅助自己快速解决问题。
|
缓存 监控 测试技术
性能测试知识科普(一)
换成高速收费站的场景,就是车到了收费窗口,我刷卡扫码支付,然后抬杆放行直到车出去下一个车进来。这个过程的耗时就是所谓的响应时间。至于我们常见的平均响应时间和99响应时间,只是不同维度的统计方法而已。