一次完整的性能测试,测试人员需要做什么

news2024/10/1 9:29:03

目录

前言:

一、 规范性能测试实施流程的意义

二、 性能测试实施流程

1. 需求调研阶段

2. 测试准备阶段

3. 测试执行阶段

4. 测试报告阶段

5. 测试总结阶段


前言:

进行一次完整的性能测试需要经过多个阶段,包括需求分析、测试计划编写、测试环境搭建、测试执行、性能问题定位和报告撰写。

一、 规范性能测试实施流程的意义

规范的性能测试实施流程能够加强测试工作流程控制,明确性能测试各阶段应完成的工作,指导测试人员正确、有序的开展性能测试工作,提高各角色在性能能测试中的工作效率。本次分享的性能测试实施流程是性能测试开展的” 指导方针”,希望帮助您可以早日成为性能测试” 达人”。

二、 性能测试实施流程

性能测试流程分为五个阶段,分别是【需求调研阶段】→【测试准备阶段】→【测试执行阶段】→【测试报告阶段】→【测试总结阶段】。

每个阶段做什么事情?重点关注什么?

1. 需求调研阶段

1.1. 阶段概述

调研阶段的主要工作为:组建工作小组、项目创建、需求分析、模型构建、定制性能测试详细实施计划。

重点关注:需求调研、需要分析、模型构建

1.2. 关键点描述

需求调研分为两个步骤进行:需求调研、需求分析。

该工作是性能测试必须的工作环节。工作产出文件为《XX 项目性能测试需求表》,如:《云智慧_XXX 系统_XXX 模块性能测试需求表》。

此阶段模型构建主要是业务模型构建。

1.2.1 需求调研

  • 需求调研工作由性能测试实施人员牵头负责,产品经理、开发工程师、运维工程师配合完成;

  • 需求调研的主要内容为:

  1. 系统线上环境的性能需求,例如性能需求、可靠性需求、可维护性需求等;

  2. 与系统性能需求相关的其它信息,包括系统信息(如线上环境硬件、参数配置、系统架构与部署方式、关联系统部署等)、业务信息(关键业务逻辑与处理流程、交易列表、交易量信息、业务分布规律等)、生产问题、文档资料等方面,并对收集到的信息进行汇总整理,实现对待测系统业务与技术的整体了解;

  • 开发项目组、需求部门、运维部门等测试任务提出方应填写《云智慧_XXX 系统_XXX 模块性能测试需求表》中的 “任务信息” 和 “测试背景” 等信息,提出的测试需求,简单文字不能说明的,可附加文件;

  • 性能测试小组的实施人员将调研获取的其它内容填入《云智慧_XXX 系统_XXX 模块性能测试需求表》;

  • 对于新立项系统或系统新开发版本,《云智慧_XXX 系统_XXX 模块性能测试需求表》应与《需求规格说明书》中的性能需求相一致。

1.2.2 需求分析

  • 需求分析的基本流程是:

  1. 首先,由性能测试工程师根据需求调研所获取的信息进行分析,将《云智慧_XXX 系统_XXX 模块性能测试需求表》中的性能需求转换为具体的性能需求指标值;

  2. 其次,根据测试环境与线上环境的差异分析,由性能测试工程师将线上环境条件下的性能需求指标值转换为本次测试环境条件下的性能需求指标值;

例如:TPS(Transaction per Second):系统每秒处理交易数,推导过程如下,

当前线上 APP1.0 试用系统主要为查询类交易,交易占比 40%,系统生产交易量统计为 1 个月约 20W 笔,假设 APP2.0 系统上线后业务量激增到每日查询类 20W,则每日总交易量 T 达到:

T = 20W/40%=500000 笔 / 日

系统处理能力 TPS 推导:APP2.0 上线后交易量最大 500000 笔 / 日,系统晚间几乎无交易量,按 2:8 原则推算,则 (50000080%)/(820%3600)=69.4 笔 / 秒,取整为 70 笔 / 秒,每年按业务量增长 50% 计算,则一年后系统处理能力指标约等于 70+7050%=105 笔 / 秒。

稳定性交易量推导:取系统处理能力的 60%_时长 = 105 笔 / 秒 * 60%*8_3600=1814400 笔。

经过分析后汇总成测试指标值

  • 需求分析其主要内容和规范性要求如下:

  1. 性能测试需求:应准确描述性能测试指标项及需求指标值。

  2. 系统范围:应准确描述性能测试需求指标值所依托的测试范围信息,如应描述测试范围的关联系统逻辑示意图,及各关联系统的信息;在对系统局部环节进行测试时,也需阐明具体测试范围,详细描述被测系统的相关子系统。

  3. 环境差异分析:应准确描述性能测试需求指标值所依托的测试环境信息,如须描述测试环境的总体网络拓扑结构图、测试环境机器配置表(数量、型号、资源、操作系统)、以及相应的软件配置、重要参数配置等。同时应准确描述线上环境的上述信息,并进行详细的环境差异性分析。

