你真的会性能测试吗?性能测试需求分析,从业务到数据(详细)...

news2024/10/7 3:27:29

目录:导读

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


前言

产品需求

业务场景:
一个问卷调查的功能,然后产品和业务会不定时通过前端界面去根据筛选条件查询相关问卷问题的答案明细,但是觉得很慢,让测试这边给出一个指标。

系统架构:
MySQL数据库,所有问卷问题相关的数据都存储在同一张表,单台服务器,无缓存,通过一个查询接口去查询返回数据。

数据量:
每天大概新增3000张问卷调查,每张问卷30个问题,每个问题下面还有具体的答案,答案的数据类型、大小不清楚。

PS:从我个人的了解来看,对大部分测试人员来说,遇到的性能需求大体都是这种范围不明确,指标不清楚的性能需求,那么如何做好测试工作,在体现自己价值的同时,还能学习提升呢?

具体问题具体分析

场景建模:
和产品业务沟通,明确他们的操作场景,比如查询的条件(时间范围、问卷类型、分数范围、用户类型等),操作时间(具体到每天哪个时间段有多少人进行这些操作)。

确定指标:
明确了业务场景后,确认不同的操作下,用户(这里是产品和业务人员)的可接受值(比如每天早晨9:00-9:10,100个人进行查询操作,查询条件是最近一周A类型用户的B类型问卷,分数在80分以上),

可接受的最大响应时间不超过5S。

测试进行中

确认测试范围和具体的性能指标后,接下来就需要进行测试方案设计、测试用例设计等一系列的计划了,这个阶段是最耗费时间也是最麻烦的。

1、环境确认
首先需要确认测试的执行环境,是生产、UAT还是独立的测试环境。测试环境对测试结果的影响是很大的,大体如下:

生产:在执行测试的过程不能对其他用户访问造成影响(时间选择很重要),测试数据污染要解决(数据隔离:线程标记、用户白名单、挡板、mock对象、测试数据落入影子库);

UAT:作为验收环境,一般来说数据的准确性和系统版本都是最新和相对稳定的,但要考虑对其他业务的影响,理由同上;

测试:数据预埋、基础数据准备、测试数据准备、每次执行迭代后的数据初始化、服务器配置和生产是否可以等量代换等;

2、团队合作
性能测试不是一个人就可以搞定的,一般都需要运维、DBA、开发、测试配合来进行,因此做好沟通和协作很重要。

3、测试要做什么
上面的工作做完之后,你需要考虑测试执行工具和脚本开发的工作。

需要做的事情如下:
①、和开发沟通,获取业务功能对应的接口文档(如果没有,想办法),参数字段的含义,对应的数据库表字段,造成的影响;
②、和运维沟通,确确认服务器的部署,配置(这里可能需要进行基准测试和配置测试);
③、和DBA沟通,确认测试数据预埋、基础数据准备、迭代后的数据初始化工作;
④、测试人员本身,需要准备测试数据,开发测试脚本,进行脚本调试,执行和监控分析等工作;

如何在性能测试中体现测试的价值?

我相信很多测试朋友都经历过那种不被看中的阶段,但也要努力去改变现状,不断体现自己的价值。

如何体现,请看下面:
1、做好沟通协调
①、和业务产品沟通,确认需求和场景;
②、和技术团队沟通,尽量多沟通,达成一致(测试方案、测试用例、测试数据、测试环境);

2、本职工作要做好
①、测试方案、测试用例设计;
②、测试工具选型、测试脚本开发和调试;
③、测试数据的准备;
④、测试执行、监控和分析定位;

3、创造价值才能赢得尊重
职场,一切到头来还要从自身创造的价值来赢得尊重,那么如何从测试的角度创造价值?

①、提高交付的产品质量(覆盖率、风险分析、容错方案、容灾方案);
②、提高交付速率(解决问题的过程抛出问题,流程不规范、开发不规范、管理不规范等,抛出问题,然后推动解决问题)
③、打铁也要自身硬!因此不断学习提高自己的技术能力,不断总结沟通,才能更好和同事交流,从解决问题的角度出发,去解决问题,创造价值!

性能需求的一些优化建议

数据库优化:
问题点:从上面描述的情况来看,每天产生的数据大概有10W+条,且只有一张表存储;

解决方案:分库分表,表可以拆分为问卷主表、问卷对应的问题表、问题对应的答案明细表等,长期来说数据量不小,可以考虑分库,主从分离等,查询添加索引等方法。

