如果有类似这种的服务: 一天只能抽奖 n 次, 第二天重置回 N 次, 由于代码里使用了服务器的日期作为缓存的 key 那么测试人员应该怎么处理这个问题?
还是说应该在代码里下手?
1
InDom 2022-06-23 14:49:32 +08:00
删 Key 。或者,真的一天就测一次。
测试会准备很多账号用来测这个功能。 |
2
cnoder 2022-06-23 15:08:57 +08:00
手动删 key ,不会就让开发留个方便调试的接口
|
3
seth19960929 OP |
4
israinbow 2022-06-23 15:27:56 +08:00
克隆一个线上环境作为测试环境, 在测试环境里一边测一边改系统时间.
|
5
twinsdestiny 2022-06-23 15:30:20 +08:00
改系统时间测试啊
|
6
tmrQAQ 2022-06-23 15:33:23 +08:00
mock 时间
|
7
InDom 2022-06-23 15:49:53 +08:00
一般测试是要求会使用一点 Linux 服务器的,完全可以把测试环境给他,让他自己去改服务器时间。
|
8
Jar2vis 2022-06-23 17:05:55 +08:00
测试环境改系统时间验证,上线了一般只验证当天次数限制
|
9
qooweds 2022-06-23 17:19:36 +08:00
关键业务,条件允许的话就按照真实时间跨度去测。
做好用例评审,准备多个账号,每个账号覆盖一组测试用例,这样覆盖 2 到 3 天的测试场景。 关于缓存失效或者其他不方便用真实时间跨度来覆盖的测试,可以通过改服务器时间来测。 修改代码或者配置来测试只能是没有办法中的办法了。 |
10
seth19960929 OP |
11
edward1987 2022-06-23 18:00:22 +08:00
作为后端,我是提供切服务器逻辑时间的接口,供测试调用。
|
12
seth19960929 OP @edward1987 之前我也是这样子, 但是太麻烦了. 要么就是以后要删除这个接口. 要么就是预防线上不要这个接口
|
13
edward1987 2022-06-23 18:20:23 +08:00
@seth19960929 线上环境过滤这个接口,对开发来说就一句代码的事啊。。
|
14
seth19960929 OP @edward1987 改完代码之后是不是还要再测试一遍. 这个方法不好的地方就在这里
|
15
loveuqian 2022-06-23 19:11:49 +08:00
可以把(一天只能抽奖 n 次)的需求改成( x 分钟只能抽奖 n 次)吗?
|
16
zjp 2022-06-23 19:24:59 +08:00
libfaketime 模拟时间
|
17
ForkNMB 2022-06-23 20:01:03 +08:00
肯定不能改系统时间测啊,测试机器上又不止部署了一个项目,别人的项目也在跑的。应该吧时间和频率的限制做成可配置化的,把 1 天内抽 n 次改为一定时间内抽 n 次,这样就可以满足测试要求了。
|
18
seth19960929 OP |
19
loveuqian 2022-06-24 10:10:27 +08:00
|
20
edward1987 2022-06-24 10:31:23 +08:00
@seth19960929 #14 不用改代码啊。。这个开发一开始就加了过滤了,根据环境过滤。 就一句代码的功能,开发还是能保证正常的😂。 实在信不过,上线的时候调用这个接口看下日志就好
|
21
zjp 2022-06-24 22:34:46 +08:00
#18 有额外的好处:不影响其他进程,可以修改时间流逝速度
|
22
seth19960929 OP @zjp 是, 看着也是修改时间. 直接 date -s 也行. 其它就是你说修改流逝速度
|