[求问]依赖服务器时间日期的代码,测试人员应该怎么做呢?

2022-06-23 14:45:10 +08:00
 seth19960929

如果有类似这种的服务: 一天只能抽奖 n 次, 第二天重置回 N 次, 由于代码里使用了服务器的日期作为缓存的 key 那么测试人员应该怎么处理这个问题?

还是说应该在代码里下手?

1675 次点击
所在节点    问与答
22 条回复
InDom
2022-06-23 14:49:32 +08:00
删 Key 。或者,真的一天就测一次。

测试会准备很多账号用来测这个功能。
cnoder
2022-06-23 15:08:57 +08:00
手动删 key ,不会就让开发留个方便调试的接口
seth19960929
2022-06-23 15:22:05 +08:00
@InDom
@cnoder 不是删除 key 的的问题, 而是日期的问题. 次数的问题可以删除 key, 但是测试怎么验证.
因为删除 key 你只是把今天的限制解除了. 而不知道明天验证是否会生效
israinbow
2022-06-23 15:27:56 +08:00
克隆一个线上环境作为测试环境, 在测试环境里一边测一边改系统时间.
twinsdestiny
2022-06-23 15:30:20 +08:00
改系统时间测试啊
tmrQAQ
2022-06-23 15:33:23 +08:00
mock 时间
InDom
2022-06-23 15:49:53 +08:00
一般测试是要求会使用一点 Linux 服务器的,完全可以把测试环境给他,让他自己去改服务器时间。
Jar2vis
2022-06-23 17:05:55 +08:00
测试环境改系统时间验证,上线了一般只验证当天次数限制
qooweds
2022-06-23 17:19:36 +08:00
关键业务,条件允许的话就按照真实时间跨度去测。
做好用例评审,准备多个账号,每个账号覆盖一组测试用例,这样覆盖 2 到 3 天的测试场景。
关于缓存失效或者其他不方便用真实时间跨度来覆盖的测试,可以通过改服务器时间来测。
修改代码或者配置来测试只能是没有办法中的办法了。
seth19960929
2022-06-23 17:51:21 +08:00
@israinbow
@twinsdestiny
@InDom 好的感谢.
@tmrQAQ 怎么 mock?
@qooweds 好的, 感谢
edward1987
2022-06-23 18:00:22 +08:00
作为后端,我是提供切服务器逻辑时间的接口,供测试调用。
seth19960929
2022-06-23 18:15:36 +08:00
@edward1987 之前我也是这样子, 但是太麻烦了. 要么就是以后要删除这个接口. 要么就是预防线上不要这个接口
edward1987
2022-06-23 18:20:23 +08:00
@seth19960929 线上环境过滤这个接口,对开发来说就一句代码的事啊。。
seth19960929
2022-06-23 18:47:46 +08:00
@edward1987 改完代码之后是不是还要再测试一遍. 这个方法不好的地方就在这里
loveuqian
2022-06-23 19:11:49 +08:00
可以把(一天只能抽奖 n 次)的需求改成( x 分钟只能抽奖 n 次)吗?
zjp
2022-06-23 19:24:59 +08:00
libfaketime 模拟时间
ForkNMB
2022-06-23 20:01:03 +08:00
肯定不能改系统时间测啊,测试机器上又不止部署了一个项目,别人的项目也在跑的。应该吧时间和频率的限制做成可配置化的,把 1 天内抽 n 次改为一定时间内抽 n 次,这样就可以满足测试要求了。
seth19960929
2022-06-24 10:05:35 +08:00
@loveuqian 研发就是研发, 需求都是产品定的.
@zjp 看着改系统时间快一点
@ForkNMB 这种想法不现实. 因为不是实际的的需求. 改系统时间合适我. 服务跑在容器里面
loveuqian
2022-06-24 10:10:27 +08:00
@seth19960929 #18
改成 x 分钟也一样能满足你的需求啊
上线前 x=1 方便测试,上线后 x=24*60
edward1987
2022-06-24 10:31:23 +08:00
@seth19960929 #14 不用改代码啊。。这个开发一开始就加了过滤了,根据环境过滤。 就一句代码的功能,开发还是能保证正常的😂。 实在信不过,上线的时候调用这个接口看下日志就好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861649

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX