【性能测试】资深老鸟,压力测试-大促活动总结,一文打通...

2024-03-19 22:04

本文主要是介绍【性能测试】资深老鸟,压力测试-大促活动总结,一文打通...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录:导读

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


前言

1、了解业务活动的必要性

一般情况下压测人员不会与业务人员打交道,对业务也不会有太强的敏感性,所以通常拿到的测试指标都是开发人员提供的。

这很容易会陷入一个误区,如果开发人员对整体业务活动和压测不熟悉,提供的指标可能会与业务活动的压力有较大的差异甚至无法提供。这时就需要专业的性能测试工程师介入熟悉业务活动,评估压力指标。

当然,性能测试工程师并不仅仅只是完成压测,到达既定的压力指标就可以了,还要针对一些特殊的活动制定特殊的压测场景来检验系统是否满足业务需求,举两个栗子:

场景一:抢单模式

A保险产品计划在X月X日的早8点开启销售,全国范围前1W单有优惠,返利30%

那这种场景会有至少3个压力点:

第一个就是大家通常会考虑到的,业务系统每秒或者每分最多可以出多少单。

第二个就比较容易忽略了,那就是销售员会在7点50分~55分之间大量涌入,这对账号管理登录系统及业务系统首页加载有一定的考验。

另一个是最容易忽略也是非常关键的一点:A产品在8点开始销售,那在7点59分之后到8点零几秒的时间内,已经登录进来的销售员会一直不停地刷新产品列表直到A产品开售为止。

假定全国有80W销售员,那这80W人一齐连续刷新产品列表,如果这部分测试场景缺失,性能隐患未发现,导致生产服务器宕机,系统挂掉,那后果就不多说了。

场景二:预付模式

B产品就像某宝一样可以预售,出单流程基本走完,单子暂存至待付款保单模块,到某天的早8点开始付款生效,限售100W单

那这种场景也至少有3个压力点:
前两个压力机基本与场景一一样,区别就是关注最后一两个步骤的性能极限而不是整个出单流程的出单能力里。

第三个点就是当成功缴费之后,保单会存至已售保单。按照正常的思维逻辑与一般行为性,销售员会在保单缴费成功之后去已售保单里面查看。所以这时,对查看已售保单业务的压力会比以往大个好几倍甚至几十倍,这对Redis或者数据库都是非常大的一个考验(面对C端的APP同理)。

所以说只有在充分了解业务活动的情况下,性能测试工程师才能制定完整的压测场景来保障业务,这也是一个优秀的性能质量管理工程师所必备的素质之一。

全链路压测的必要性
现在压测场景已经根据业务活动设计好了,那我们现在继续往下走,聊一聊全链路压测这个话题。

2、性能测试成长阶段简述

阶段一:互联网发展初期,各系统规模较小,业务量也不大,一般情况下都是开发自行测试,没有专业的测试团队。

阶段二:后来衍生出了性能测试团队,由项目/需求来驱动测试。

阶段三:在成长到一定阶段之后就形成了性能测试统一的规范及标准,由被动测试变为主动测试。

阶段四:再往后就是性能评测能力的体系化、平台化,与研发、运维高效合作及赋能。
阶段五:devops开发测试运维一体化。

做不了线上压测,也一定要做到线下的全链路!!!

如果说公司还没有达到线上压测的能力,无法开展,但是线下全链路一定要做!虽然说从硬件资源到压测数据与线上差别较大,但也应该想尽办法去贴近生产环境。

硬件资源:虽然说测试环境的硬件和生产应用无法比拟,但是一定要保证压测环境有一部分性能较优的机器及存储资源供参与活动的系统使用,实在没有也要找领导协调其他环境资源临时使用,否则压测结果毫无参考意义。

系统资源配比:活动条线各系统的资源配置一定要统一,与生产等配或者半配。尤其忌讳A系统等配,B系统四分之一配,C系统半配,这种情况下压测过程中会因为资源问题相互推诿导致压测进度缓慢。

