爆肝总结,软件测试-常见并发问题+解决方案,测试进阶...

news2024/11/17 19:43:46

目录:导读

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


前言

并发测试的定义

并发测试的定义中,最主要的有两点
①点层面上的:
例如:周一早上7:30半,小学生要统一到操场升国旗。

即:同一时间做某件事
②线层面上的:
例如:中午11:30-13:00,小学生有的跳皮筋,有的踢足球,但同时对服务器产生压力。即:一个时间段做不同的事

并发测试不等于性能测试
这个问题,我面试的时候,问过多个求职者,大部分求职者的第一反应都是说并发测试就是性能测试!

性能测试中把并发又分为负载和压力测试。
虽然并发测试与性能测试有交集,但是,并发测试并不仅仅应用于性能测试。并发测试更多被运用于其他领域。

常见并发问题

当下流行一种时尚的软件设计理念,叫"微服务"。
把复杂功能组合拆分成若干个独立的服务进行开发,然后有选择性的组合执行各服务。

微服务开发框架有利于并发测试设计,每个服务都是测试的切入口,可以单独执行。换句话说,测试切入口越多,越有利于测试场景的设计,有效的执行并发用例。

并发切入口从以下三个方面查找统计:
①客户端操作:使用工具捕获提交到服务器的请求,分析链接、参数进行测试。
②系统接口:查阅相关的接口文档,开发并模拟其他系统功能进行测试。
③定时任务:定时任务视开发框架,可能需要二次开发,以接口形式进行测试。

并发测出的问题,是一种综合证,往往有多种错误交织在一起的,所以不能乱用"药"。

解决这类问题,通常分以下5个步骤(比把大象放冰箱多了2步):
①通过并发测试找到故障点;
②以故障点的现象分析问题原因;
③确定产生原因后讨论解决方案;
④根据解决方案实施修复;
⑤同并发测试验证修复情况。

事务并发的问题

由于事务处理而导致的并发问题,我们需要先了解什么是事务。
事务的定义:是数据库操作的最小单元,是作为单个逻辑工作单元执行的一些列操作;这些操作作为一个整体一起向系统提交,要么执行,要么不执行;事务是一组不可在分割的操作集合(工作逻辑单元)。

系统内部事务控制:事务的控制好坏往往取决于码农们的开发技术、业务理解能力、专注程度,由于这类错误而导致的bug是非常低级别且严重的(必须出示黄牌 进行警告)

我们举例来说明
某一天,小屌丝接到白富美的邀约,说要去看"xx牌"电影,让小屌丝帮忙订个票。
挖草~小屌丝鸡冻的,赶紧掏出他的iphone14,打开某团,找到某电影,选择位置,并点击"确定选择",然后进入到支付页面,提交订单,选择支付宝去支付,支付成功收到短信。

我们来分享一下故事场景的上半部分:
小屌丝 用手机打开某团,找到白富美想看的电影,选择了座位,提交订单到支付页面。
"选座"与"提交订单"都是某团 内部接口。
如果将这两个作为一个事务,有以下四个特性:
①原子性:要么都整,要么都不整。
②一致性:锁定座位提交订单后必须生成订单号,取消订单则解锁座位。
③隔离性:座位被别人选中,没有网络,操作日志记录失败等。
④持续性:事务提交后永久存在,不会受到任何故障影响。

而作为测试人员,需要考虑的测试点有:
①一个座位被多个账号锁定,生成了订单;
②座位锁定成功,但没有生成订单;
③取消订单,座位未解锁;
④生成重复订单号;
⑤操作日志没有完整的记录所有行为。

我们再来分析订电影票场景的下半部分:
小屌丝在支付页面,使用了支付宝进行支付,支付成功后收到平台短信。
"支付成功"是外部接口。对于外部接口的事务控制,需要考虑两个系统的设计。
对支付接口进行并发接口测试,要考虑的事务问题:
①同一笔订单,不能同时选择多种方式,不能进行多次支付;
②重复通知上传支付结果(支付成功,支付超时),只能处理一次订单。
③日志记录完整记录发送、接受的支付信息,与测试用例内容相匹配。

极限值并发的问题

由极限值而导致的并发问题,那么,什么又是极限值呢?