以上分析内容将作为性能测试方案的重要组成部分。

1.2.3 模型构建例如:业务模型

根据 200X 年 XX 月 XX 日~200X 年 XX 月 XX 日期间的业务高峰日 200X 年 XX 月 XX 日的业务量统计,经过略微调整得出以下业务模型,要求业务模型交易至少占线上交易量的 90% 以上:

2. 测试准备阶段

2.1 阶段概述

测试准备阶段是性能测试工作中重要阶段。在准备阶段,需要完成业务模型到测试模型的构建、性能测试实施方案编写、测试环境的准备、性能测试案例设计、性能测试监控方案设计、性能测试脚本,及相关测试数据的准备,并在上述相关准备活动结束后按照测试计划进行准入检查。

重点关注:测试模型构建、方案设计、案例设计、数据准备等

2.2 关键点描述

2.2.1 测试模型构建

测试模型构建工作由性能测试实施人员完成;

在需求分析的基础上,对调研收集到的相关资料与信息进行分析梳理,重点分析跨系统的交易路径、交易关联关系、数据的处理与流转、业务量、交易比例、典型交易,以及系统的处理能力等性能测试点,针对性地确定多个业务场景,并为每个场景选择一套具体的业务交易集,按照业务量比例构建相应的测试模型。

本阶段的产出物为,各个测试场景,以及场景中典型交易及所占比率。

例如:从业务模型到测试模型推导

依据业务模型,通过与项目组及产品经理沟通,确定本次测试模型还需着重考虑以下内容:

(1) 考虑到后期证券系统数据库升级,历史查询可能会影响,所以本次测试单独增加一个场景:历史委托和历史成交查询各 50%(即 0456 和 0457)。同时,考虑到线上环境绝大部分该交易是由总中心前置发起,所以本次测试 “历史委托和历史成交查询” 交易均采用从总中心发起;

(2) 增加国债发行交易场景,国债发行认购日一般在柜台营业前进行,此场景只选择国债发行认购一支交易;

(3) 同时,证券系统交易高峰时段柜员签到、柜员签退交易占比较小。

通过以上分析得出本次测试模型有 3 个:一般交易日日间模型、国债发行日模型、以及历史查询交易模型。

一般交易日日间模型:

储蓄国债交易模型:

历史查询交易模型:

2.2.2 方案设计

性能测试实施方案编制是性能测试工作中必须的工作环节,其产出为《性能测试方案》,如:《云智慧_XXX 项目_XXX 功能模块_性能能测试方案 V1.0.xlsb》。

在方案中需要描述:测试需求、启停准则、测试模型设计、测试策略、测试内容、测试环境与工具需求,以及各个阶段的输出文档。在方案中还需说明性能测试工作的时间计划安排、预期的风险与风险规避方法等。测试模型设计内容来自本阶段测试模型设计中形成的测试场景,以及场景中典型交易及所占比率。

2.2.3 案例设计

在案例设计中,包括案例的描述、测试环境描述(硬件、软件、应用版本、测试数据)、延迟设置、压力场景、执行描述、预期结果、监控要点。

案例设计是性能测试工作的必须工作环节,案例设计的产出文件是《性能测试案例》。

2.2.4 数据准备

环境准备工作中涉及到基础数据的准备。测试数据的数量、逻辑关系要求十分严格,测试基础数据的准备一般采用自造模拟数据或者使用脱敏后的线上数据。

2.2.5 测试脚本开发

测试脚本开发工作就是发挥 LR 的时候。

测试脚本是对业务操作的程序化体现,一个脚本一般为一项业务的过程描述。本活动主要为脚本的录制(编写)、修改和调试工作,从而保证在测试实施之前每个测试用例的脚本都能够在单笔和少量迭代次数的条件下能够正确执行。测试脚本开发的一般步骤如下:

  • 通过录制,或者编写,完成脚本代码生成。代码生成时,主要根据需求插入事务,作为测试过程中统计交易响应时间的单位;

  • 根据测试需求,进行参数化设置;

  • 设定检查点,根据报文内容字段判断交易是否正确执行,即检查点的设置在应用层面;

  • 根据测试要求确定是否设置集合点;

3. 测试执行阶段

3.1 阶段概述

测试执行阶段是执行测试案例,获得系统处理能力指标数据,发现性能测试缺陷的阶段。测试执行期间,借助测试工具执行测试场景或测试脚本,同时配合各类监控工具。执行结束后统一收集各种结果数据进行分析。根据需要,执行阶段可进行系统的调优和回归测试。

