浅谈性能测试中的基准测试

news2024/9/28 11:01:12

性能测试中有一种测试类型叫做基准测试。这篇文章,就聊聊关于基准测试的一些事儿。

1、定义

通过设计合理的测试方法,选用合适的测试工具和被测系统,实现对某个特定目标场景的某项性能指标进行定量的和可对比的测试。

2、特质

①、可重复性:可进行重复性的测试,这样做有利于比较每次的测试结果,得到性能结果的长期变化趋势,为系统调优和上线前的容量规划做参考。

PS:这种特质是为了满足基准测试的日常轮询需要。

②、可观测性:通过全方位的监控(包括测试开始到结束,执行机、服务器、数据库),及时了解和分析测试过程发生了什么。

③、可展示性:相关人员可以直观明了的了解测试结果(web界面、仪表盘、折线图树状图等形式)。

④、真实性:测试的结果反映了客户体验到的真实的情况(真实准确的业务场景+与生产一致的配置+合理正确的测试方法)。

⑤、可执行性:相关人员可以快速的进行测试验证修改调优(可定位可分析)。

3、前置条件

基准测试一定要在可控的条件下进行。

面对日益复杂的系统和不断增长的用户数,以及性能测试可能涉及到的多个业务系统,只有做到基准测试所涉及的业务场景、系统架构、测试环境等在可控状态下,才能得到相对准确的结果,为容量规划、缺陷定位、系统调优提供参考和依据。

4、意义

①、为容量规划确定系统和应用程序的极限;

②、为配置测试的参数和配置选项提供参考依据;

③、为验收测试确定系统是否具备自己所宣称的能力;

④、为性能基线的建立提供长期的数据统计来源以及比较基准。

5、前提

①、测试目的:明确测试的目的,测试什么?用什么测试方法、策略?

②、测试环境:被测系统的环境是什么,SIT还是UAT活着PAT?

③、测试限制:要执行测试有哪些限制因素,该如何解决?

④、风险因素:测试可能存在哪些风险,解决方案是什么?

⑤、结果分析:对测试结果如何分析?测试产生的数据如何分析、定位?

6、原则

①、测试策略:稳定且连续的工作负载,多次运行,看测试结果数据的正态分布趋势,尽量取平均值;

②、数据统计:真实环境下测试数据的平均值、峰值各是多少,取值的维度;

③、差异风险:明确存在哪些风险,风险对测试结果的影响,是否忽略;

④、特殊情况:有哪些特殊情况,是否有对应的解决方案(比如支付场景中的支付服务调用,是否采用挡板等)。

7、需要考虑的因素

交易配比:某些业务场景,一个流程包含多个事务,在模拟并发中,不同的事务各自的占比;

突发性的读写操作:某些特殊业务场景,会有短时的大流量冲击或者请求数量骤减,该如何模拟(浪涌测试);

系统配置:不同环境的系统配置不同,测试结果如何换算、如何对比?

测试时长:测试执行过程中,运行多长时间,不同交易运行的时间分配等;

结果展示类型:平均值、峰值、百分比值如何展示,如何对比?

成功/失败占比:每次测试过程中,成功和失败的事务占比统计;

是否可重现:如测试过程中出现报错或某些异常情况,是否可以重现?

是否可对比:是否有其他测试工具或者测试结果进行对比(尽量多次执行测试,进行测试结果对比:标准方差、正太分布了解一下?)

8、简单可行的方法

逐渐增加系统负载是一个确定系统所能处理的最大吞吐量的简单办法,也是寻找系统性能拐点的可行策略(阶梯式加压测试)。

9、重点

基准测试的工作重点是统计分析:可以从以下几个维度去进行统计:

①、选择合适的测试工具,设定合理的测试方法以及需要确认的系统性能指标;

②、选择不同的测试工具,对测试结果进行对比,选择稳定且能反应系统真是性能表现的结果;

③、多次执行测试,收集大量的测试数据集和指标;

④、从不同维度解读分析数据,生成报告。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

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

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

相关文章

SUI供应量等问题的说明以及终止与MovEX的合作声明

原生加密token是区块链经济系统的基石,对网络的安全、运作和增长至关重要。Sui的原生token SUI有如下四个关键用途: 质押给验证节点,以确保网络的安全,并赚取质押奖励用于支付gas费,以执行交易和其他操作作为原生资产&…

用python怎么输出个人信息,python怎么输出个人信息