极限值:标准要求的数值范围的界限,“极限值"也被称为"极限数值”、“临界值”、“界限数值”。

我们举例来说明
那是2022年的第一场雪,白富美要搞一个生日party,为了活跃气氛,白富美想搞一个抽奖环节,于是找到小屌丝,告诉小屌丝的具体安排,然后让小屌丝去撸码。

具体安排为:当天23:00 ~ 23:59还在场的朋友,每人一个礼物(华为P50 必须安排),每个人另外有3次抽奖机会(挖草~ 这是炫父??),同时发朋友圈高调炫耀的,还能在获得1次抽奖机会,已经抽到一等奖 的,不能再获得二等奖和三等奖,中奖概率按照预估概率进行计算,如果已中奖数量达到上限,必须停止抽奖。

小屌丝根据白富美的需求,开发完代码,进行并发测试。

小屌丝设计的并发测试场景:
①当天时间23:00 ~ 23:59,给在场每个人一份礼物;
②在场每个人有3次抽奖机会;
③高调发朋友圈,可以再来一次抽奖机会;
④已获得一等奖的,不能在获得二等奖和三等奖;
⑤中奖概率按预估概率进行设定;
⑥已中奖数量达到奖品数量上限,该奖项停止。

在这个场景中,先分析测试对象分别有:活动时间、抽奖次数、中奖概率、奖品数量上限、中奖规则。

小屌丝设计的并发测试用例覆盖点为:
①测试活动:不在活动时间范围内,也能参与抽奖;
②抽奖次数:未分享朋友圈炫耀的,抽奖次数超过3次;
③抽奖次数:朋友圈高调炫耀的,抽奖次数超过1次;
④中奖概率:设置中奖概率有效的小数位数;
⑤简化数量上限:奖项数量上限控制;
⑥中奖规则:已中一等奖,是否还能中二等奖、三等奖。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有拼尽全力,才能让自己不留遗憾;只有坚持不懈,才能让自己超越平凡;只有迎难而上,才能让自己变得更加强大。相信自己,不断挑战自我,你会发现自己的能力和潜力都是无限的!

只有你不放弃,才有成功的可能;每一次尝试都是成长的机会;坚持梦想,勇往直前;不要让过去限制未来;向困难挑战,超越自我。

只有不停地前行,才能让自己更加强大;只有不停地奋斗,才能实现自己的梦想;只有不停地挑战自己,才能掌握更多的技能。所以,让我们一起勇往直前,迎接更好的明天!

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

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

相关文章

LVS负载均衡--NET模式

目录 企业群集应用概率 群集的含义 问题 根据群集所针对的目标差异,可分为三种类型 负载均衡群集(Load Balance Cluster) 高可用群集(High Availability Cluster) 高性能运算群集(High Performance Computer Cluster) 负载均衡群集架构 负载均衡的结构 LV…

XuperChain搭建+报错+注意事项

安装依赖 golang 这里安装的是15-17版本 wget -c https://dl.google.com/go/go1.15.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local 添加环境变量 这个可以通过添加下面的行到/etc/profile文件(系统范围内安装)或者$HOME/.profile文件(当前用户安装 vim /etc…

论文笔记--GPT-4 Technical Report

论文笔记--GPT-4 Technical Report 1. 报告简介2. 报告概括3 报告重点内容3.1 Predictable Scaling3.2 Capabilities3.3 limitations3.3 Risks & mitigations 4. 报告总结5. 报告传送门6. References 1. 报告简介 标题:GPT-4 Technical Report作者:…

机器学习——单变量线性回归、梯度下降

文章目录 一、机器学习的分类二、线型回归Linear regression(单变量线性回归)三、代价函数3.1 建模误差3.2 平方误差代价函数 Squared error cost function3.3 梯度下降3.4 梯度下降与线性回归相结合 一、机器学习的分类 监督学习:学习数据带…

算法模板(3):搜索(6):做题积累

算法模板(3):搜索(6):做题积累 一、DFS 1. 1113. 红与黑 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下…

【剑指offer专项突破版】链表篇——“C“

文章目录 前言一.删除链表的倒数第 n 个结点题目分析思路分析细节分析步骤代码 二.链表中环的入口节点题目分析思路分析写法①代码写法②代码: 三.两个链表的第一个重合节点题目分析思路分析代码 四.反转链表题目分析思路分析法①代码法②代码法③代码 五.链表中的两数相加题目…

