爆肝整理,性能测试-交易系统升级压测思路,一篇不走弯路...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

交易系统性能是体现互联网证券业务能力的重要指标,如何确保新构建的交易系统能够满足针对互联网大数据量的业务需求成为重中之重。

因此必须对交易系统的性能容量指标进行合理的评测,以满足经营机构中长期业务发展的需要。

下面将从建模策略和数据采集、软硬件环境配置及性能监控指标定义等方面提出相关测试思路。抛砖引玉,以求更进一步的理解。

1、建模策略和数据采集

性能测试往往面临如下问题:
1)业务模型单一,且与线上实际业务偏差比较大;
2)数据脱离实际。

据此,我们可以做如下尝试:

在建模策略方面,根据证券类交易系统的特点,事前,确定了两套业务场景实施方案,日常业务场景与高峰业务场景,分别应用于不同的测试类型。

同时,依次分析线上各事务的重要程度、发生频率、变化规律及发展趋势,形成单业务场景、多业务场景、多业务综合场景等不同的备选集合。

在实际实施过程中,运用顶层规则,在备选集合中,选取占比较大的业务纳入业务模型。并参考线上业务实际发生过程,进行最终业务模型确认。

在数据采集方面,由于系统存在线上运行记录,运用线上历史运行数据分析的方式,提取数个典型交易日的数据样本,细化分析交易量、交易发生时间、发生分布及变化率,形成业务模型的数据来源。

首先,对于日常业务场景,以年度数据为基础,以月为单位,采集各年的业务增长量,比较各年中月业务的变化量,形成数据。

其次,对于高峰业务场景,以日交易变化为基础,以5-10分钟为单位,分业务采集各个不同业务的业务量及业务数据。时间间隔越短,所采集的数据量越准确。

最后,在实际测试过程中,以以上分析为基础,尽可能的将数据生成过程参数化,以便快速形成单套基础测试数据、多套业务测试数据。

在测试执行策略与方法的选择上,我们制定了如下测试类型的实施策略:基准测试、单场景测试、混合场景并发测试、容量测试、浪涌测试及稳定性测试。

其中,针对不同阶段的上线过程,还需要贯穿部分配置测试。

2、软硬件环境配置

交易系统的重构很大一部分是软硬件的更新换代。机构在与供应商的对话中常常处于弱势地位。供应商相对集中,对机构比较强势。

通常在提供给机构其软硬件资源后,仅做简单的技术支持,能满足基本要求即可,而对系统优化需求的支持较弱,使得机构无法客观、真实、有效的了解其软硬件设备更新所带来的实际收益。

由此,需要通过单模块、单节点、多模块、多节点、配置测试等性能测试的方式,排查系统软硬件瓶颈,并进一步找到系统的最优配置,真正了解系统软硬件的功效。

还可以逐步扩展并覆盖到软硬件选型、容量规划、性能评估验收、性能优化等领域。

在实际测试过程中,需关注以下问题:

1)要保证硬件机型要一致

不同机型看似差异不大,但实际的表现却大有不同。例如数据库服务器,并非选取某厂商CPU核数高的最新产品,性能表现就越佳。

对于多并发读写方式的数据库,往往CPU频率越高,它所表现的整体性能就越佳,而这款机型可能是该厂商往年的机型。

2)操作系统与软件版本要一致

这两者本身所表现出来的性能差异可能可以被预期或被忽略,但其与周边软硬件接口的性能变化却值得关注。例如新操作系统版本与旧数据库版本、或新数据库版本与旧存储所造成的性能表现变化。

最后,拓扑结构要一致。测试环境可适当的采取低配的方式部署。例如,对于有多个负载均衡的部分,可缩小到一至两个,采取压力最大的负载均衡组。而对于一些可基本确定为非性能瓶颈的组件,可采用低配置部署。

需要注意的是,测试过程中需与运维保障人员及时沟通,保证测试环境与生产环境参数类似。

在此条件下,将关注点放在被测系统的硬件资源消耗上,排除软约束影响,分析性能瓶颈。

3、性能监控指标定义

根据交易系统的特点,在系统处理能力方面,需要纳入了TPS(Transaction Per Second)及业务端与数据库端的CPS(Call Per Second);

响应时间方面,配合不同的测试类型,需重点考察平均响应时间和最大、最小响应时间;