处理逻辑优化:
问题点:一次性查询的数据过多,导致前端展示较慢;

解决方案:查询结果分批次展示(比如有100W条数据,分为100个批次,每个批次10000条数据)。

存储优化:
问题点:没有缓存,直接从DB单表读取,容易造成超时和表锁;

解决方案:将数据放入缓存服务器(比如Redis),设定查询次数或者有效时间,多级缓存,提高缓存命中,防止缓存穿透和同时失效带来的瞬间DB压力。

业务优化:
问题点:多人短时间内查询大量数据,对服务造成巨大压力;

解决方案:和产品业务沟通,让查询操作时间在业务平缓期,拉长查询操作的时间线等。

服务优化:
问题点:单台服务器;

解决方案:做服务集群和负载均衡,增加监控,设定阈值,超过阈值则临时增加新的服务器,分流。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

生命是一场马拉松,成功需要不断的奔跑和坚持。别让平庸成为你的选择,拥抱挑战并享受过程中的成长与收获。相信自己,勇敢前行,未来的路会更加美好!

每个人都有不同的起点,但只要你肯付出努力,就能到达成功的终点。不要被眼前的挫折打倒,相信自己的实力,坚持奋斗,未来必将充满可能和无限可能!

不要害怕失败,因为每次失败都是迈向成功的一步。只有敢于尝试和不断努力,才能创造出更好的自己。坚持奋斗,迎接挑战,成功将属于你!

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

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

相关文章

MFC二维码生成,libqrencode——小白级

直接使用:下载我编译好的库-链接-,直接跳转到使用库那一步 两个工程打包链接 ——下载 先上最终效果: ​​ 二维码生成,参考: 跳转链接 一、 libqrencode库编译 libqrencode是一个日本人写的的库,库在这…

自学黑客(网络安全)看这篇就够了

写了这么多编程环境和软件安装的文章,还有很多小伙伴在后台私信说看不懂。我都有点头疼了,但是小伙伴们求学的心情我还是能理解,竟然这么多人给我反馈了,那我就再写一篇网络安全自学的教程吧!大家耐心看完,…

Fidder 抓iPhone Andorra包 教程 解决证书过期问题

1. 下载Fidder 链接:https://pan.baidu.com/s/12xgEU8YyE-CfWMbPIWqWMw?pwdfhxh 2.设置Fidder 3. 手机设置代理并安装证书 首先 windows r 键 输入cmd 输入 ipconfig 查看本机的IPv4地址 然后设置手机网络的HTTP代理。之后在iPhone上用Safari访问 ipv4地址:888…

【mysql】2003-Can‘t connect to MySQL server on “XX.XX.XX.XX“ (10060 unknow error)

使用navicat或者其他数据库管理工具连接远程mysql服务器时出现2003-Can’t connect to MySQL server (10060 unknow error)错误 经过排查时发现是防火墙的问题,OK!那么下面写一下处理的过程 1、查看防火墙的状态 systemctl status firewalld 2、 开放…

MySQL基础(二十九)数据库的设计规范

1 范式 1.1 范式简介 在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结 构需要满足的某种设计标准的 级别 。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 1.2 范式都包括哪些 目…

连接器行业最新状况:竞争充分,行业集中度不断提升

随着应用领域不断扩展,连接器产业逐渐发展成为产品种类齐全、品种规格丰富、专业方向细分、行业特征明显、标准体系规范、系列化及专业化的行业。 连接器行业是充分竞争的行业,行业集中度不断提升 连接器行业具有市场全球化和分工专业化的特征&#xf…

VMware Aria Suite Lifecycle 8.12 - 应用生命周期管理

VMware Aria Suite Lifecycle 8.12 - 应用生命周期管理 请访问原文链接:https://sysin.org/blog/vmware-aria-suite-lifecycle/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 应用生命周期管理 VMware Aria Suit…

Vue中组件之间通信的-六大方式-总结

方式一:props/$emit 父组件向子组件传值 通过一个例子,说明父组件如何向子组件传递值:在子组件Users.vue中如何获取父组件App.vue中的数据 users:["Henry","Bucky","Emily"] 注:父组件通过props向…

【企业信息化】第8集 免费开源ERP: Odoo 16 Purchase采购管理 改善您的供应链和库存绩效

