在很多人的概念中,性能测试就是使用Loadrunner、Jmeter等工具进行压测,然后得到测试结果即可,但仔细想想,对谁进行测试?测试目的是什么?监测指标有哪些?得到的结果如何分析(怎样的结果算通过)等等。

所以使用工具压测只是性能测试最基础的一个步骤,下面先来看看性能测试的一般流程:

  • 业务学习:通过查看需求文档、PRD等相关文档+手工操作来了解系统功能;
  • 分析需求:分析系统的非功能需求,圈定性能测试的范围,了解系统性能指标;
  • 工作评估:工作量分解,评估工作量,计划资源投入(需要多少硬件资源,多少人力、时长来完成测试工作)。
  • 设计模型:可以理解为测试场景,是单一测试场景还是混合测试场景;
  • 编写计划:测试计划应明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等;
  • 准备测试环境:准备服务器(部署被测系统),负载机(安装压测工具,产生负载的机器)
  • 准备测试数据:根据测试场景(设计模型)准备数据,

原因有两个:

a、有些数据是支撑系统运行的基础(比如我们要对登录进行压测,首先需要准备一些注册好的账号);

b、不同量级数据影响性能结果(比如从不同量级的数据库查询结果,时间肯定不一样),至于准备什么量级的数据则需要跟项目实际情况来设计;

  • 开发脚本:根据测试场景,测试用例开发测试脚本(录制或手动编写);
  • 测试执行:运行测试;
  • 缺陷管理:跟踪测试过程中发现的缺陷;
  • 性能分析:对性能测试结果进行分析,是否满足预期目标,如果不满足则需找出原因;
  • 性能调优:根据上一步的分析,尝试优化系统;
  • 测试报告:对测试工作进行总结,报告测试结果,发现的问题等
  • 评审:对性能报告中的内容进行评审,确认问题、评估上线风险。虽然有时候性能测试结果不理想,但基于时间和成本等方面的考虑也会上线,后续再快速迭代。


性能测试交付件:

  • 测试计划

  • 测试脚本

  • 测试程序

  • 测试报告

02、性能测试成功要素

性能测试上手较难,是一门融合测试、开发、运维、需求调研、架构、协调管理等综合技能的学科,掌握一个测试工具只是最基础的一步。

性能测试有几大难点:

  • 需求分析

  • 场景设计

  • 性能诊断调优

  • 环境搭建和模拟

03、性能测试常用术语

(1)负载:模拟用户操作对服务器造成压力的过程,比如模拟100个用户同时登录;

(2)性能测试(Performance Test):在指定的负载情况下,系统性能指标(响应时间、吞吐量等)是否满足要求;

(3)负载测试(Loading Test):

在一定的硬件环境前提下,通过不断的增加负载(不同的虚拟用户数)来确定满足性能指标情况下所能够承受的最大并发用户数。简单来说,就是帮我们对系统进行定容定量,找出系统性能拐点,给予生成环境规划建议。

这里说的性能指标包括:

  • TPS(每秒事务数)

  • RT(事务平均响应时间)

  • CPU Using(CPU利用率)

  • Memory Using(内存利用率)等

(4)压力/强度测试:

在一定的软硬件环境下,通过高负载的手段来使服务器资源(强调服务器资源,硬件资源)处于极限状态,测试系统在极限状态下长时间运行十分稳定,确定是否稳定的指标包括TPS、RT、CPU利用率、内存利用率等;

(5)稳定性测试:

在一定软硬件环境下,长时间运行一定的负载,确定系统在满足性能指标的前提下是否运行稳定。与上面的压力/强度测试区别在于负载并不强调在极限状态下,一般使用目标负载的1.5~2倍的负载数量进行测试;

(6)TPS:每秒完成事务数

事务是指一个操作集合,不同场景中事务所包含的操作不同,这个概念我们后续结合实例介绍

(7)RT:响应时间

指一个事务花费多长时间完成,为了使这个值更具代表性,会统计平均值,也就是ART,不过一般说RT就是指平均响应时间。

(8)PV(Page View):每秒用户访问页面的次数

此参数可以帮助我们分析平均每秒有多少个用户访问页面

(9)Vuser(Virtual User):虚拟用户

用来模仿真实用户进行操作;

(10)Concurrency(并发):

  • 狭义并发:虚拟用户在同一时刻做同一件事情或操作,这种操作一般针对同一类型的业务,或者所有用户进行完全一样的操作,目的是测试数据库和程序对并发操作的处理。
  • 广义并发:虚拟用户对系统进行操作,但操作可以不同;

狭义并发多适用于单一测试场景,广义并发多适用于混合测试场景、稳定性测试场景;

(11)场景(Scenario):模拟真实用户某个操作的过程,这个过程就可以称为一个场景,我们举个论坛系统的例子:

  • 单一场景:用户登录,单单这个login的动作就是一个场景;
  • 混合场景:用户发帖场景,可能包含以下几个动作,先登录,打开发帖页,输入文字,选择板块,发帖,这几个动作组成了一个发帖的混合场景;

