【银行测试】金融银行-理财项目面试/分析总结(二)
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
银行理财相关的项目流程
项目名称:xxx农商银行手机银行App
项目介绍:此项目是专为手机银行客户打造的移动金融服务平台,为客户提供实时、高效的账户和资金管理。主要包括理财服务、基金服务、贷款服务、账户管理、转账汇款、储蓄服务、生活缴费、利率查询和网点查询等金融服务。
在安全方面,采用数据全程加密、密码超限保护和登录超时控制等机制,并通过用户信息绑定、短信验证等多种安全措施,为客户的资金交易保驾护航。
项目职责:
1)根据模块功能要求进行需求分析,参与产品组织的需求评审会议;
2)根据需求文档,选择测试方法通过XMind提取测试点并编写测试用例;
3)使用Postman进行接口测试,接口测试完成之后进行系统测试,待系统测试稳定之后,选择部分接口在tests标签中通过添加断言实现接口自动化;
4)通过adb命令对APP的进行安装、卸载测试以及用命令logocate查看日志;使用Monkey工具关注APP的稳定性;
5)使用GT工具监测app的Cpu占用、内存消耗、耗电量等客户端性能指标;
6)使用抓包工具Fiddler,进行弱网测试并抓包判断前后端的问题;
7)提交bug到禅道,对bug进行跟踪、管理直至bug解决并关闭;
8)整理测试记录,编写测试报告,通过PPT做测试总结;
9)产品上线后对用户建议、版本迭代更新等数据持续关注。
模块介绍
在这个App里面,快速贷款以及理财模块都是属于比较核心的功能,讲一下所负责的理财模块。
打开理财界面,理财产品的展示栏位和顺序符合需求,选择需要测试的理财产品,产品列表中展示信息与需求一致,也可以通过搜索功能找到该产品。点击该理财产品,进入详细界面。界面展示与需求一致。
点击申购:
1)系统判断是否有理财账户,如果有一类卡未开通理财功能,可通过跳转界面开通。
2)如果没有一类卡,我行允许根据跳转界面开通二类户。
有理财账户后,会判断客户的风险等级。如从来没有做过风险评估等级或评估已过有效期的,则需要重新评估。
如果没有做过风险评估的客户,我们是有跳出来一个提示让客户先去做一个风险评估,评估有10道题,分别涉及(总资产、投资比例、投资方向,投资经验、投资态度、投资目的等)。
评估出来会有一个对应的等级,等级分为:R1到R5, R1代表承受风险能力比较低,R5代表风险承受能力比较高。
如果做过评估,评估在有效时间内,我们有效时间是1年期,在有效时间内是可以跳转到产品详情页面的,然后产品详情页面需要判断客户风险评估等级与产品风险等级的匹配性。
例如,客户风险等级为R1,则只能购买风险等级为R1的产品;客户风险等级为R5,则可以购买风险等级为R1到R5的所有产品。在允许购买的界面,可以看到具体的申购和赎回规则。
申购界面是否与需求一致,展示内容包含产品的名称和编号,卡号后4位和余额反显正确,申购金额可以手动填写。
需要测试银行卡余额的边界值打个比方我的卡账户余额就1万块钱,那我会测一下9999.99元, 1万, 1万点01元都去测下,不管是自营产品还是代销产品,因为每个产品规则不一样,我们会根据需求来测。
有的有起购金额设定的是100元、 1000 元、 1万元, 那么我们都需要分别利用边界值去测一下,像第二次购买叫追加,追加也是一样的比如追加10元, 100元都去测,包括日上线额、总上限金额都是用边界值去测的。
如果金额填写没有问题,接下来需要勾选知情同意框,知情同意文档一般包含风险提示、产品概要、招募说明书、基金合同、权益须知。
这个地方我们是有一个强制阅读勾选的,需要客户点开详情下滑至底部,才可以勾选知情同意框,如果不勾选是没办法点击这个购买这个操作的。
购买成功的话我们也会有相应的提示,然后我们会去查看一下,打个比方我这个产品交易日15:00之前,当日确认份额,交易日15:00之后,顺延一个交易日。
此处,我们测试组会特别关注周一和周五两种情况,我们也分工作日、非工作日,非工作日按照第二个工作日来确认份额的。
然后已申购的产品,点击该理财产品,有赎回按钮。点击赎回,赎回金额需校验持有该产品的份额,根据需求,交易日15:00之前,赎回当日到账,交易日15:00之后,顺延一个交易日。
此处,我们测试组会也会特别关注周一和周五两种情况。对赎回的金额,进行利息验证。
利息的验证方法,针对不同的理财产品:
日收益=本金*年利率/360;
收益=金额/10000*万份收益;赎回总金额=持有的份额*赎回时的单位净值。
整个大致流程大概是这样的,谢谢!
功能介绍
在理财模块中,最重要的是对申购和赎回进行验证。
在此列举出相应的测试点、申购及时确认测试点:
1)界面提示申购成功,银行卡收支明细(购买理财产品),卡余额(活期可用+投资理财)
2)理财基金订单明细,个人持仓增加,资管系统查询到剩余额度减少
3)数据库,核心的余额表、明细表,资管系统的持仓明细表数据比对
4)与其他渠道(微信银行、网银)核对,数据一致申购未能及时确认:
界面提示申购成功,银行卡收支明细(冻结,到交易时间解除冻结,购买理财产品),卡余额(活期可用+冻结);
理财基金订单明细,个人持仓增加,资管系统查询到剩余额度减少;
数据库,核心的余额表(可用余额状态码值00,冻结状态码值01)、明细表中有冻结的明细,资管系统的持仓明细表未体现;
跑批之后,银行卡收支明细(解除冻结,购买理财产品),卡余额(活期可用+投资理财);
数据库,核心的余额表、明细表,资管系统的持仓明细表数据比对;
5)与其他渠道(微信银行、网银)核对,数据一致赎回测试点:
界面提示赎回申请提交成功,(T+N,过N个日终)等赎回到账,查银行卡收支明细;
活期可用增加(增加金额=赎回到账的本金+利息),卡余额增加;
理财基金订单明细,个人持仓减少,资管系统查询到剩余额度;
数据库,核心的余额表、明细表,资管系统的持仓明细表;
与其他渠道(微信银行、网银)核对,数据一致;
核对利息的计算第三部分:接口测试案例;
申购模块:
1)我会先找开发要API文档,在jmeter里面先创建线程组,在添加取样器里面创建http请求,根据接口文档把url地址填进去
2)申购的接口入参 token, 产品id,卡号id,金额,推荐人选填,知情同意框协议勾选true/false,请求方式是post
3)然后查看结果树,那我就看到出参 就是状态码code:00 、code:01 状态描述message:申购成功/您的可用余额不足,不能进行申购 date
4)先把正例跑一遍,反例无非就是token值为空第四部分:典型Bug案例
购买的理财产品,按照正常日期进行了赎回操作,也选择了赎回资金需要到账的银行卡。
但是已经超过了到账日期,银行卡还没有收到赎回的资金。
后面排查原因是因为客户选择赎回资金的到账储蓄卡是属于睡眠户,所以无法到账,这个是客户的非常规操作,测试的时候忽略了这一点。
只要储蓄账户状态不正常(如状态为睡眠、久悬、转营业外等),都不能进行资金交易往来。如果客户一定要使用这个储蓄卡,需持本人有效身份证件及相关银行卡前往就近任一建行网点核实处理,更改账户状态才能正常使用。
后期需求变更,客户不能手动去选择赎回路径(指定赎回的储蓄卡),所有的理财产品赎回的时候资金都应该按照原路径返回。
| 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)
不要惧怕失败,因为失败是成功的跳板。奋斗不止于结果,而在于过程中的成长和坚持。相信自己的潜力,追求梦想,你将创造属于自己的辉煌传奇。
每一次的努力都是蜕变的契机,不论困难有多大,只要坚守初心,持之以恒,你将越过山巅,触摸到属于自己的星辰大海。相信自己,勇往直前,终将抵达成功的彼岸。
生命太短暂,不要浪费时间在无意义的事情上。坚信自己的能力,拥抱挑战,才能在奋斗中成为更好的自己,创造属于自己的精彩人生。
相关文章:
【银行测试】金融银行-理财项目面试/分析总结(二)
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 银行理财相关的项…...
张江智荟毁约offer
毕业8年后,找工作被国企歧视学历!已经收到了offer,在入职前一周被通知要撤回offer,拒绝录用,理由居然是他们只要本科211以上的人 这是我今天(2023-12-26)亲身经历的事,听说过面试前…...
ubuntu 系统终端颜色设置
1 开启终端颜色 # 第一步: 在 ~/.bashrc 中设置 force_color_promptyes# 第二步: 执行 source ~/.bashrc2 对于精减的 .bashrc 在 ~/.bashrc 中添加以下内容,再执行 source ~/.bashrc : # uncomment for a colored prompt, if…...
【Vue】class与style绑定
✨ 专栏介绍 在当今Web开发领域中,构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架,正是为了满足这些需求而诞生。它采用了MVVM架构模式,并通过数据驱动和组件化的方式,使…...
大厂前端面试题总结(百度、字节跳动、腾讯、小米.....),附上热乎面试经验!
先简单介绍下自己,我“平平无奇小天才”一枚,毕业于南方普通985普通学生,有幸去百度、字节面试,感觉大公司就是不一样,印象最深的是字节,所以有必要总结一下面试经验,以及面试中遇到的一些问题&…...
EXPLORING DIFFUSION MODELS FOR UNSUPERVISED VIDEO ANOMALY DETECTION 论文阅读
EXPLORING DIFFUSION MODELS FOR UNSUPERVISED VIDEO ANOMALY DETECTION 论文阅读 ABSTRACT1. INTRODUCTION2. RELATEDWORK3. METHOD4. EXPERIMENTAL ANALYSIS AND RESULTS4.1. Comparisons with State-Of-The-Art (SOTA)4.2. Diffusion Model Analysis4.3. Qualitative Result…...
当 ML 遇到 DevOps:如何理解 MLOps
近年来,人工智能 (AI) 和机器学习 (ML) 已经席卷全球,几乎成为任何行业的重要组成部分,从零售和娱乐到医疗保健和银行业。这些技术能够通过分析大量数据实现运营自动化、降低成本和促进决策&…...
vue+element+springboot实现多张图片上传
1.需求说明 2.实现思路 3.el-upload组件主要属性说明 4.前端传递MultipartFile数组与服务端接收说明 5.完整代码 1.需求说明 动态模块新增添加动态功能,支持多张图片上传.实现过程中对el-upload组件不是很熟悉,踩了很多坑,当然也参考过别的文章,发现处理很…...
react使用useState更新数组失败
失败案例: const [addBox, setAddBox] useState([])const itemAdd (item) >{addBox.push(item);setAddBox(addBox)console.log(addBox,点击添加按钮)} 原因:react的useState hook监听的是浅监听 在 React 中,使用 useState Hook 来更新…...
《LIO-SAM阅读笔记》3.后端优化
前言: LIO-SAM后端优化部分写在了mapOptimization.cpp文件中,本部分主要进行了激光帧的scan-to-map匹配,回环检测以及关键帧的因子图优化。本部分主要有两个环节同步进行,一个单独开辟了回环检测线程,另外一个是lidar…...
mac下jd-gui提示没有找到合适的jdk版本
mac下jd-gui提示jdk有问题 背景解决看一下是不是真有问题了方法一:修改启动脚本方法二:设置launchd环境变量 扩展动态切jdk脚本(.bash_profile) 背景 配置了动态jdk后,再次使用JD-GUI提示没有找到合适的jdk版本。 解决 看一下是不是真有问题…...
FlinkSQL窗口实例分析
Windowing TVFs Windowing table-valued functions (Windowing TVFs),即窗口表值函数 注意:窗口函数不可以单独使用,需要聚合函数,按照 window_start、window_end 分区,即存在:group by window_start,wind…...
18-网络安全框架及模型-信息系统安全保障模型
信息系统安全保障模型 1 基本概念 信息系统安全保障是针对信息系统在运行环境中所面临的各种风险,制定信息系统安全保障策略,设计并实现信息系统安全保障架构或模型,采取工程、技术、管理等安全保障要素,将风险减少至预定可接受的…...
Android 提取(备份)apk(安装包)
Android 提取(备份)apk(安装包) 一、通过安卓代码的方式 主要分三步: 根据应用找到包名根据包名获得apk提取apk 提取apk代码 private static final String BACKUP_PATH "/sdcard/backup1/"; private static final String APK ".apk";pri…...
gRPC-Go基础(4)metadata和超时设置
文章目录 0. 简介1. metadata1.1 metadata结构1.2 metadata创建1.3 客户端处理metadata1.4 服务端处理metadata1.5 metadata的传输 2. 超时设置2.1 客户端输出超时信息2.2 服务端端接收超时信息 3. 小结 0. 简介 Go在多个go routine之间传递数据使用的是Go SDK提供的context包…...
语言模型:从n-gram到神经网络的演进
目录 1 前言2 语言模型的两个任务2.1 自然语言理解2.2 自然语言生成 3 n-gram模型4 神经网络语言模型5 结语 1 前言 语言模型是自然语言处理领域中的关键技术之一,它致力于理解和生成人类语言。从最初的n-gram模型到如今基于神经网络的深度学习模型,语言…...
docker compose 部署 grafana + loki + vector 监控kafka消息
Centos7 随笔记录记录 docker compose 统一管理 granfana loki vector 监控kafka 信息。 当然如果仅仅是想通过 Grafana 监控kafka,推荐使用 Grafana Prometheus 通过JMX监控kafka 目录 1. 目录结构 2. 前提已安装Docker-Compose 3. docker-compose 自定义服…...
kubeadm创建k8s集群
kubeadm来快速的搭建一个k8s集群: 二进制搭建适合大集群,50台以上。 kubeadm更适合中下企业的业务集群。 部署框架 master192.168.10.10dockerkubelet kubeadm kubectl flannelnode1192.168.10.20dockerkubelet kubeadm kubectl flannelnode2192.168.1…...
鸿蒙开发之android对比开发《基础知识》
基于华为鸿蒙未来可能不再兼容android应用,推出鸿蒙开发系列文档,帮助android开发人员快速上手鸿蒙应用开发。 1. 鸿蒙使用什么基础语言开发? ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风…...
2702 高级打字机
因为Undo操作只能撤销Type操作,所以Undo x 实际上就是删除文章末尾x个字母。用一个栈即可解决(每个字母最多进出一次)。 这种情况下只需要设计一个合理的数据结构依次执行操作即可。 版本树:Undo x撤销最近的x次修改操作…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
Tauri2学习笔记
教程地址:https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引:https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多,我按照Tauri1的教程来学习&…...
性能优化中,多面体模型基本原理
1)多面体编译技术是一种基于多面体模型的程序分析和优化技术,它将程序 中的语句实例、访问关系、依赖关系和调度等信息映射到多维空间中的几何对 象,通过对这些几何对象进行几何操作和线性代数计算来进行程序的分析和优 化。 其中࿰…...
二维数组 行列混淆区分 js
二维数组定义 行 row:是“横着的一整行” 列 column:是“竖着的一整列” 在 JavaScript 里访问二维数组 grid[i][j] 表示 第i行第j列的元素 let grid [[1, 2, 3], // 第0行[4, 5, 6], // 第1行[7, 8, 9] // 第2行 ];// grid[i][j] 表示 第i行第j列的…...
篇章一 论坛系统——前置知识
目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...
