2023超细致的性能测试流程,你get了吗?

2023-11-11

 性能测试:利用工具模拟大量用户操作,验证系统承受的负载情况。

性能测试的目的:找到潜在的性能问题或瓶颈,分析并解决;找出性能变化趋势,为后续扩展系统提供参考。测试监控:基准测试、配置测试、负载测试、稳定性测试,对硬件和中间件进行监控。

1、学习业务:通过查看文档、手工操作系统对系统功能进行学习。

2、需求分析:分析系统非功能需求(关注业务量、业务分布、用户规模、性能指标等信息),确定性能测试范围,了解性能指标。

一、系统非功能需求采集

(1)系统架构:
(2)业务流程:
(3)用户信息:
(4)系统是否与第三方系统有关,是否需要做挡板(Mock程序)。
(5)系统是否有归档机制:如果数据库有归档机制???,可以把一些无用或者过时的信息移到归档库,这样就减少当前数据库的数据,有利于提高系统性能。
(6)性能指标:吞吐率、响应时间、事务成功率,CPU、内存、磁盘、带宽使用阀值。

二、系统非功能需求分析

确定性能测试范围明确性能指标

例如:

响应时间2-5-8原则
当用户在2秒以内得到响应时,会感觉系统的响应很快;
当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;
当用户在5-8秒以内得到响应时,会感觉系统的速度很慢,但是还可以接受;
而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟糕透了,或者认为系统已经失去响应。

CPU、内存、磁盘、网络带宽等。

系统硬件指标阀值

这些指标比较抽象,在监控分析时应该进一步细化。比如CPU的性能指标在Linux中分为用户利用率、系统利用率及平均负载等重要指标。以上指标具体数据来源于非功能需求、组织要求(公司运维总结出来的可行性指标)或者行业标准建议。

分析业务量;估算TPS与并发数活用;分析系统协议

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

三、性能测试从哪里获取需求?

一般需求文档中会有一部分章节用于描述系统非功能性需求,但是多数需求文档对于性能需求的说明都比较笼统抽象。在需求不明确的情况下,通常需要性能测试工程师主动向需求提供方(BA团队、产品团队等)去征询。对于升级、优化类的老系统,可考虑是否存有历史测试方案参考,或许可以省事很多。或者我们分析原型系统业务数据即可,最直接的办法就是分析原型系统的数据、统计业务量、业务分布等信息。

3、工作评估:工作量分解,评估工作量,计划资源投入(即需要多少人力,多少工作日来完成性能测试工作)。

4、设计模型:圈定测试范围后,把业务模型映射成测试模型。业务模型:业务流程,系统在某个时间段内运行的业务种类及其业务占比,即哪个业务在什么时段在运行,业务量是多少?

测试模型:从业务模型中分析整理出来的需要进行测试的业务。对业务进行拆分对象,实现这个完整的功能包含哪些流程、环节。比如“购买商品”,具体的流程环节包括“登录->搜索商品->提交订单->支付订单->退出”。接着,明确业务占比,重要程度,目的在于:

(1)明确重点测试对象,安排测试优先级

(2)建模,混合场景中,虚拟用户资源分配,针对不同业务功能施加不同的负载。

(3)明确下“需求分析-指标分析”中相关业务功能所需基础数据及数据量问题,因为那块需求分析时可能只是大致估算下,评估指标是否合理,需要认真再分析下。

性能测试场景:参照用户使用习惯设计负载场景,比如哪些业务的测试脚本一起运行,哪些业务有先后顺序,运行多少并发用户等。比如WMS系统(仓库管理系统),WMS中都会有盘点功能,此功能就不应该与日常功能混合在一起,因为盘点通常都是一个月一次。所以组织测试场景时尽量要与实际业务情况一致。

5、编写计划

在文档中明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等。

  • 系统概述
  • 测试环境
  • 需求分析
  • 测试策略
  • 测试场景
  • 测试准备
  • 时间计划
  • 测试组织架构
  • 交付物清单
  • 系统风险

6、开发脚本录制脚本或手动开发,添加固定计时器模拟ThinkTime,增加同步定时器模拟集合点,增加IF条件控制器判断逻辑,添加后置处理器获取参数。