文章目录 前言一、概览二、主要功能1.自动化采购流程2.供应商价目表和产品库存3.通过采购招标获得最佳要约4.获取采购情况的统计数据5.管理多家公司6.全面地 集成 于其他 Odoo 的应用 总结 前言 轻松管理供应商和采购订单,改善您的供应链和库存绩效。 一、概览 二、…

【极验黑科技】文生图大模型在极验人机对抗领域的应用

自极验于2013年开创性地提出新一代的智能验证码概念开始,就始终在人机对抗领域不停地升级迭代。极验全球首创的“行为式验证”在十多年来,为全球近40万的开发者使用。如小米、新浪微博、东方航空、国家工商局等企业携手极验验证码进行升级,使…

4.AI人工智能大模型汇总:类GPT系列模型、模型中转站Auto-GPT、多模态大模型、视觉模型、自然语言模型

AI人工智能大模型汇总:类GPT系列模型、模型中转站Auto-GPT、多模态大模型、视觉模型、自然语言模型 模型名称发布方类型开源类型原始模型框架paddle版本模型能力模型语言模型参数简介模型链接体验链接paddle版本链接项目链接备注发布日期创建人模型星火认知大模型科大讯飞语言…

RecyclerView使用示例(瀑布流)

RecyclerView使用示例 效果图代码示例ShopFragment.java(显示RecyclerView的Fragment)fragment_shop.xml(相对应的xml文件)GoodsData.java(数据源)GoodsAdapter.java(适配器类)adapt…

WebGIS支持国内各地方坐标系数据展示的方案

在我们的实际项目开发过程中,会存在着很多的客户提供的数据是地方坐标系的数据,这些数据通常是一些类似于地块数据,点位数据等等的矢量数据。如何加载这些数据可能会让大家有些头疼。我们这篇文章来给大家提供几种解决方案。 首先要清楚一个基础的地理学知识,那就是地理坐…

springboot项目网站部署到服务器

用eclipse跟着教程做了一个网站,java语言,springboot项目。在本地电脑上运行成功后,想把它部署到线上,通过网络访问。下面是我自己作为新手自己摸索出来的一个方法,供读者参考。 目录 1. jar包 2. 服务器 3. jdk 和 T…

virtualbox ubuntu20.04集群网络配置

这个问题困扰我一年之久。 大三学期的课程,因为集群网络问题卡壳。当时查阅各种资料,百度几十篇文章,看博客,甚至是请教老师都没能解决,也因为这个问题导致Hadoop后面都没有实操学习。 今大四毕业之际,又…

react setState 中使用函数替代对象

遇到的问题&#xff1a; 调用很多次 setState, 最后的值并不是我想要的值 -偶现问题(60%) 修改前代码 const [data, setData] useState<T>((options?.initialValues || {}) as T);const resetForm (values: Partial<T>) > {// 常用写法 -此刻data&#xff0…

外链建设技巧,助你成为搜索引擎中的佼佼者!

终于&#xff0c;SEO 系列来到了正篇的终章&#xff0c;恭喜你&#xff0c;你很快就可以向更加专业的 SEO 专家再迈进一步了&#xff01; 今天&#xff0c;我们将和你一起&#xff0c;带上之前所学的知识、技巧&#xff0c;从实战出发&#xff0c;像手术台上的主刀医生那样&am…

16:00面试,16:08就出来了 ,问的实在是太...

从外包出来&#xff0c;没想到算法死在另一家厂子 自从加入这家公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到一纸通知&#xff0c;所有人不许加班&#xff0c;薪资直降30%&#xff0c;顿时有吃不起饭的赶脚。 好在有个兄弟内推我…

通过systemctl管理服务

文章目录 通过systemctl管理服务通过systemctl管理单一服务(service unit)使用案例服务启动/关闭/查看的练习关于systemctl命令启动/停止服务后面的后缀名是否加&#xff1f; 通过systemctl查看系统上所有的服务使用案例 通过systemctl管理不同的操作环境(target unit)使用案例…

面试京东失败,再看看2年前的面试题,根本不是一个难度···

刚从京东走出来&#xff0c;被二面难到了&#xff0c;我记得学长两年前去面试的时候&#xff0c;问的问题都特别简单&#xff0c;咋现在难度高了这么多。面试前我也刷过很多的题和看过很多资料&#xff0c;后来想想&#xff0c;这年头网上资料泛滥&#xff0c;测试面试文档更是…