13年测试老鸟,带你详探服务端的接口测试,测试内卷之路...

目录:导读

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


前言

服务器的接口测试通常从功能开始,如请求参数和响应参数的验证,业务逻辑或业务规则的验证,数据库操作的验证。

功能正常后,将根据需要进行安全相关的检查、性能测试和一系列扩展测试,如与版本历史的兼容性测试、接口超时验证和设计合理性验证等。用例设计也是从这些方面进行分析和设计的。

详情如下:

用于输入
输入主要指界面的参数。在我们通常的测试中,我们会首先考虑正常参数和异常参数,包括异常参数和数据。在用例设计中,等价类划分和边界值分析被广泛使用。

正常参与:
正常参数通俗易懂,即根据界面设计文件的参数标准,输入正常参数,响应按照界面设计文件约定的条件正常返回。

异常参数:
参数异常包括:空参数、多参数或少参数、错误参数。

异常数据:
数据异常:数据类型错误、非空参数为空、长度不符合设计、不在字典范围内的数据、非法成员、特殊字符或敏感字符、具有相关性的参数数据异常等。

对于处理逻辑
在接口测试之前,通用R&D将提供接口设计文件或与业务相关的设计图纸和流程图。对于业务流程的处理逻辑,我们可以从参数、事件的操作对象、业务的状态进行改变。

限制条件分析:
数值限制:字典、等级、行业相关限制、金额限制、分数限制等。
状态限制:有效|无效、在线|离线、黑化|洗涤等。
关系的限制:存在或不存在、绑定或解除绑定等。
权限限制:管理员、普通用户等。

对象分析:
对象分析主要是操作合法和非法的对象。比如银行卡用户给卡充值,可能有:用户A给非用户A的卡充值;用户用自己的卡充值,卡已经过期;a用户使用自己的卡充值,卡被列入黑名单或挂失。

状态转换分析:
比如支付业务,第一次支付成功,票据取消后会进行退款。如果第二次支付不成功,支付会失败,状态之间的切换是否正常,状态如何显示,是否可控,是否存在异常状态,空白状态业务如何处理。

时间序列分析:
在一些复杂的活动中,一个活动是由一系列动作按照指定的顺序执行的,这就形成了一个动作流。只有按照这个顺序执行动作,我们才能等待预期的结果。其他分支动作程序在执行过程中会发生什么?

比如斑马停车风险管控业务,如果车辆进站后直接掉头不进入高速业务,该如何处理?

针对输出:
在考虑异常时,我们通常会想到正常情况和无效情况,但它们可能不会覆盖所有的错误代码。接口定义返回的错误代码可以帮助我们补充这部分用例,比如网络异常、规则无效、参数无效、业务id无效、任务无效、服务器异常等。通过补充errorcode的值,可以设计更多的用例。

这种基于输出的设计案例可以发现前后端是否正常输出结果,提示是否友好,敏感信息是否出现等等。

数据库操作

数据库操作是否频繁,在写数据库的过程中是否会占用大量的CPU,写完数据库后是否会释放进程。

业务数据入库是否正常,是否有重复数据入库,是否有乱码;日志数据入库正常吗?

数据更新是否正常,尤其是时间字段,时间是否为24小时格式。

数据删除和备份正常吗?

安全性
敏感信息(如银行账号、密码、转账金额)是否加密。

性能相关
什么情况下接口会并发,什么是并发场景,什么情况下并发会导致问题?
最大并发、响应时间、吞吐量和资源消耗。

与历史版本的兼容性分析
废弃的协议或接口,代码不做注释,在某些情况下,可能会触发版本历史中废弃的协议或接口,导致用户使用或调用功能后出现意外问题和损失。

在同一个系统中,不同服务之间的接口相互调用时,新接口是否受到历史接口的影响,尤其是新旧接口是否处理某一功能,是否存在业务不兼容的情况。

这就需要测试人员对一个系统进行长时间的测试,所以他们可能会想到这个场景,清楚地知道什么时候哪个版本被重构了,放弃了那些接口,增加了那些接口,哪些场景会触发历史接口的某个规则。

接口设计合理
接口字段是否冗余,接口是否返回调用者期望的信息,接口定义是否满足所有调用者的需求,接口是否方便调用,接口是否可扩展,接口参数是否方便使用,接口的业务规则是否正确,整个服务的使用会对接口产生什么影响?

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一天都是一个全新的挑战,不管前路如何艰难,都要坚定自己的信念,勇往直前。只有不断地学习和进步,才能实现人生的价值和梦想。不要放弃,相信自己,你一定能够创造属于自己的精彩人生!

不怕路途遥远,只要坚定前行;不畏风雨凛冽,只要心中有阳光。在奋斗的道路上,每一分努力都将化作成功的力量。把握当下,去闯荡属于自己的天地!

每天都是一个全新的开始,不要局限在自己的过去和现状中。用你的坚持和努力,创造一个更加美好的未来。即便前路曲折,也要勇往直前。只要保持积极的心态,成功就在不远处。

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

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

相关文章

数据库第三章(SQL)

目录 1.SQL语言 索引 1.SQL语言 sql语言是个非过程性语言 sql的特点 1.综合统一,把增删查改都统一了起来 2.高度非过程化,不关心过程 3.面向集合的操作方式 sql基本语法 drop是删除表 delete是删除表的某个元组 安全方面:grant授权 revo…

EXCEL函数笔记1(数学函数、文本函数、日期函数)