大家好,给大家分享一下python输入自己的姓名,输出hello,某某某同学,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 1、python要求用户输入姓名并输出 name input("请输入姓名:") print("你好,"&#xff…

MSFCS互相联动

MSF&CS互相联动 1. 前言2. CS联动MSF2.1. 案例测试2.1.1. CS设置联动监听器2.1.2. CS设置联动MSF会话2.1.3. MSF设置监听 3. MSF联动CS3.1. 案例测试3.1.1. MSF生成木马3.1.2. 设置监听3.1.3. CS设置监听3.1.4. MSF转移会话3.1.5. 查看上线 4. 其它 1. 前言 在日常渗透测试…

【单片机】温控系统参数辨识及单片机PID控制

温控系统参数辨识及单片机PID控制 1. 温控系统组成2. matlab辨识系统参数2.1 采集阶跃响应信号导入matlab系统辨识模块 PID控制 1. 温控系统组成 半导体制冷片正向通电制冷,反向通电制热。系统采用半导体制冷片(帕尔贴)作为执行单元&#xf…

使用adb通过电脑给安卓设备安装apk文件

最近碰到要在开发板上安装软件的问题,由于是开发板上的安卓系统没有解析apk文件的工具,所以无法通过直接打开apk文件来安装软件。因此查询各种资料后发现可以使用adb工具,这样一来可以在电脑上给安卓设备安装软件。 ADB 就是连接 Android 手…

C++中对 this 指针的理解

引出 我们首先了解this指针,要先了解class(类),类其实就相当于C语言中的结构体一样,也是创建了一个自定义类型。对于类而言该类型下面可以存放成员函数,成员变量。类可以声明一个变量,对该变量…

数据结构---LRU CACHE

什么是LRU 通过之前的学习我们知道计算机在处理任务的时候是先将数据从硬盘中提取出来加载进内存,然后再将内存中的数据加载进入cpu进行计算,但是这里存在一个问题cpu的计算速度非常快,而内存中加载数据的速度又很慢,所以为了提供…

Mysql-事务、视图和索引

目录 事务 操作 步骤 特性 并发事务问题 事务隔离级别 索引 作用 分类 主键索引(PRIMARY KEY) 唯一索引(UNIQUE) 常规索引(INDEX) 全文索引(FULLTEXT) 管理索引 数据…

2023-07-28 LeetCode每日一题(并行课程 III)

2023-07-28每日一题 一、题目编号 2050. 并行课程 III二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数 n ,表示有 n 节课,课程编号从 1 到 n 。同时给你一个二维整数数组 relations ,其中 relations[j] [prevCoursej, next…

CS5212/CS5202|国产DP转VGA芯片|DP转VGA单转方案芯片

CS5212/CS5202是集睿致远推出的一款国产DP转VGA方案芯片,可替代替代RTD2166,替代IT6516芯片方案,相比之下CS5212/CS5202外围器件少,设计版框尺寸小。 CS5212/CS5202 DP转VGA方案原理图 CS5202特性 支持2通道数字输入&#xff0c…

一封来自Java学姐的信

黑马JavaEE学科学姐想对学弟学妹们说:勤学如春起之苗,不见其增,日有所长。 辍学如磨刀之石,不见其损,日有所亏。 学科 | JavaEE 校区 | 太原 亲爱的学弟学妹们,在学校“混日子”的时间很快就过去了&…

虚拟演播室:Aximmetry Broadcast DE 2023 Crack

Aximmetry 的基于节点的编辑器可以根据您的特定项目进行塑造,从而在实现项目时提供更大的灵活性;无论是广播制作、虚拟活动、预可视化、基于 LED 墙的虚拟制作还是您可以想象的任何其他 3D 图形任务。有关 XR 的更多信息。Aximmetry 还拥有自己的先进色度…

matlab BP神经网络对iris数据集进行分类

iris数据集 本文所用数据集👉👉👉iris分类数据集 1.数据预处理 %% 1.数据预处理 oridatareadtable(Iris.xls,Sheet,Sheet1); Xtable2array(oridata(:,(1:4))); % X转化为array类型 Ytable2array(oridata(:,5)); % Y因为包含中文字符&…

如何彻底卸载VMware

目录 第一章、停止并卸载VMware程序1.1)停止VMware有关的服务1.2)打开任务管理器停止进程1.3)卸载VMware程序 第二章、残留文件删除2.1)打开注册表2.2)删除注册表残留文件2.3)C盘文件删除 友情提醒&#xf…

单机环境下定时任务的基本原理和常见解决方案(二)之时间轮原理分析

单机环境下定时任务的基本原理和常见解决方案之时间轮原理分析 时间轮Netty时间轮使用Netty 时间轮 HashedWheelTimer 源码分析向时间轮里添加taskWorkerThread线程执行时间轮任务 多层时间轮总结 时间轮 生活中的时钟想必大家都不陌生,而时间轮的设计思想就是来源…

【3】-使用@task设置测试用例执行的权重

多个测试链路压测使测试任务按预想的比例执行 locust的task装饰器提供了入参weight,locust执行测试任务时,会根据weight的比例进行分配用户数 from locust import task, HttpUserclass MyTestUser(HttpUser):# test_01 : test_02 3 : 1task(3)def wei…

数据结构:分块查找

分块查找,也叫索引顺序查找,算法实现除了需要查找表本身之外,还需要根据查找表建立一个索引表。例如图 1,给定一个查找表,其对应的索引表如图所示: 图 1 查找表及其对应的索引表 图 1 中,查找表…

安全测试国家标准解读——资源管理和内存管理

下面的系列文章主要围绕《GB/T 38674—2020 信息安全技术 应用软件安全编程指南》进行讲解,该标准是2020年4月28日,由国家市场监督管理总局、国家标准化管理委员会发布,2020年11月01日开始实施。我们对该标准中一些常见的漏洞进行了梳理&…

c++学习(哈希)[21]

哈希 哈希表(Hash Table),也称为散列表,是一种常用的数据结构,用于实现键值对的存储和查找。它通过将键映射到一个索引位置来快速地访问和操作数据。 哈希表的基本思想是使用一个哈希函数将键映射到一个固定范围的整…

自定义 View(六) 自定义评分星星

先看看效果图 1.自定义 View 的基本流程 创建 View Class创建 attr 属性文件,确定属性View Class 绑定 attr 属性onMeasure 测量onDraw 绘制onTouchEvent ( 用户交互需要处理 ) 1.1 创建 View Class package com.example.view_day05_ratingbar;import android.…