手机充值的功能测试框架 - 测试要点
手机充值有微信营销活动的、有 APP 页面应用等,以下是我以前公司的手机充值话费或流量应用的测试要点,分享给大家参考下。
一、手机号码输入框检查
1、手机号码框要控制成只能输入11位数字的文本框。
2、输入以非1开头的手机号,给出提示:请输入正确的手机号码。需要分别验证以非1开头的数字(0\2\3)或字母等其他字符开头的情况。
3、输入带有英文字母的手机号,系统自动忽略非数字字符(即控制不能输入英文字母)。
4、输入带有特殊符号)/&(的手机号,系统自动忽略非数字字符(即控制不能输入特殊符号)。
5、输入不存在的手机号12345678901,11111111111,给出提示:暂不支持该手机号码。
6、输入不存在的手机号12345678901,退格后,提示语:暂不支持该手机号码。应不再显示。
7、手机号码输入框字体大小应固定为22px。打开话费充值链接,光标定位到输入框,空白地方右键选择“审查元素”,选择某手机机型,查看代码元素“font-size: 22px;”。
8、手机号码输入框所在行,点击任意地方,均应获取到焦点在输入框,保证用户能够正常使用。注:区分IOS和安卓的手机来测试
二、充值界面显示信息的检查
1、输入正确手机号,显示对应的地区归属地和运营信息,格式:运营商标识 归属地 运营商名称。
2、先输入正确手机号,有归属地和价格显示;接着输入带有英文字母的手机号,给出提示的同时上一次的“归属地和价格”应不再显示。
3、不同充值面额的支付金额是否显示正确。比如:10元,50元,100元
4、若有手机号面额支付金额的确认界面,则选择不同的面额来检查支付金额是否正确。
5、温馨提示的文字检查,查看是否有错别字,或是语句不通的语句。
6、检查客服热线电话是否正确。不同充值面额的供应商不同,客服热线电话就会不同。客服热线电话的值来源于接入者列表对应供应商的客服电话。注:区分IOS和安卓的手机来测试
三、按钮的检查
1、输入正确的手机号,点击【立即充值】按钮,能够正常进入支付界面,支付成功,充值成功。
2、连续多次【立即充值】,是否会生成多笔充值流水,应只有一笔充值流水。
3、连续多次【支付】,是否会给出提示,并且有一笔流水支付状态为支付成功。
4、【提交】按钮:确认展示的手机号码和面额正确后,点击提交,进入到下一步页面,支付界面,支付成功,充值成功,提示“恭喜,话费充值成功”。
5、若存在【返回】按钮:点击返回,返回上一步页面,要重新输入充值的手机号码。
6、当跳转到充值成功界面时,存在【返回充值首页】按钮:点击该按钮,可以返回首页,显示的页面正确。
7、当充值失败时,点击【返回重新充值】按钮是否会跳转到默认充值界面,应跳转到默认充值界面。
8、手机号码框存在【清除】按钮:手机号码非空有效,手机号码清空后恢复进入默认充值界面。
9、【立即充值】按钮:默认时不可用,输入有效手机号码才可用,输入有效手机后退清除,立即充值按钮呈不可用。注:区分IOS和安卓的手机来测试
四、充值的不同场景
1、正常充值流程,充值成功,订单状态为充值成功,支付状态为支付成功
2、在支付界面,取消支付,订单状态为待充值,支付状态为待支付
3、在支付界面,支付成功后,直接关闭界面未进行充值处理,订单状态为待充值,支付状态为支付成功,过15分钟左右,充值状态变为充值成功
4、支付成功,供应商账户余额不足,不能进行充值处理,订单状态为充值失败,支付状态为支付成功
5、银行账户余额不足,订单状态为待充值,支付状态为支付失败,过15分钟左右,充值状态更新为充值失败,处理状态更新为放弃处理
6、输入支付验证码,连续点击【付款】按钮,订单状态为待充值,支付状态为支付成功,过15分钟左右,充值状态变为充值成功
7、不同充值面额,不同支付金额(0.01,0.1,1,100,49.96)来测试
8、不同运营商的手机号码(移动、联通、电信)来充值
9、 篡改充值面额和支付金额后,在支付界面取的支付金额是否为405平台配置的销售价格?支付金额正确应该是显示平台配置的销售价格。操作步骤:先打开充值链接获取session,关掉页面,点击篡改充值面额和支付金额的链接,进入支付界面,检查支付金额是否为平台配置的销售价格。
10、检查在充值前是否有判断实际支付金额与平台配置销售价格一致?若不一致,则充值失败,失败原因:支付价格异常,错误的支付价格,已支付价格为:XXX,405平台订单号为YYY。操作步骤:做一笔待充值待支付的记录,修改数据库支付流水表的payment_amt支付金额改小0.01元payment_status支付状态改为支付成功,等补充值的定时任务后,查看手机充值话费记录表的充值状态为充值失败,失败原因是支付价格异常,错误的支付价格,已支付价格为:1.00,平台订单号为:MPF2016010716313396。
11、首页分享和非首页分享,首页可以正常分享;非首页分享后,朋友点击进去,会提示:非法请求。注:以上场景都要查数据库存入的数据是否正确(特别是要注意金额和状态)?查看日志参数传送是否正确?关联模块“充值流水信息查询”和“支付流水信息查询”对应的状态显示是否正确?注:区分IOS和安卓的手机来测试
五、充值面额和流量包的显示区分话费和流量
1、输入有效手机才可用,且要话费经销商报价里的充值面额与sys_params表对应经销商配置了默认话费充值面额一致,才显示该充值面额。
2、输入无效手机,给出提示:暂不支持该手机号码
3、输入有效手机后退清除,面额或流量呈不可用。
4、要清缓存,再重新加载面额或流量,来走正常的充值流程注:区分IOS和安卓的手机来测试
六、异常类的测试
1、当接入者被锁定,充值界面提示:接入商账号异常!
2、当接入者默认值有300元面额,在经销商报价模块没有配置该面额的销售价格,在充值界面里选中该面额,充值界面应提示:该商品暂时缺货。
七、其他要注意的事项
1、要留意每笔交易更新到数据库表的相关时间是否正确
2、定时任务存在统计时间段的,要留意统计时间段的边界值
3、定时任务存在释放库存数的,要留意是否会重复释放?释放的累计数是否大于总数?(活动:话费抢购)
4、存在配置文件设置固定值的,要设置不同的数值来验证。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
相关文章:

手机充值的功能测试框架 - 测试要点
手机充值有微信营销活动的、有 APP 页面应用等,以下是我以前公司的手机充值话费或流量应用的测试要点,分享给大家参考下。 一、手机号码输入框检查 1、手机号码框要控制成只能输入11位数字的文本框。 2、输入以非1开头的手机号,给出提示&a…...

U盘启动盘 制作Linux Ubuntu CentOS系统启动盘 系统安装
U盘启动盘 制作Linux Ubuntu CentOS系统启动盘 系统安装 准备条件 准备一个U盘,建议容量至少为8GB,以便存放系统镜像文件 一台已经安装好操作系统的计算机,用于制作U盘启动盘 Ubuntu和CentOS的Linux ISO镜像文件。可以从官方网站或相关资源…...

Nodejs 第五十四章(net)
net模块是Node.js的核心模块之一,它提供了用于创建基于网络的应用程序的API。net模块主要用于创建TCP服务器和TCP客户端,以及处理网络通信。 TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,用于…...
渗透测试修复笔记 - 04 nacos 可能会导致未经授权的用户获取到系统中的敏感信息的漏洞
问题:该漏洞可能会导致未经授权的用户获取到系统中的敏感信息。 http://ip地址:8848/nacos/v1/auth/users?pageNo1&pageSize9 最直接的解决办法就是升级nacos版本 如果不升级的话还是沿用旧版本就修改相关配置 当前版本为2.0.4 1.nacos的docker-compose文件…...
初级代码游戏的专栏介绍与文章目录
我的github: codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 一、大型专题 1.1 C嵌入式HTTP服务器 C嵌入式HTTP服务器_初级代码游戏的博…...

【Redis系列】深入了解 Redis:一种高性能的内存数据库
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

C语言例:表达式(a=2,3),a+1的值
题目:设int a; 则表达式(a2,3),a1的值 #include<stdio.h> int main(void) {int a0;int b;int c;b (a2,4);c (a2,3),a1;printf("a1%d\n",a1); //a1 3;printf("a2,4的值为:%d\n",b); //a2,4的值为&…...

基于java的公寓报修管理系统设计与实现(程序+文档+数据库)
** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…...
Lua 函数前的冒号和点号,你知道他们的区别吗?
1. 函数前的冒号和点号 点号(.)和冒号(:)的区别主要在于是否自动处理self参数。 在Lua中,函数定义时前面有点号(.)和冒号(:)的区别主要体现在函数如何处理其第一个参数…...

4、设计模式之建造者模式(Builder)
一、什么是建造者模式 建造者模式是一种创建型设计模式,也叫生成器模式。 定义:封装一个复杂对象构造过程,并允许按步骤构造。 解释:就是将复杂对象的创建过程拆分成多个简单对象的创建过程,并将这些简单对象组合起来…...

网工内推 | 上市公司网工,IE认证优先,最高18K*13薪,包吃住
01 深圳市宝腾互联科技有限公司 招聘岗位:网络工程师 职责描述: 1、是整个数据中心的网络技术及安全问题的负责人,确保数据中心业务的正常进行; 2、负责规划、设计、搭建、维护数据中心的网络环境,确保IDC /云平台&a…...
SQL Server 技术100问?
这些问题旨在帮助SQL Server的管理员和开发人员深入理解数据库管理系统的核心概念和技术,从而更好地进行数据库设计、性能优化、安全管理等工作。 SQL Server的最新版本有哪些新特性?如何在SQL Server中创建一个新的数据库?如何在SQL Server…...

鸿蒙不再适合JS语言开发
ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,提供了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、…...

Python环境搭建 -- Python与PyCharm安装
一、Python安装 我们先找到Python的官方网站,在浏览器中搜索Python即可,然后进入Python官网 点击Downloads,选择对应匹配的操作系统 点进去之后,Python的版本分为稳定的版本和前置版本,前置的版本就是还没有发行的版本…...

OSCP靶场--Astronaut
OSCP靶场–Astronaut 考点(1.CVE-2021-21425getshell 2.suid php提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC -p- 192.168.163.12 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-14 01:24 EDT Nmap scan report for 192.16…...
Springboot 使用【过滤器】实现在请求到达 Controller 之前修改请求体参数和在结果返回之前修改响应体
文章目录 前情提要解决方案自定义 HttpServletRequest 包装类 RequestWrapper自定义 HttpServletResponse 包装类 ResponseWrapper自定义过滤器 MiddlewareFilter配置过滤器注解配置类 编写 Controller 测试 前情提要 在项目中需要使用过滤器 在请求调用 Controller 方法前修改…...
Unity 3D常用的数据结构
目录 数组使用场景 ArrayList数组ArrayList的缺点 List\<T\>数组List\<T\>有以下3点好处 链表链表与数组的不同之处链表的优势数组和链表的应用场景 LinkedList\<T\>C#中内置的双向链表LinkedList使用场景 队列(Queue\<T\>)和栈…...
h5唤起微信小程序
wx-open-launch-weapp 就用这个 开放标签属于自定义标签,Vue会给予未知标签的警告,可通过配置Vue.config.ignoredElements [wx-open-launch-weapp] 来忽略Vue对开放标签的检查。 sdk授权。 调试打开时iOS会弹窗 noPermissionJsApi: [],confi…...

面向对象(精髓)变继承关系为组和关系(_Decorator模式)
在软件开发中,设计模式是解决常见问题的可重用解决方案。在面向对象编程中,继承和组合是两种常用的代码复用方式。然而,随着软件需求的不断变化,我们需要更灵活的设计方式来应对不断变化的需求。在本文中,我们将讨论从…...

MES系统在智能生产中的重要作用
在未来智能制造的发展趋势中,制造执行系统(MES)作为关键技术和工具,扮演着至关重要的角色。随着科技的不断进步和制造业的数字化转型,MES的地位将愈发凸显,对于企业实现智能化生产、提高效率、降低成本具有…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...