数学函数 取整:INT(number) 取余:MOD(number,除数) 四舍五入:ROUND(number,保留几位小数) 取绝对值:ABS(number) 根号处理:SQRT(number) 0到1随机数:RAND(&am…

【机器学习】十大算法之一 “朴素贝叶斯”

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

【LeetCode】每日一题 -- 1171. 从链表中删去总和值为零的连续节点 -- Java Version

题目链接:https://leetcode.cn/problems/remove-zero-sum-consecutive-nodes-from-linked-list/ 1. 题解(1171. 从链表中删去总和值为零的连续节点) 2021年字节二面真题 1.1 暴力解法:穷举 时间复杂度 O(n2),空间复杂…

【论文】attention is all you need

重点在第三节 attention is all you need摘要1. 绪论2. 背景3. 模型架构3.1 编码器和解码器堆叠 3.2 注意力3.2.1 缩放点积注意力(Scaled Dot-Product Attention)3.2.2 多头注意力机制3.2.3 模型中注意力的应用 3.3 职位感知前馈网络(Positio…

前端中间件Midway的使用

一、 关于midway1. 解决什么痛点2. 期望达到什么效果 二、创建应用并使用1. 创建midway应用2. 认识Midway2.1 目录结构2.2 Controller2.3 路由2.4 获取请求参数2.5 Web中间件2.6 组件使用2.7 服务(service) 三、写到最后 一、 关于midway Midway 是阿里巴巴 - 淘宝前端架构团队…

基于深度学习的高精度安全背心检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度安全背心检测识别系统可用于日常生活中或野外来检测与定位安全背心目标,利用深度学习算法可实现图片、视频、摄像头等方式的安全背心目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5…

微服务: 01-rabbitmq的应用场景及安装(docker)

目录 1. rabbitmq前言简介: 1.1 RabbitMQ的几个重要作用: -> 1.1.1 解耦: -> 1.1.2 异步通信: -> 1.1.3 流量削峰: -> 1.1.4 消息传递的可靠性和持久性: 2. rabbitmq的安装(docker版) -> 2.1 …

SpringMVC 学习整理

文章目录 一、SpringMVC 简介1.1 什么是MVC1.2 什么是Spring MVC1.3 Spring MVC的特点 二、SpringMVC 快速入门三、RequestMapping注解说明四、SpringMVC获取请求参数4.1 通过ServletAPI获取请求参数4.2 通过控制器方法的形参获取请求参数4.3 通过RequestParam接收请求参数4.4 …

Rust语言从入门到入坑——(2)Rust在windows上搭建开发环境

文章目录 0 引入1、搭建 Visual Studio Code 开发环境1.1、安装 Rust 编译工具1.2 、VS Code安装 2、官网在线3、总结4、引用 0 引入 开始搭建一个适合在windows上运行的Rust环境。 Rust支持的程序语言很多:可详见官网介绍 1、搭建 Visual Studio Code 开发环境 …

[架构之路-211]- 需求- 软架构前的需求理解:ADMEMS标准化、有序化、结构化、层次化需求矩阵 =》需求框架

目录 前言: 一、什么是ADMES: 首先,需求是分层次的: 其次,需求是有结构的,有维度的 再次,不同层次需求、不同维度需求之间可以相互转化(难点、经验积累) 最终,标准…

【雕爷学编程】Arduino动手做(114)---US-015高分辨超声波模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

Floyd 判圈算法(Floyd Cycle Detection Algorithm)

Floyd 判圈算法(Floyd Cycle Detection Algorithm) 前言 Floyd判圈算法属于对指针操作的算法,它一般需要且仅需要两个指针,通过设定不同的指针移动速度,来判定链表或有限状态机中是否存在环。人为规定移动较快的指针称为快速指针(fast poin…

给初级测试工程师的一些避坑建议

我遇到的大多数开发人员都不怎么热衷于测试。有些会去做测试,但大多数都不测试,不愿意测试,或者勉而为之。我喜欢测试,并且比起编写新的代码,愉快地花更多的时间在测试中。我认为,正是因为专注于测试&#…

【Turfjs的java版本JTS】前面讲了Turfjs可以实现几何计算,空间计算的功能,如果后端要做这项功能也有类似的类库,JTS

JTS Java Topology Suite 几何计算: 1. 前端js就用这个 Turfjs的类库。参考网站: 计算两线段相交点 | Turf.js中文网 2. 后端java语言就可以用 JTS这个类库,参考网站: JTS参考网站: 1. https://github.com/locatio…

Windows11 安装 CUDA/cuDNN+Pytorch

一、准备工作: 查看torch版本:进入python交互环境: >>>import torch >>>torch.__version__ 查看cuda版本:CMD窗口 nvcc --version 如果版本不一致,需要卸载再重装。 二、安装 Windows 安装 CU…

unity制作愤怒的小鸟

文章目录 一、 介绍SpringJoint2D 、line renderer制作发射绳基类bird脚本的基础功能给bird添加飞行拖尾效果pig类游戏胜利的小星星烟花界面摄像机跟随移动游戏失败的界面多种小鸟的制作:黄鸟、绿鸟、黑鸟地图选择关卡选择数据保存制作多个关卡场景异步加载游戏全局…

go 调试利器之pprof指标分析

文章目录 概要一、指标类型1.1、堆栈指标1.2、CPU指标分析1.3、http-pprof 二、go tool pprof2.1、可视化2.2、CPU火焰图 概要 Go语言原生支持对于程序运行时重要指标或特征进行分析。pprof是其中一种重要的工具,其不仅可以分析程序运行时的错误(内存泄…

绕过激活锁 ,拯救一台旧手机iphone

一台旧的iphone忘了apple id账号和密码了,导致锁住了 某宝上解锁要花50, 不是舍不得花钱,作为一个搞技术的,实在觉得花钱有点丢人 经过一番探索 最终确定了有用的流程 并贴出来 亲测可用 最终实现了趟再床上就可以打卡 1、 刷机 …

【软件测试】性能测试服务端—排查指标问题(详细)

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