由于缓存中key的设置不合理导致的bug

相信大家经常遇到这样一种情况:页面加载和访问很慢,请求接口后要好几秒的时间才能返回结果,有的时候为了优化用户体验。或者有些公共接口频繁被调用,后端可能会加缓存,当使用相同的查询条件再次查询时,直接从缓存中查询结果返回给客户端,从而提升用户体验。

有一个接口,比如传入一个部门的id,要返回该部门下的所有小组,该接口支持模糊查询,比如现在传入部门A的id,小组名称输入“小组”进行查询,会返回小组1和小组2的数据,同时也会将结果缓存起来,接着传入部门B的id,小组名称输入“小组”进行查询,此时应该返回小组3和小组4的数据,但由于缓存的key设置不合理,导致查询部门A和部门B返回的数据是一样的。之前在测试的时候每次都是输入不同的关键字去搜索,没发现这个问题。因此以后在测试过程中,使用到缓存的接口,要注意避免类似的场景发生,在设计用例的时候也要考虑进去。

原文地址:https://www.cnblogs.com/flhw/p/14066236.html