西南交通大学智能监测 培训课程练习4

2023.056.07和09培训 项目实战 目录 一、infracore(基础核心层) 1.1database 1.2config 1.3util 二、业务领域模块 2.1structure模块 2.1.1domain层 2.1.2application层 2.1.3adapter层 2.2sensor模块 2.2.1domian层 2.2.2application层 2.2.…

一文搞懂什么是Docker

一、什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇…

Java ~ Reference ~ Finalizer【总结】

前言 文章 相关系列:《Java ~ Reference【目录】》(持续更新)相关系列:《Java ~ Reference ~ Finalizer【源码】》(学习过程/多有漏误/仅作参考/不再更新)相关系列:《Java ~ Reference ~ Final…

基于Python的接口自动化-Requests模块

目录 引言 一、模块说明 二、Requests模块快速入门 1 发送简单的请求 2 发送带参数的请求 3 定制header头和cookie 4 响应内容 5 发送post请求 6 超时和代理 三、Requests实际应用 引言 在使用Python进行接口自动化测试时,实现接口请求…

2023春期末考试选择题R2-9AVL树插入调整详解

题目: 将 8, 9, 7, 2, 3, 5, 6, 4 顺序插入一棵初始为空的AVL树。下列句子中哪句是错的? A. 4 和 6 是兄弟 B. 5 是 8 的父结点 C. 7 是根结点 D. 3 和 8 是兄弟 解题要点: 需要对AVL树的4种旋转方式熟悉。 AVL旋转过程: 根据…

体验ChatGPT使用

ChatGPT是一种基于GPT(Generative Pre-train Transformer)模型的大型语言模型,由OpenAI公司开发。 交互时,有一定的技巧,可以快速准确的反馈正确答案。 一、开发贪吃蛇游戏 浏览器访问:https://chat.opena…

taro使用小记 —— 持续更新

目录 1、在 taro 中使用 axios2、在 taro 中添加全局组件自动引入和方法自动引入3、在 taro 中使用 pinia 1、在 taro 中使用 axios taro 3.6 版本已经支持了网络请求库。 需安装插件 tarojs/plugin-http 使用和注意事项说明: https://www.npmjs.com/package/taroj…

【笔试强训选择题】Day22.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!! 文章目录 前言 一、…

mac电脑m1搭建java开发环境参考手册

1 背景介绍 开发人员经常会换电脑,或者换新电脑,意味着重新搭建开发环境,很麻烦。但新电脑到手里面了,不换又不好,此篇专门用来记录mac电脑m1搭建java开发环境的步骤。希望对读者有所帮助,一条龙服务。 后…

初探 transformer

大部分QA的问题都可以使用seq2seq来实现。或者说大多数的NLP问题都可以使用seq2seq模型来解决。 但是呢最好的办法还是对具体的问题作出特定的模型训练。 概述 Transformer就是一种seq2seq模型。 我们先看一下seq2seq这个模型的大体框架(其实就是一个编码器和一个解码器)&a…

OpenGL 光照贴图

1.简介 现实世界中的物体通常并不只包含有一种材质,而是由多种材质所组成。想想一辆汽车:它的外壳非常有光泽,车窗会部分反射周围的环境,轮胎不会那么有光泽,所以它没有镜面高光,轮毂非常闪亮。 2.漫反射…

Baumer工业相机堡盟工业相机如何使用BGAPISDK对两个万兆网相机进行触发同步(C#)

Baumer工业相机堡盟工业相机如何使用BGAPISDK对两个万兆网相机进行触发同步(C#) Baumer工业相机Baumer工业相机BGAPISDK和触发同步的技术背景Baumer工业相机使用BGAPISDK进行双相机主从相机触发1.引用合适的类文件2.使用BGAPISDK设置主相机硬件触发从相机…

ReentrantLock 底层原理

目录 一、ReentrantLock入门 二、AQS原理 1、AQS介绍 2、自定义锁 三、ReentrantLock实现原理 1、非公平锁的实现 加锁流程 释放锁流程 2、可重入原理 3、可打断原理 4、公平锁原理 5、条件变量原理 await流程 signal流程 一、ReentrantLock入门 相对于synchron…