7、测试环境准备测试环境包括服务器和负载机。生产环境和测试环境的硬件架构和配置需要进行估算,否则结果会有很大的偏差。了解测试环境部署和生产环境部署差异,是否按1:1的比例部署。通常建议测试时先不考虑集群,采用单机测试,测试通过后再考虑使用集群,这样有个比较,比较能说明问题。

8、测试数据准备:准备被测系统的主数据与业务数据我们知道数据量变会引起性能的变化。在制作测试数据时,一要注意量,需要准备足够的存量/历史业务数据,二要注意数据的分布。比如我们计算出需要并发100个虚拟用户,我们至少需要准备100个以上账号,并对账号赋予相应的权限(浏览、发帖、删除、查询)。那么准备多少数据够用呢?

往往性能测试需求会要求我们对系统进行定容定量

数据制作方法可以使用工具、SQL或者存储过程来完成。

9、测试执行测试执行是性能测试的关键,同样的脚本不同执行人员得出的结果可能差异较大。这些差异主要体现在场景设计与测试执行上。场景设计;基准测试;配置测试负载测试;稳定性测试;测试监控;测试监控;测试执行一般第三方性能测试会有一个测试准入条件(Checklist)。如果是项目组内的就没有这么严格了,但基本内容不变。

(1)检查网络环境

(2)检查测试数据

(3)检查监控设备

(4)脚本检查

10、缺陷管理对性能测试过程中发现的缺陷进行管理。

11、性能分析和性能调优性能测试工程师与开发人员一起来解决性能问题。

12、测试报告如何由测试环境推算生产环境配置

对于报告人来说,报告的是工作,是对整个测试过程的报告。对于决策层(报告相关干系人)来说关心的是结果,决策层迫切的想知道Yes or No,系统能不能上线,如果不能上线,有什么问题,怎么能够尽快解决?

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023超细致的性能测试流程,你get了吗? 的相关文章

