宝塔customtime插件 php测试模拟时间插件
插件介绍
应用名称:customtime
价格:5元/月
作者:偻儸小卒
功能介绍:customtime 测试环境时间自定义工具[php与操作系统时间分离运行]
支持版本:Centos7 (64位系统),Ubuntu 16.04 (64位系统)[18.04未测]
安装方法:升级到最新的内测版本。在第三方插件里安装
使用教程:1.更新到最新测试版宝塔,选择第三方插件找到customtime点击购买安装
需求
前一段时间用laravel写了个站点,但是客户有一个需求着实难住了我,那就是结算测试。因为在系统里面写的是按每天0点1分以计划任务方式结算前一天的佣金。然后测试的时候需要在一天内模拟很多天的时间点提交订单和自动结算佣金。
场景分析
我最开始想到的是修改源代码以达到效果,但是源代码都已经写好了如果改掉做测试那测完还得还原老版本到生产环境,而这两个就造成了生产环境和测试环境完全是两套代码,那测试还有什么意义?于是我就想起了刚学不久的docker,试想我能不能使用docker安装一个测试环境在docker里面然后使用计划任务隔一段时间[比如一个小时累加一天]自动修改docker沙箱的系统时间?恩,果然还是巨人的肩膀上能看更远!
特殊说明
1.本程序目前只针对于不同php版本做时间分离,其实也可以做不同软件进程之间时间分离功能(比如gitea等第三方软件实时时间与系统时间分离)如有其他需求还请留言后期根据具体需求酌情开发。
2. 经 实 测 此 插 件 不 适 用 于 m a c o s 下 的 d o c k e r 内 部 的 宝 塔 中 , 其 他 平 台 暂 未 测 试 。 \color{red}经实测此插件不适用于macos下的docker内部的宝塔中,其他平台暂未测试。 经实测此插件不适用于macos下的docker内部的宝塔中,其他平台暂未测试。
3. 系 统 重 启 后 该 插 件 会 停 止 运 行 , 请 重 启 服 务 器 的 老 铁 重 新 手 动 设 置 虚 拟 时 间 \color{red}系统重启后该插件会停止运行,请重启服务器的老铁重新手动设置虚拟时间 系统重启后该插件会停止运行,请重启服务器的老铁重新手动设置虚拟时间
主要依赖
1.libfaketime开源项目生成的静态链接库,安装包中已包含
如果老铁们有比较好的建议可以留言
历史版本 historical version
版本 | 简介 | 状态 | 时间 |
---|---|---|---|
0.0.1 | 实现简单虚拟时间版本。 | 已处理 | 2020-01-10 |
1.0.1 | 1.完善动态显示当前php时间 2.完善精准服务状态监测。 |
已处理 | 2020-03-25 |
1.2.1 | 1.解决centos+python3部分机器无法启动问题, 2.修复时间监测问题 3.php未启动导致插件检测报错问题 |
已处理 | 2020-10-28 |
1.3.1 | 1、前端使用vue-cli重写 2、解决时间只能设置12小时制问题 3、解决某些时候无法显示当前PHP时间问题。 |
已处理 | 2021/06/13 12:08:17 |
1.3.2 | 1.紧急处理部分用户提示“正常启动”但真实情况无法正确启动bug。 | 已处理 | 2021/07/29 08:56:21 |
待办事项 issues
简介 | 类型 | 状态 | 预计处理版本 | 预计处理时间 |
---|---|---|---|---|
暂无新想法 | 无 \color{blue}无 无 | 待处理 | 待定 | 待定 |
使用场景
在开发php中很多时候我们需要模拟不同时间系统的不同状态,比如在短时间内模拟多个时间段的用户购买商品与订单统计以达到辅助测试的功能。