前言
某系统要求压测修改密码功能。我们不讨论这个场景是否有必要压测,只从技术角度,讨论如何实现。
乍一听觉得这个场景很简单,没有复杂的业务逻辑,也不需要前后关联,就一个接口的事儿。
然而真正做起来,却还是费了点时间的,记录一下。
业务规则
1、新密码不能与旧密码相同,好在,不校验历史密码。
知道了这一点,我就立刻想到用两个密码交替使用呗,所以密码的长度、复杂度等要求,我就直接忽略了,在原密码的基础上,变更一个字符生成一个新密码好了。
2、修改成功后,用户被登出。
接口逻辑
1、用户发送登录请求,需提供用户名和密码。
2、用户发送修改密码请求,需提供用户Id(可从登录请求的响应中获取)、新密码、旧密码,修改成功后被登出。
3、用户需使用新密码再次发送登录请求,才可继续修改密码,此时新旧密码已经互换了。
4、以上循环往复。
思路梳理
本文为简化,两个密码分别定义为a和b,且初始密码为a。
密码准备好了,可是,如何实现