随机推荐

  • ip2region的使用,来自csdn的回答

    使用Go语言使用ip2region库的例子如下 导入ip2region包 import github com lionsoul2014 ip2region binding golang ip2region 加载ip2region的数据库文件
  • JDK1.8函数式接口Function、Consumer、Predicate、Supplier

    JDK1 8函数式接口Function Consumer Predicate Supplier 1 函数式接口定义 函数式接口 Functional Interface 有且仅有一个抽象方法的接口 但可以有多个非抽象方法的接口 函数式接口
  • c++ 中map 的find 用法

    用find函数来定位数据出现位置 它返回的一个迭代器 当数据出现时 它返回数据所在位置的迭代器 如果map中没有要查找的数据 它返回的迭代器等于end函数返回的迭代器 程序演示 include
  • java.lang.String cannot be cast to [Ljava.lang.Object;错误的原因及解决办法

    错误信息 java lang ClassCastException java lang String cannot be cast to Ljava lang Object at com six biz impl ReportBizImpl
  • 认识网络、几种常用的网络拓扑图

    交换协议 VLAN技术 虚拟局域网 STP技术 生成树协议 VRRP技术 虚拟路由冗余协议 VPN 虚拟专用网络 名词解释 路由协议 http HTTPS tcp ip 静态路由配置 OSPF协议 RIP协议 ACL访问控制 什么是网络 简
  • 【100天精通python】Day38:GUI界面编程_PyQt 从入门到实战(中)_数据库操作与多线程编程

    目录 专栏导读 4 数据库操作 4 1 连接数据库 4 2 执行 SQL 查询和更新 4 3 使用模型和视图显示数据 5 多线程编程 5 1 多线程编程的概念和优势 5 2 在 PyQt 中使用多线程 5 3 处理多线程间的同步和通信问题
  • 论文带读——3D Neural Field Generation using Triplane Diffusion

    论文带读 3D Neural Field Generation using Triplane Diffusion YssssMikey Tips 我会基本上几天更新一篇论文引读 一般是AIGC模型 3D Diffusion方向每日在Arxi
  • JDBC的实现(IDEA版)

    前期准备 开发环境 IDEA 2021 1 3 JAVA 1 8 MYSQL 8 0 32 msql用户名 root 密码 123 下载MySQL JDBC 驱动 前往MySQL官网下载对应版本的MySQL Connector J驱动 下载
  • pix2pix gan_用python构建pix2pix gan

    pix2pix gan There are times that we want to to transform an image into another style Let s say we have a fine collection
  • 基于WOA-SVM算法的乳腺肿瘤识别算法的MATLAB仿真

    基于WOA SVM算法的乳腺肿瘤识别算法的MATLAB仿真 随着医疗技术的发展 计算机在医学影像领域中的应用越来越广泛 乳腺肿瘤是女性常见的一种肿瘤 准确地进行乳腺肿瘤检测和诊断对女性健康至关重要 本文将介绍一种基于WOA SVM算法的乳腺
  • centos下git相关操作以及部分问题解决方案

    主要记录两件事情 一个是如何git clone github代码到本地 二是git clone到非空文件夹下出错的解决方案 第一 在电脑没有安装git的情况下 手动安装git 具体步骤如下 1 安装依赖的包 yum install curl
  • c++使用curl库发送https请求

    一 环境win7 64位 vs2010 二 文件准备 2 1文件下载 libcurl 下载页面 http curl haxx se download html 我下载的是https curl haxx se download curl 7
  • angular项目打包发布流程

    1 从git更新代码 运行测试看有没有错误 测试ie兼容性 2 修改配置文件并编译打包代码 修改连接服务器的配置文件 双击 3 拷贝文件到服务器 xshell连接到linux 命令 pwd 查看当然文件目录 ll 列出该文件下所有的文件列表
  • Visual Studio 2019解决右侧工具栏消失

    项目场景 准备打开Visual Studio 2019却发现右侧的工具栏消失了 问题描述 新建项目后发现右侧的解决方案资源管理器消失了 不便于添加源文件书写代码 如图 原因分析 可能是以前在操作中将项目移除或删除等等将窗口删掉了 解决方案
  • 用jquery实现简单的表单验证效果

    看了 锋利的jquery 一书 练习了下期中的一个用jquery写表单验证的例子 效果如图 总结 这是个比较简单的表单验证 主要验证了表单中的用户名和邮箱两个必填选项 表单验证其实质是个不断往下过滤的过程 主要思路
  • selenium自动化录入数据

    将csv或者txt里的数据通过selenium自动录入到网页系统里 输入一个数据操作完后自动输入下一个数据 依次遍历所有的数据 比如百度搜索 有十个词要搜索 输入第一个词搜出结果后再接着输入第二个继续搜 依次遍历十个 求大神赐教 给个思路或
  • 21天打卡挑战学习MySQL——《SQL基础入门》第二周 第四篇

    活动地址 CSDN21天学习挑战赛 一 什么是SQL MySQL是一个关系型数据库管理系统 前世 瑞典MySQLAB公司 今生 属于Oracle旗下产品 MySQL是最好的RDBMS Relational Database Manageme
  • Unity游戏界面点击深色模式,游戏会退出问题的解决方法

    问题 在Unity游戏接入到android平台上时 经常会遇到这样的问题 游戏玩着玩着 点击深色模式 游戏会突然退出 具体情形下图所示 一 点击深色模式游戏退出 二 正常情况 三 解决方法 在AndroidManifest xml里 对继承
  • 【Linux】线程详解之线程概念

    前言 在我们的教材中 对线程给出以下的概念 是进程内部的一个执行分支 在进程的内部运行 属于进程的一部分 比进程更加轻量化 可能有的人看完之后都是懵的 什么叫在进程的内部运行 什么又是执行分支 为什么比进程轻量化 我们就带着这三个问题 重新
  • 2023超细致的性能测试流程,你get了吗?

    性能测试 利用工具模拟大量用户操作 验证系统承受的负载情况 性能测试的目的 找到潜在的性能问题或瓶颈 分析并解决 找出性能变化趋势 为后续扩展系统提供参考 测试监控 基准测试 配置测试 负载测试 稳定性测试 对硬件和中间件进行监控 1 学习