重点关注:结果记录、测试监控、结果分析。

3.2 关键点描述

3.2.1 测试执行与结果记录

测试执行过程有相应的优先级策略,依据测试案例的优先级别,优先执行级别较高的测试案例。测试过程中,通过对每个测试结果的分析来决定是重复执行当前案例还是执行新的测试案例;通常发现瓶颈问题会立即进行调整并重新执行测试用例,直到当前的案例通过。

在执行阶段,测试的执行、分析调优、回归测试工作较为反复,须认真记录全部执行过程和执行结果,执行结果数据是分析瓶颈的主要依据。

3.2.2 测试监控

测试的监控工作与执行工作同步进行,场景或脚本开始执行时,同时启动监控程序(可以用 nmon 或者系统命令 top/vmstat/iostat 等),当然也可以用云智慧的监控宝和透视宝协同工作,监控宝可以监控网站/网页性能/Ping/DNS/FTP/UDP/TCP/SMTP 等 IT 基础设施的性能指标,透视宝可以发现主机资源、Web 应用、浏览器、APP 等应用的性能瓶颈。

监控宝监控页面

透视宝主机资源监控页面

在执行结束后,停止测试监控,并提取监控结果数据。

3.2.3 测试结果分析

测试过程中根据前端性能测试工具显示结果、监控结果综合分析出现的测试问题。

例如:

测试组在执行 “一般日日间交易模型” 负载测试 570TPS 压力时,数据库监控发现有死锁想象,具体如下:

** 问题分析:** 经与开发一同分析,原因如下:流控信息收集程序(pltflowGthDaemon)在同一柜员、在毫秒级并发做交易时 plt_flowgather 表出现死锁。测试环境联机交易使用同一个柜员号发起,因此出现概率较高。

4. 测试报告阶段

4.1 阶段概述

测试执行工作结束后开始撰写性能测试报告。性能测试报告在发布前需要进行评审。

4.2 关键点描述

4.2.1 报告撰写

性能测试报告要内容包括:测试目的、范围及方法、环境描述、测试结果描述、结果分析、结论和建议等。

4.2.2 测试结果描述

测试结果的描述,应体现性能测试的执行过程,如:混合场景的容量测试结果展示中,需要描述各个并发梯度下测试结果及监控结果;在数字形式的结果记录中,要求小数点后精确 3 位有效数字。

4.2.3 测试缺陷与问题

在性能测试分析报告中须描述测试过程发现的缺陷与问题,对于确认是测试缺陷的项进行风险评估,并给出风险提示。

4.2.4 最终结果分析

测试最终结果的分析,该部分内容应该全面、透彻、易理解且通过图表方式表达更直观。

例如:

4.2.5 测试结论

测试结论是性能测试分析报告必须包括的内容。测试的结论须清晰、准确回答性能测试需求中描述的各项指标,需全面覆盖测试需求。

5. 测试总结阶段

5.1 阶段概述

性能测试的总结工作,主要对该任务的测试过程和测试技术进行总结。性能测试工作进入总结阶段,也意味着性能测试工作临近结束。在这个阶段,时间允许的情况下应将所有的重要测试资产进行归档保存。

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

 留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5K3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=6gweEAHLIo-VjldEz9_yMjFfeBIGgEu2&authKey=MC4ik2bydrYxO5if1oNFzT6c93XUrxOxYtv7IRYOVRDNh47xpEllgkFVDlFD%2Bf6M&noverify=0&group_code=574737577

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/686826.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenStack(3)--vxlan网络实战

目录 一、ML2配置文件 二、上传cirros镜像 三、创建vxlan10网络 四、创建实例/同vxlan通信测试 五、不同vxlan通信测试 5.1 新建vxlan11 5.2 新建路由/添加路由接口 5.3 不同vxlan通信测试 5.4 qemu-vnc报错 六、深度剖析vxlan 七、认识 Bridge br-ex、Bridge br-in…

「一本通 3.2 练习 6」汽车加油行驶

目录 第一步,二维转一维(此步仅为方便,可以省略) 第二步,建边(啥都行,只要死不了) 第三部,bfs(你要dfs也行) 第一步 第二步 第三步 可CA呢…

蓝桥杯专题-试题版-【01字符串】【2n皇后问题】【A+B问题】【Fibonacci数列】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

ECS 简略版说明一:Entities and components

目录 Entities and components Worlds and EntityManagers Archetypes Chunks Queries Entity IDs IComponentData Managed IComponentData components DynamicBuffer components Aspects Allocator overview Allocator.Temp Allocator.TempJob Allocator.Persis…

MySQL性能测试及调优中的死锁处理方法

