热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

全栈最全性能测试理论总结

什么是性能测试定义:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,性能测试中发现的问题不叫缺陷或Bug,叫性能瓶颈,不叫

什么是性能测试

定义:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,性能测试中发现的问题不叫缺陷或Bug,叫性能瓶颈,不叫修复,叫优化

1. 主要包含三层含义:

  • 性能测试需要借助工具来实现

  • 性能测试除了关注普通的正常情况外,还重点关注空间和时间上的很多峰值或异常的系统运行情况

  • 性能测试借助所监控和收集的各项指标来分析系统的性能

2. 黑盒测试的角度

  • 数据请求经过网络发送

  • 服务器前端接收处理

  • 在数据库服务器获取相关数据

  • 前端处理后返回数据

  • 应用界面接收到数据响应

3. 程序员角度

  • 结构合理性

  • 数据库设计合理性

  • 代码与算法

  • 系统中资源的使用方式

4. 系统运维角度

  • 硬件资源利用率

  • 何种硬件可以提高系统性能

  • 系统能否支持7*24的服务

  • 扩展性、兼容性、最大容量、可能的瓶颈

5. 专业角度分析性能测试

  • 服务器硬件性能

  • 根据需求和历史数据制定性能目标

  • 建立性能通过模型

  • 对开发代码框架和硬件框架进行性能分析

  • 针对开发发布版本的基准测试

  • 对软件进行性能验收和稳定性测试

  • 生产环境的配置和优化

  • 制定性能测试测试用例

  • 制定性能测试场景设计

  • 特定性能分析

性能的影响因素

性能测试分类

  • 一般性能测试:验证软件在正常情况和系统条件下能否满足性能指标。

  • 负载测试:验证系统在一定压力下延长系统运行时间,直到系统性能出现"拐点"。 

  • 压力测试:验证系统在已经处于极限负载下或者某指标已经处于饱和状态下系统性能的表现。

  • 稳定性测试:验证系统在连续运行的情况下下,查看系统的各项性能指标。一一MTBF (错误发生的平均时间间隔)

  • 大数据量测试:验证系统在使用大批量数据对系统产生压力或影响的情况下系统各种指标是否正常。

  • 配置测试:验证系统在不同的软件和硬件配置的情况下,找出系统各项资源的最优分配。

性能常用术语

  • 虚拟用户:性能测试工具模拟处理的用户,模拟实际用户的操作行为。

  • 并发和并发用户数

并发:强调”大量用户”的"同时性”操作(该操作要求对服务器产生压力)

并发用户数:指的是在某一时刻同时进行了对服务器产生影响的操作的用户数量。

注意:与"系统用户数"和"在线用户数”之间的差异。

系统用户数:某一个特定系统的使用用户总量。

在线用户数:登录系统,正在使用该系统的人数。

  • 响应时间:包含“请求响应时间”和“事务响应时间”

  • 思考时间:两次请求之间的间隔时间。

  • 点击率:一般指每秒钟用户向服务器提交的请求数。

    (Web测试中特指HTTP请求数)

  • 每秒事务数:指每秒系统能够处理的交易或者事务的数量。

    (Transaction Per Second, TPS)

  • 吞吐量:在单次业务中,客户端和服务器端进行的数据交互总量;受服务器性能和网络性能的影响。

  • 吞吐率:吞吐量除以传输时间。衡量服务器性能和网络性能的重要指标之一;一般可以用"请求数/秒、页面数/秒、字节数/秒”等单位衡量。

  • 性能计数器:性能计数器是一系列用于描述各类型服务器或者操作系统性能的指标,在进行资源监控和系统瓶颈分析中起着重要的作用。

性能测试流程

性能测试流程:(性能)需求分析->(性能)测试计划->测试环境搭建(无限接近于实际运行环境)->性能测试工具选择->测试执行->发现性能瓶颈->性能调整与优化->验证与关闭。

1、需求分析(示例)

2、测试场景

3、性能测试流程

3.1 测试结果是否通过的判断标准(仅供参考)

3.2 性能调优需要掌握的技能

3.3 性能测试中的重点和难点

  • 需求分析

  • 场景设计

  • 性能诊断调优

  • 环境搭建和模拟

4、性能测试用例(测试场景)-(示例)

注:性能测试中不做数据的反向验证(功能测试已完成)

用例中的术语:

集合点:所有用户集合在一起,进行并发。

事务:用户的操作行为的总称、用来衡量TPF、事务成功率的基础。

预期结果:性能测试执行后,结果判断的标准。

性能测试所需的技能

性能测试工具

如果想了解的话可以欢迎在留言区跟我们互动噢~

觉得有所帮助的话点个赞呗

最后是小编自己整理的一些学习资料笔记:想要小编学习资料笔记文档和上述全套华为面试题的【私信我关键词“999”免费获取】高薪简历模板(面试宝典免费领)

高薪简历模板(面试宝典免费领)


推荐阅读
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 本文详细解析 Skynet 的启动流程,包括配置文件的读取、环境变量的设置、主要线程的启动(如 timer、socket、monitor 和 worker 线程),以及消息队列的实现机制。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 本文详细介绍了如何在Windows和Linux系统上配置Openfire服务器,包括安装步骤、数据库配置及端口映射等关键环节。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 本文探讨了如何在 Spring MVC 框架下,通过自定义注解和拦截器机制来实现细粒度的权限管理功能。 ... [详细]
  • 深入解析Dubbo:使用与源码分析
    本文详细介绍了Dubbo的使用方法和源码分析,涵盖其架构设计、核心特性和调用流程。 ... [详细]
  • Java作为全球最流行的编程语言之一,应用广泛。本文将详细介绍Java开发的相关岗位及其具体职责,帮助读者更好地了解这一领域的职业发展路径。 ... [详细]
author-avatar
永远路鸣
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有