ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 插件测试 当你的插件完成了开发和打包,请务必使用FastAdmin完整包进行全新离线插件测试。 ### 测试准备 首先需要开启调试模式,打开`application/config.php`,将`app_debug`的值置为`true`。 同时需要开启`允许安装未知来源插件压缩包`这个配置,打开`application/config.php`,将`unknownsources`的值置为`true`。 如果上述设置后仍然不能进行离线安装测试,分两种情况: 1、插件已上架,请检查你插件管理中登录的账号是否匹配当前插件 2、插件未上架,请检查插件标识是否被占用,如果被占用也是无法离线安装 应用标识占用检测:https://www.fastadmin.net/developer/idcheck.html 如果离线安装时提示`无法解压zip文件`,请检查你的压缩包文件是否损坏、插件目录是否嵌套(压缩包应该是直接压缩插件文件,不允许嵌套文件夹)、站点目录是否有权限(`application、public、addons、runtime`目录必须有写权限)。 ### 完整包测试 FastAdmin完整包下载地址https://www.fastadmin.net/download/full.html 注意使用完整包,测试时请使用全新的数据库进行测试,而不是使用已有的数据库进行测试。 同时务必在`PHP7.4`和`Mysql 5.7`下进行相关功能测试,MySQL需开启严格模式。 ### 二级目录 插件必须支持在二级目录下能正常浏览,因此务必在二级目录下完成相关功能测试。 重点检查在二级目录时加载的图片、JS、样式等资源是否正确。 ### 深色模式测试 插件强烈建议适配深色模式,请参考深色适配文档:https://doc.fastadmin.net/darktheme/2850.html ### 测试检查点 插件安装、禁用、卸载、卸载并删除数据表、菜单是否正常 伪静态环境下是否能正确浏览 二级目录下相关请求地址是否正确 二级目录下图片、JS是否正确 检查插件代码中缓存的设置和获取是否添加插件标识标签 检查插件所有代码是否以`utf8`编码,不能存在以`utf8-bom`编码的文件 检查插件中文件名大小写是否正确 检查插件代码中的`默认密钥`、`默认Appid`、`默认Key`等配置是否去除 检查逻辑代码中是否有写`硬编码(固定参数)`的配置,请务必后台可配置化 检查逻辑代码中API接口地址的域名占位,只允许使用`www.example.com`占位 检查逻辑代码不允许使用固定的数据表前缀,例如`fa_user` 检查逻辑代码不允许使用`$("选择器").size()`判断大小,请使用`$("选择器").length`进行判断 检查逻辑代码中获取参数`rawData`和`encrytedData`是否有做特殊处理(不进行转义) 检查逻辑代码中`Db::query`和`Db::execute`拼接的SQL是否有安全隐患 检查逻辑代码`try catch`捕获异常时在`try`中不允许出现`$this->success()`和`$this->error()` 检查逻辑代码中模型对象是否有使用`$model->type`来获取或设置相关值,`type`为私有属性,更多私有属性请查看ThinkPHP模型基类`Model.php` 检查逻辑代码`$this->success()`和`$this->error()`前不允许添加`return` 检查逻辑代码中是否有实例化控制器的用法,不允许手动实例化控制器,然后调用控制器的方法 检查逻辑代码中涉及金额计算是否有正确使用`bcmath`的相关方法进行精度 处理 检查逻辑代码中调用的方法命名是否规范,不允许`abc_def`和`abcDef`混用 检查逻辑代码中补全图片等资源前缀时必须使用`cdnurl("图片URL", true);`进行补全 检查逻辑代码中调用的方法是否严格区分大小写(包括但不限于文件名、类名、命名空间) 检查Uniapp中的`manifest.json`文件中的`App权限配置`中是否移除与应用无关的权限 移除无关的冗余代码、脚本、注释等 移除需授权的代码、文字、图片、图片上的文字、字体等资源 移除插件目录的`.addonrc`文件 移除插件目录下`标识.php`中的`testhook`方法 移除插件目录下`config.php`中的冗余配置信息 移除Uniapp项目目录下的`unpackage`目录 移除插件目录代码中的默认配置 ### 数据库检查 `install.sql`和`testdata.sql`中不能包含`DROP TABLE`语句 `install.sql`和`testdata.sql`中不能包含`DELETE FROM`语句 `install.sql`和`testdata.sql`中`CREATE TABLE`不能包含`ROW_FORMAT=DYNAMIC`参数 `install.sql`和`testdata.sql`中`CREATE TABLE`必须加上`IF NOT EXISTS`判断 `install.sql`和`testdata.sql`中的数据库前缀必须用`__PREFIX__`,不能使用固定前缀`fa_` `install.sql`和`testdata.sql`中的时间字段如保存`时间戳`,字段类型必须使用`bigint(16)`,不能使用`int(10)`,且默认值不能为`0`,默认值应当为`NULL` `install.sql`和`testdata.sql`中的数据表字段字符集请使用`utf8mb4_general_ci` ### 升级测试 首先安装旧版本,然后卸载插件(不删除数据库数据),再本地安装新版本测试数据库是否正常升级、菜单是否正确升级 务必更新`info.ini`中的版本号 务必删除插件目录下的`.addonrc`文件