目录 前言: 1、死锁检测 2、死锁避免 3、死锁解决 前言: MySQL死锁是指多个会话同时请求相同资源时发生的一种资源争用现象,导致会话无法继续执行。死锁的发生会导致事务无法提交或者回滚,影响应用程序的正常运行。因此&#xff0…

consul简介与安装

一、Consul简介 Consul 是 HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现、服务隔离、服务配置,这些功能中的每一个都可以根据需要单独使用,也可以同时使用所有功能。Consul 官网目前主要推 Consul 在服务网格中的使用。 与其…

【人工智能】教你如何让 AI 赢得贪吃蛇游戏----强化学习(初探)

人工智能--AI贪吃蛇,每一个代码都有详细的注释,希望多多收藏,点赞,评论 1.前言:训练ai玩游戏的可行性2.代码实现思路:3.代码完整实现3.1 Game Game.py 完整实现3.1.1 安装pygame库3.1.2 编写游戏逻辑代码 3…

Sangfor华东天勇战队:某咖啡还原密钥

最近学习了密钥还原,复现下并记录思路 function wbaes_encrypt_ecb(){var module_base Module.findBaseAddress("libcryptoDD.so")var func_base module_base.add(0x17BD41)Interceptor.attach(func_base,{onEnter:function (args){console.log("E…

风控引擎如何快速接入不同的数据源?

目录 数据是风控引擎的重要组成 风控引擎的数据接入 风控引擎是一种基于数据分析和机器学习算法的系统,能够实时识别和处理各种风险问题,适用于金融、电商、智能制造、交通运输等各领域,能够提高企业的风险管理水平和业务效率。 风控引擎主…

我心中的TOP1编程语言—JavaScript

作为一名研发工程师(程序员),平时工作中肯定会接触或了解很多编程语言。每个人都会有自己工作中常用的语言,也会有偏爱的一些编程语言。而我心中的最爱,毫无疑问,就是 JavaScript。 JavaScript 是一门编程…

23. 数据结构之位图

前言 之前在讲散列表的时候,提到过位图的概念。位图(Bitmap)作为一种特殊的数据结构,它使用一系列位来表示数据,每个位只有两个状态(0或1)。由于它的高效性和节省空间的特性,位图在…

SpringBoot的配置环境属性

SpringBoot的配置环境属性 在本文中,我们将讨论SpringBoot的配置环境属性。我们将了解如何使用这些属性来配置我们的应用程序,以便在不同的环境中运行。我们还将了解如何使用SpringBoot的配置文件来管理这些属性。最后,我们将介绍一些最佳实…

java的嵌套类(nested class)、内部类(inner class)的区别

嵌套类即nested class,内部类即Inner class。 概括来说,嵌套类的概念比内部类概念大。嵌套类包含内部类和非内部类。一个内部类一定是一个嵌套类,但一个嵌套类不一定是一个内部类。 在一个类内部或者接口内部声明的类是嵌套类。 下面这些类是…

《Java面向对象程序设计教程》课后编程题

文章目录 第 1 章 Java 概述第 2 章 Java 语言基础第 3 章 Java 面向对象编程第 4 章 Java 图形用户界面程序设计第 5 章 Applet 设计第 6 章 Java 输入输出流与文件操作第 7 章 Java 的多线程机制第 9 章 常用工具类与集合框架 第 1 章 Java 概述 试编写 Java 程序&#xff0…

Android studio新建项目运行遇到的问题

文章目录 The emulator process for AVD xxx has terminated原因(环境变量问题)解决其他原因 新建的练习项目更改SDK默认位置更改方法 The emulator process for AVD xxx has terminated 运行虚拟机时报此错误 原因(环境变量问题&#xff0…

555 timer circuit

#1, Block & principle 1.1, The threshold and trigger levels normally are two- thirds and one-third, respectively, of VCC.(分压) 1.2,These levels can be altered by use of the control-voltage terminal. When the trigger in…

生成式 AI:通信服务提供商云转型的下一阶段

【本文由Cloud Ace 整理发布。Cloud Ace 是谷歌云全球战略合作伙伴,拥有 300 多名工程师,也是谷歌最高级别合作伙伴,多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培…

spring boot引入swagger报错处理

目录 1. 报错说明 2. 查找原因 2.1 此前笔者的代码 3. 问题解决说明 4. 解决方案 4.1 在pom.xml引入springdoc包 4.2 创建配置文件(可省略) 4.3 在controller加入注解 4.4 查看接口文档 4.5 常用注解 1. 报错说明 在java项目中引入swagger 2.9.2…

Linux设置进程名称(标题) ( 7) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the…

技术管理三板斧之第一板斧拿结果-定目标

一、现状: 去年年底今年年初,帮助一家公司做了一次大的系统重构,30多小伙伴,经历一次洗礼,对产品定位,技术选型,目标制定,任务分配,协同开发,测试上线&#x…