存量数据:通常存量数据也是线下压测的硬伤之一,压测前也是需要通过生产数据脱敏或者造数使得各系统压测数据库存量数据与生产存量数据保持一致或达到同一数量级。

正式压测前的准备工作
目前为止,压测场景和压测基础资源已到位,是否可以开始正式压测?是不是感觉还缺少一些东西?

参数配置检查
执行压测前要对所有系统的中间件、数据库等的参数配置检查。因为有很多开发老师只做研发工作,对JVM,nginx,redis,mysql等相关配置并不熟悉。

在环境搭建阶段使用的是各工具的默认值或者公司统一配置的默认值,因为参数配置和业务压力与机器配置息息相关,某些配置又非常影响性能,所以压测前一定要地毯式地排查一遍。避免因为一些基本参数设置不合理导致压测成本上升与人力物力资源浪费。

服务器资源监控
压测前也要做好对每一台服务器的资源监控及告警设置,这样在压测过程中,如果某个系统或者某个集群因负载较高导致性能下降可以快速定位并且及时解决,提高压测效率。

日志管理
因为压测数据量较大,各系统业务日志输出较多,对于每个系统的日志一定要做好准备工作。例如制作定时清理日志脚本或者在压测场景执行之前执行日志清理脚本等,避免因日志占满磁盘导致服务异常造成压测无效性。

预留资源
现在一般系统都已经是docker容器化部署,准备一些预备资源可以在集群扩容,或者有新业务模块需要临时压测等情况下有效减少服务器准备时间以提高压测效率。

各项目组压测接口人
指定的各系统接口人可以协助测试人员在压测中及时响应,快速解决问题,如果有条件最好能集中到一起进行办公,这样的压测效率提升是非常明显的。

达到压测指标是否可以结束测试
当测试结果可以达到目标时,恭喜你,已经完成了整个测试的三分之一。也许你现在会有疑问,为啥才三分之一?

那我现在问:
每个系统的每个服务,单节点可以支撑多少业务量?
如果活动期间突然有超预期的流量访问时,系统能够承受住多少并发,进不来的流量怎么办,会不会对正在销售的产品有影响?
如果要扩容,要扩多少,需要多久?
如果业务流程中,XX关键业务服务突然异常,重启服务需要多久才能恢复正常?
调用第三方接口时,如果响应较慢或者无响应,是否有应急机制?

这一系列的问题牵涉到了服务限流设计,服务熔断设计,服务降级设计,应急预案设计及演练等问题,都需要压力测试来做验证及演练。所以说测试结果可以达到目标也许只是走完了一小步,后面线性测试,极限测试,破坏性测试,稳定性测试,应急预案演练等场景都在等着你。

参与活动保障
压力结束,终于等到了活动这一天,要开始休息了吗?不!
如果有机会,一定要到活动保障现场,不仅仅是在人群中露个脸,你要关注活动压力有没有按照预期到来,压力有多大。各系统性能表现以及业务量。

通过观察记录活动数据来确认压测场景有否符合预期,有没有遗漏的压测点。这样后面再制定测试方案时就会更加全面与完整。

复盘的重要性
不要质疑复盘的重要性,团队与个人的成长可以在复盘的过程中极速提升。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不论此刻身处何地,只要心中燃起奋斗的火焰,勇往直前,必将书写出属于自己的辉煌篇章;坚持不懈,终将收获耀眼成就。

在逆境中磨练意志,在挑战中突破自我,只有坚持奋斗,才能看见成功的曙光;勇敢面对困难,坚定前行,未来的辉煌将属于你!

奋斗是通往梦想的道路,坚持是抵达成功的船票;每一份努力都在积累成就,每一步坚定都在铺就辉煌。相信自己,你定能创造无限可能!

这篇关于【性能测试】资深老鸟,压力测试-大促活动总结,一文打通...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827366

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的