(12)思考时间(Think Time):因为用户在进行操作时,每个操作是有时间间隔的,对应到脚本中,就是两个请求脚本之间的时间间隔

04、性能测试通过标准

最后: 可以加入群号:914172719 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

性能测试很难吗?一文带你学会性能测试核心流程和概念相关推荐

  1. python绘制饼状图图例_Python图表绘制很简单,一文带你学会如何生成带图例的饼图...

    matplotlib库,作为Python数据可视化的常用库和经典库,咱们已经探讨了多次,并了解了内部多个函数的使用,上次咱们聊了如何在图表中添加各种样式的图例,今天呢,咱们接着上次的内容继续深入聊聊, ...

  2. 一文带你学会linux系统 史上最全linux命令大全

    一文带你学会linux系统 史上最全linux命令大全 文章目录 linux系统简介 linux命令 1.启动网络命令 2.pwd命令 2.ls命令 3.cd命令 4.mkdir命令 5.rmdir命 ...

  3. 一文带你学会AB实验最佳流程

    如果你对数据分析感兴趣,希望学习更多的方法论,希望听听经验分享, 欢迎移步公众号「小火龙说数据」,更多精彩原创文章与你分享! 「经验」带你掌握AB实验最佳流程https://mp.weixin.qq. ...

  4. 教妹学Java(二十一):一文带你了解面向对象编程的所有概念

    你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 的博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我还力求把每一个 ...

  5. 深度学习很难?一文读懂深度学习!

    深度学习是机器学习(人工智能机制)的一个特定子集.它的编程框架看起来非常复杂,但其实思路很好理解,无非就是"以人脑为模型实现计算机系统智能化." 在过去的十几年里,研发人员进行了很 ...

  6. 视频直播系统开发技术真的很难吗?手把手带你实现直播技术

    先来聊聊视频直播系统开发常见的三大协议 国内常见的直播协议有几个:RTMP.HLS.HTTP-FLV,下面我们来一一介绍. RTMP,全称 Real Time Messaging Protocol,即 ...

  7. 一文带你学会0编程基础做木马免杀

    更多渗透技能 ,10余本电子书及渗透工具包,搜公众号:白帽子左一 作者:掌控安全-骚骑 背景 之前分享了个免杀入门文,很浅显,比较适合小白看- 文章在社区,地址我放在这了,有兴趣可以一戳: https ...

  8. 一文带你学会java的jvm精华知识点

    前言 本文分为20多个问题,通过问题的方式,来逐渐理解jvm,由浅及深.希望帮助到大家. Java类实例化时,JVM执行顺序? 正确的顺序如下: 1父类静态代码块 2父类静态变量 3子类静态代码块 3 ...

  9. 一文带你学会基于SpringAop实现操作日志的记录

    前言 大家好,这里是经典鸡翅,今天给大家带来一篇基于SpringAop实现的操作日志记录的解决的方案.大家可能会说,切,操作日志记录这么简单的东西,老生常谈了.不! 网上的操作日志一般就是记录操作人, ...

最新文章

  1. mysql建立pdm模型_如何使用PowerDesigner创建物理数据模型(PDM)
  2. 基于MIPS架构的BackTrace实现
  3. Output Operations on DStreams
  4. buu [BJDCTF 2nd]rsa1
  5. 在CentOS上安装Git
  6. Android Gradle Plugin 源码解析之 externalNativeBuild
  7. C/C++各种系统开发环境搭建
  8. 3 年后端、4 年前端,聊聊用户认证鉴权
  9. 一张图之——JSDuck
  10. MySQL存储过程定时任务
  11. 全志平台动态mac地址解决办法记录
  12. 微信小程序 关于头像上传,showActionSheet,chooseImage,uploadFile
  13. uni-app 生命周期
  14. signal信号的处理过程
  15. 电源设计中的电容应用实例
  16. WPF导出发布安装包,无法验证发行者解决办法
  17. 最长公共子序列 【DP】+【最长公共子序列】
  18. 5G NR——传输信道、逻辑信道
  19. 下列不属于python保留字的是-以下哪个选项不是Python语言的保留字?
  20. 苹果电脑python编程软件下载_Python Mac软件下载-Python for Mac(Python编程工具) v3.10.0免费版 - Mac天空...

热门文章

  1. 分类 迁移学习_迁移学习时间序列分类
  2. 打开html文件图片为什么没有_提高网站打开速度秘诀:压缩html,Javascript和CSS文件...
  3. 实习生有年终奖吗_“辞职,一定要赶在发年终奖前!”为什么我建议你一定要年前跳槽...
  4. css中表居中,CSS DIV中表格居中显示
  5. Python:PyCharm提示“Python version 2.7 does not support a ‘F‘ prefix”
  6. 光电整纬机常见操作问题
  7. 圆网印花色浆未干引起的印花疵病
  8. 在html显示数据库的信息,从数据库中提取信息并将其显示在HTML div
  9. 洛谷P3812 【模板】线性基
  10. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 6、总结