性能测试之理论知识

简介: 性能测试之理论知识

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


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


性能测试环境必备条件

  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进行规格选择与性能压测。
相关文章
|
1月前
|
SQL 搜索推荐 测试技术
【Havenask实践篇】完整的性能测试
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。性能测试的目的在于评估搜索引擎在各种负载和条件下的响应速度、稳定性。通过模拟不同的用户行为和查询模式,我们可以揭示潜在的瓶颈、优化索引策略、调整系统配置,并确保Havenask在用户数量激增或数据量剧增时仍能保持稳定运行。本文举例对Havenask进行召回性能测试的一个简单场景,在搭建好Havenask服务并写入数据后,使用wrk对Havenask进行压测,查看QPS和查询耗时等性能指标。
65386 6
|
3月前
|
Prometheus 监控 前端开发
性能测试基础知识
性能测试基础知识
|
7月前
|
运维 监控 前端开发
深聊性能测试,从入门到放弃之:初识性能测试
深聊性能测试,从入门到放弃之:初识性能测试
95 0
|
7月前
|
存储 关系型数据库 MySQL
深聊性能测试,从入门到放弃之:性能测试技术栈,看完这篇,保证刷新你对性能测试的认知~~
深聊性能测试,从入门到放弃之:性能测试技术栈,看完这篇,保证刷新你对性能测试的认知~~
156 1
|
7月前
|
监控 关系型数据库 MySQL
学会这些性能测试干货知识点,才好拿捏性能测试
学会这些性能测试干货知识点,才好拿捏性能测试
|
10月前
|
测试技术
性能测试(1)——基础概念
性能测试就是通过特定的方式对被测试系统按照一定测试策略施加压力,获取该系统的响应时间、TPS、吞吐量、资源利用率等性能指标,来检测系统上线后能否满足用户需求的过程。
98 0
|
11月前
|
测试技术
性能测试理论知识
软件性能 :软件的一种非功能特性,它关注的不是软件是否能完成特定功能,而是在完成功能时展现的及时性。性能测试 :通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
|
存储 缓存 监控
性能测试基础知识体系
网关层:网关是请求入口和业务接入层,一般登录验签调用、加解密鉴权、限流等操作,都是在网关进行;
性能测试基础知识体系
|
测试技术
软件测试面试题:怎么分析性能测试结果?
软件测试面试题:怎么分析性能测试结果?
90 0
|
算法 测试技术 数据库
【基础理论-性能测试】性能测试必考知识点!
【基础理论-性能测试】性能测试必考知识点!