并发用户数发面,在混合场景及浪涌测试中,需模拟多用户的并发操作;

另外,事物成功率、资源利用率,包括CPU、内存、磁盘IO、网络带宽等一些基础指标均需要在最后的测试报告中有所体现。

其次,需要做多轮次测试结果的比对。通过多轮次、在不同软硬件环境上的测试执行,配合系统硬件环境的微调及线上参数的最优配置,提供不同轮次间的比对结果。

另外需要提一下的是,数据库端的并发操作往往会产生问题,需要从以下几个角度去思考:

1)委托处理中查询语句的使用频率。往往会存在大量的重复执行,建议可以考虑从应用程序层面进行优化。

2)反复执行的语句建议采用绑定变量的方式。

3)数据库的数据文件建议不需要开启自动增长;如果一定要开启,则不要配置成百分比增长,而是按照固定大小增长。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不要让平庸成为自己的选择,勇敢拥抱挑战,追逐自己的梦想。只有敢于冒险,才能创造出属于自己的非凡人生!

在成功的道路上,充满坎坷与挑战,但有勇气和决心,就能跨过任何难关。只有坚持不懈的努力,才能赢得属于自己的辉煌胜利!

只有拥有无畏的勇气、坚定的信念和不懈的努力,才能创造出属于自己的非凡人生。让梦想成为你前行的动力,用奋斗铸就辉煌!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【性能测试】JMeter分布式测试及其详细步骤

性能测试概要 性能测试是软件测试中的一种,它可以衡量系统的稳定性、扩展性、可靠性、速度和资源使用。它可以发现性能瓶颈,确保能满足业务需求。很多系统都需要做性能测试,如Web应用、数据库和操作系统等。 性能测试种类非常多&#xff0c…

QT应用篇:QT自定义最小化托盘显示和操作

将应用程序最小化到托盘任务栏中,可以使用Qt框架中的QSystemTrayIcon类。该类允许应用程序在关闭窗口后最小化到系统托盘,保持在后台运行,同时可以显示应用程序图标、添加右键菜单功能以及发送消息通知等。通过学习这些技术,能够为自己的Qt应用程序增加更多的交互性和便利性…

C++ TinyWebserver 部署到Linux下,并运行(使用的是Vmware的虚拟机运行Ubuntu20.04)

环境:VmwareUbuntu20.04 1. Tinyweb server项目地址:https://github.com/qinguoyi/TinyWebServer 2. 首先进行mysql5.7的安装: 参考教程 : Ubuntu20.04安装MySQL5.7-实测3种方法(保姆级教程):…

《软件项目接口安全设计规范》

1.token授权机制 2.https传输加密 3.接口调用防滥用 4.日志审计里监控 5.开发测试环境隔离,脱敏处理 6.数据库运维监控审计 软件全套文档:软件开发全套资料-CSDN博客

Python武器库开发-武器库篇之C段扫描器开发(四十三)

Python武器库开发-武器库篇之C段扫描器开发(四十三) 在我们进行渗透过程中的信息收集的步骤时,收集资产目标的C段也是非常重要的一部分。 C段是指互联网中的一类IP地址。IP地址是互联网上每台设备的唯一标识符。IP地址由一系列数字组成,通常以点分十进…

Pytorch种torch.cat与torch.stack的区别

torch.cat 和 torch.stack 是 PyTorch 中用于拼接张量的两个不同的函数,它们的主要区别在于拼接的方式和创建的维度。 torch.cat: 拼接方式: torch.cat 是按照给定的维度(dim 参数)将多个张量沿着该维度拼接。在拼接的…

科技云报道:“存算一体”是大模型AI芯片的破局关键?

科技云报道原创。 在AI发展历史上,曾有两次“圣杯时刻”。 第一次发生在2012年10月,卷积神经网络(CNN)算法凭借比人眼识别更低的错误率,打开了计算机视觉的应用盛世。 第二次是2016年3月,DeepMind研发的…

Python 面向对象知识点补充

