测试笔记(日志审计、幂等性)

日志审计

  1. 日志的完整性:所有核心关键业务操作都必须产生的日志且必须完整,如放款操作是否有日志且完整,修改借款额度更新操作等是否有日志且完整,测试时必须注意所有触发日志的操作、日志触发点、触发后日志的完整性等;
  2. 日志的准确性:比如借款利率从5%降到4%后,更改前的快照和更改后的快照是否准确,日志表中这个字段,修改前值是否准确,修改后值是否准确;
  3. 日志不能删除和修改:日志只能增加,不能修改和删除;
  4. 日志是否脱敏:根据法律法规,关键数据在日志中是否脱敏,如身份证号、银行卡号等信息;
  5. 是否影响核心业务:如果日志写入影响核心业务的性能或者功能都不可以;如批量写入日志后,审核业务失败了;
  6. 日志记录不需要像浏览器中http请求一样要求时效性,所以可以考虑使用消息队列,性价比高且不影响业务性能;

幂等性

  1. 幂等性能够保证无论操作执行多少次,结果都和"只执行一次"完全一样。 尤其针对金融业务,它能确保"不多扣钱、不多放款、不重复生成账单"。
  2. 为了防止如扣款业务这类操作多次重复,比如网络异常、超时、弱网等情况下,用户点击后没有反应可能会连续多次点击,导致金额多扣,产生业务致命缺陷,引发客户和商家冲突;
  3. 针对资金交易接口,我们采用'双层防重'策略保障数据一致性,如业务层利用全局唯一ID+redis缓存实现幂等拦截,数据层引入乐观锁,控制并发冲突,两者结合即挡住重复请求又兜住了并发冲突。
  4. 通过设置各种重复请求的异常场景验证幂等性拦截效果;
  • 弱网:可以通过接口测试fiddler设置弱网、
  • 消息队列(MQ):手动设置超时时间,将时间设置短,触发MQ因未收到Ack而重新投递同一条消息;验证客户重复处理同一笔款项时,是否会重复扣款;
  • 缓存:用户发起放款请求后,在缓存中删除幂等Key,然后再次发起请求,此时重启redis,核验是否会重复放款;

使用locust对放款接口高并发操作,验证数据库连接池是否用完,导致后面业务无法进行;

相关推荐
ljt27249606618 分钟前
Python笔记(五)--读写文件
笔记·python
hanlin0310 小时前
刷题笔记:力扣第32题-最长有效括号
笔记·算法·leetcode
xian_wwq11 小时前
【学习笔记】Milvus 如何完成一次向量相似度检索,Milvus 索引到底应该怎么选?-15
笔记·学习·milvus
wujiuhsu14 小时前
图片里的简体中文怎么翻译成繁体?商品图、详情页和海报批量转换方法
经验分享·笔记
keyipatience18 小时前
JS学习笔记(2)数组,函数,作用域,对象
前端·javascript·笔记·学习·html
你想知道什么?18 小时前
词向量总结-学习笔记
人工智能·笔记·学习
He BianGu18 小时前
【笔记】WPF中RenderOptions类的详细功能
笔记·wpf
用AI来创业吧18 小时前
网站建设公司哪家好:报价差 3 倍,差在哪四项成本上(选型笔记)
笔记·性能优化·软件工程·安全威胁分析
一支蜉蝣20 小时前
Day25 XD安全笔记 安全开发-PHP 应用&文件管理模块&包含&上传&遍历&写入&删除&下载&安全
笔记·网络安全·php
Awh-20 小时前
ARM 裸机开发 DAY10 学习笔记
arm开发·笔记·学习