Python 面向对象知识点补充 【一】Mixins机制 【1】概念 Mixins:是一种在面向对象编程中,通过组合多个类的特称来创建一个新类的技术核心机制:就是在多继承的背景下尽可能地提升多继承的可读性通过命名规范来满足人的思维习惯(…

【微机原理与接口技术】期末模拟卷(2)

有不会的题可以后台问我的哦,看见了就会回。 本文章主要是微机的模拟卷,最后祝大家期末心想事成 1、微处理器为8086数据总线和地址总线为 ()位 A.16 16 B.16 32 C.16 20 D.32 32 8086是16位寄存器,即需要16位数据线 2、微型计算机硬件系…

小程序实现绘制图片 保存到手机

HTML <template><view><canvas canvas-id"myCanvas" :style"{height:380px,width:wWidthpx,background:#FFFFFF}"></canvas><view class"textCenter"><button click"saveCanvas">保存图片</b…

uniapp获取手机当前信息及应用版本

appVersion 是app端查询的数据信息 appWgtVersion 是浏览器端查询的数据信息 onLoad() {const systemInfo uni.getSystemInfoSync();console.log(systemInfo);// #ifdef H5const uniAppVersion systemInfo.appVersion;// #endif// #ifndef H5const uniAppVersion systemIn…

报文大小限制、请求体类型总结

文章目录 1. 各节点请求体有无限制1.1 http协议1.2 TCP/IP层限制1.3 浏览器1.4 nginx1.5 gateway1.6 tomcat1.7 springboot1.8 内存、磁盘处理不了一切白搭 2. 请求体类型2.1 application/x-www-form-urlencoded2.2 multipart/form-data2.3 application/json2.4 text/plain2.5 …

从贝索斯、英伟达们手里又融了7000万美元,Perplexity还真奔着取代Google去了

AI应用千千万&#xff0c;到底哪些才真正值得你花钱花时间&#xff1f; 对于这个问题&#xff0c;埃森哲人工智能高级顾问、《哈佛商业评论》播客频道主持人Azeem Azhar给出的答案是&#xff1a;“如果必须选择一个&#xff0c;我不会选ChatGPT或Claude&#xff0c;而是Perple…

神经网络的核心:简单易懂理解 PyTorch 非线性激活函数

目录 torch.nn子函数非线性激活详解 nn.Softmin Softmin 函数简介 函数工作原理 参数详解 使用技巧与注意事项 示例代码 nn.Softmax Softmax 函数简介 函数工作原理 参数详解 使用技巧与注意事项 示例代码 nn.Softmax2d Softmax2d 函数简介 函数工作原理 输入…

数据摆渡会遇到哪些风险?要如何应对?

数据摆渡&#xff08;Data Shuttle&#xff09;是一种在不同网络环境之间安全、可控地传输数据的过程。在企业环境中&#xff0c;这通常涉及到将数据从内部网络&#xff08;内网&#xff09;传输到外部网络&#xff08;外网&#xff09;&#xff0c;或者在多个隔离的内部网络之…

安恒2023全球高级威胁态势研究报告(网盘下载)

《2023全球高级威胁态势研究报告》 2023 年&#xff0c;一系列新兴威胁的不断涌现&#xff0c;使得网络安全面临着前所未有的挑战。过去一年&#xff0c;我们目睹了地缘政治动荡、科技进步和人类活动的交织&#xff0c;进一步深刻地塑造了数字时代的未来。 在此背景下&#xff…

java 体育明星管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web 体育明星管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

3.2 MAPPING THREADS TO MULTIDIMENSIONAL DATA

1D、2D或3D线程组织的选择通常基于数据的性质。图片是2D像素阵列。使用由2D块组成的2D网格通常可以方便地处理图片中的像素。图3.2显示了处理7662图片P的这种安排&#xff08;水平或x方向为76像素&#xff0c;垂直或y方向为62像素&#xff09;。假设我们决定使用16 x 16块&…

MyBatis实战指南(一):从概念到特点,助你快速上手,提升开发效率!

嗨~ 今天的你过得还好吗&#xff1f; 如果命运是世界上最烂的编剧 你就要争取做你人生最好的演员 &#x1f31e; - 2024.01.08 - MyBatis是一个优秀的持久层框架&#xff0c;它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取…

【百科物理】-2.重力与浮力

导入 问题&#xff1a; 灯掉下来&#xff0c;重力太大&#xff0c;掉下来。 重力来源于地球&#xff0c;地球上所有的东西都受重力向下落。 搬箱子&#xff0c;搬东西沉&#xff0c;是受重力的影响&#xff0c;重力的方向是竖直向下的。 万有引力&#xff1a;任何两个物体之间都…