diff --git a/README.md b/README.md
index 666ca9fc2cd27b3f91ae878f4229c046b85ad361..db2b3646ae72a2606f0b69bb1cc270de87d9abdd 100644
--- a/README.md
+++ b/README.md
@@ -10,11 +10,14 @@ QQ群交流:468324085,加群验证:易大师
[演示地址](http://www.xuwangcheng.com/yi)(账号 tester/11111111)
-#### 一键安装包
+#### 一键安装 for windows
百度云: https://pan.baidu.com/s/1i8siuIuPXsjlnawYFc4c6A
**账号 admin/q708162543**
**安装完成进入安装根目录,双击执行start.bat,弹出两个cmd窗口不要关闭,打开浏览器输入http://localhost:8080**
+#### Linux安装教程
+https://www.xuwangcheng.com/articles/2019/11/20/1574239339298.html
+
#### 主要功能
- 接口、报文、场景三层分离,接口测试更加灵活多变;
- 支持Http/Https/Socket/WebService/WebSocket/Dubbo协议接口,后续支持更多;
diff --git a/pom.xml b/pom.xml
index fd7182ca7165e39170fb14d04673e3d13b679686..2721043fcb838d4cc52135a29a2ace28f5c5a5d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -435,6 +435,13 @@
Java-WebSocket
1.4.0
+
+ javax.websocket
+ javax.websocket-api
+ 1.1
+ provided
+
+
@@ -444,6 +451,12 @@
+
+ org.jsoup
+ jsoup
+ 1.11.3
+
+
+
+
diff --git a/src/main/resources/update/0.2.2beta b/src/main/resources/update/0.2.2beta
new file mode 100644
index 0000000000000000000000000000000000000000..6099797d91c576b4ec2637d19c78c7d4403534a3
--- /dev/null
+++ b/src/main/resources/update/0.2.2beta
@@ -0,0 +1,85 @@
+ALTER TABLE `at_operation_interface` ADD COLUMN `permission_mark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'jquery选择器标识' AFTER `parent_op_id`;
+ALTER TABLE `at_operation_interface` ADD COLUMN `page_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所属页面' AFTER `permission_mark`;
+UPDATE `at_operation_interface` SET `op_name` = '接口信息编辑', `call_name` = 'interface-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '新增或者编辑指定接口信息', `status` = '0', `parent_op_id` = 3, `permission_mark` = '.object-edit', `page_name` = 'interface' WHERE `op_id` = 25;
+UPDATE `at_operation_interface` SET `op_name` = '删除接口', `call_name` = 'interface-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定接口', `status` = '0', `parent_op_id` = 3, `permission_mark` = '.object-del', `page_name` = 'interface' WHERE `op_id` = 27;
+UPDATE `at_operation_interface` SET `op_name` = '获取接口的参数', `call_name` = 'param-getParams', `is_parent` = 'false', `op_type` = NULL, `mark` = '获取指定接口的所有入参节点信息', `status` = '0', `parent_op_id` = 5, `permission_mark` = '.edit-params', `page_name` = 'interface' WHERE `op_id` = 33;
+UPDATE `at_operation_interface` SET `op_name` = '保存参数', `call_name` = 'param-save', `is_parent` = 'false', `op_type` = NULL, `mark` = '保存单个接口入参信息', `status` = '0', `parent_op_id` = 5, `permission_mark` = '#add-object', `page_name` = 'interfaceParameter' WHERE `op_id` = 34;
+UPDATE `at_operation_interface` SET `op_name` = '删除参数', `call_name` = 'param-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定参数', `status` = '0', `parent_op_id` = 5, `permission_mark` = '.object-del', `page_name` = 'interfaceParameter' WHERE `op_id` = 35;
+UPDATE `at_operation_interface` SET `op_name` = '编辑参数', `call_name` = 'param-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '编辑指定参数信息', `status` = '0', `parent_op_id` = 5, `permission_mark` = '.object-edit', `page_name` = 'interfaceParameter' WHERE `op_id` = 36;
+UPDATE `at_operation_interface` SET `op_name` = '导入报文串入参', `call_name` = 'param-batchImportParams', `is_parent` = 'false', `op_type` = NULL, `mark` = '根据报文串批量导入入参', `status` = '0', `parent_op_id` = 5, `permission_mark` = '#batch-add-object', `page_name` = 'interfaceParameter' WHERE `op_id` = 37;
+UPDATE `at_operation_interface` SET `op_name` = '批量删除', `call_name` = 'param-delInterfaceParams', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定接口下的所有入参', `status` = '0', `parent_op_id` = 5, `permission_mark` = '#batch-del-object', `page_name` = 'interfaceParameter' WHERE `op_id` = 38;
+UPDATE `at_operation_interface` SET `op_name` = '编辑报文信息', `call_name` = 'message-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '新增或者编辑报文信息', `status` = '0', `parent_op_id` = 6, `permission_mark` = '.object-edit', `page_name` = 'message' WHERE `op_id` = 40;
+UPDATE `at_operation_interface` SET `op_name` = '删除报文', `call_name` = 'message-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定报文', `status` = '0', `parent_op_id` = 6, `permission_mark` = '.object-del', `page_name` = 'message' WHERE `op_id` = 42;
+UPDATE `at_operation_interface` SET `op_name` = '场景信息编辑', `call_name` = 'scene-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '新增或者编辑指定测试场景', `status` = '0', `parent_op_id` = 7, `permission_mark` = '.object-edit', `page_name` = 'messageScene' WHERE `op_id` = 46;
+UPDATE `at_operation_interface` SET `op_name` = '删除测试场景', `call_name` = 'scene-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定测试场景', `status` = '0', `parent_op_id` = 7, `permission_mark` = '.object-del', `page_name` = 'messageScene' WHERE `op_id` = 48;
+UPDATE `at_operation_interface` SET `op_name` = '删除指定测试数据', `call_name` = 'data-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定测试数据', `status` = '0', `parent_op_id` = 8, `permission_mark` = '.object-del', `page_name` = 'testData' WHERE `op_id` = 55;
+UPDATE `at_operation_interface` SET `op_name` = '编辑测试数据信息', `call_name` = 'data-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '新增或者编辑测试数据信息', `status` = '0', `parent_op_id` = 8, `permission_mark` = '.object-edit', `page_name` = 'testData' WHERE `op_id` = 59;
+UPDATE `at_operation_interface` SET `op_name` = '删除测试报告', `call_name` = 'report-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定测试报告', `status` = '0', `parent_op_id` = 9, `permission_mark` = '.object-del', `page_name` = 'report' WHERE `op_id` = 62;
+UPDATE `at_operation_interface` SET `op_name` = '查看离线测试报告', `call_name` = 'report-generateStaticReportHtml', `is_parent` = 'false', `op_type` = NULL, `mark` = '查看离线测试报告', `status` = '0', `parent_op_id` = 9, `permission_mark` = '.download-report', `page_name` = 'report' WHERE `op_id` = 63;
+UPDATE `at_operation_interface` SET `op_name` = '查看在线测试报告', `call_name` = 'report-getReportDetail', `is_parent` = 'false', `op_type` = NULL, `mark` = '查看动态生成的在线测试报告', `status` = '0', `parent_op_id` = 9, `permission_mark` = '.view-report', `page_name` = 'report' WHERE `op_id` = 64;
+UPDATE `at_operation_interface` SET `op_name` = '操作测试集场景', `call_name` = 'set-opScene', `is_parent` = 'false', `op_type` = NULL, `mark` = '添加到测试集或者从测试集删除', `status` = '0', `parent_op_id` = 11, `permission_mark` = '.op-scene,#batch-op', `page_name` = 'setScene' WHERE `op_id` = 67;
+UPDATE `at_operation_interface` SET `op_name` = '编辑测试集信息', `call_name` = 'set-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '新增或者编辑指定测试集信息', `status` = '0', `parent_op_id` = 11, `permission_mark` = '#edit-set-info', `page_name` = 'setScene' WHERE `op_id` = 71;
+UPDATE `at_operation_interface` SET `op_name` = '删除测试集', `call_name` = 'set-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定测试集', `status` = '0', `parent_op_id` = 11, `permission_mark` = '#del-this-set', `page_name` = 'setScene' WHERE `op_id` = 73;
+UPDATE `at_operation_interface` SET `op_name` = '设定测试集运行时配置', `call_name` = 'set-settingConfig', `is_parent` = 'false', `op_type` = NULL, `mark` = '设定指定测试集的运行时配置(默认还是自定义)', `status` = '0', `parent_op_id` = 11, `permission_mark` = '#setting-set-config', `page_name` = 'setScene' WHERE `op_id` = 75;
+UPDATE `at_operation_interface` SET `op_name` = '编辑验证规则信息', `call_name` = 'validate-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '新增或者编辑验证规则信息', `status` = '0', `parent_op_id` = 12, `permission_mark` = '.object-edit', `page_name` = 'validateParameters' WHERE `op_id` = 84;
+UPDATE `at_operation_interface` SET `op_name` = '删除验证规则信息', `call_name` = 'validate-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定验证规则信息', `status` = '0', `parent_op_id` = 12, `permission_mark` = '.object-del', `page_name` = 'validateParameters' WHERE `op_id` = 86;
+UPDATE `at_operation_interface` SET `op_name` = '编辑定时任务', `call_name` = 'task-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '编辑定时任务', `status` = '0', `parent_op_id` = 14, `permission_mark` = '.object-edit', `page_name` = 'autoTask' WHERE `op_id` = 89;
+UPDATE `at_operation_interface` SET `op_name` = '删除指定定时任务', `call_name` = 'task-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定定时任务', `status` = '0', `parent_op_id` = 14, `permission_mark` = '.object-del', `page_name` = 'autoTask' WHERE `op_id` = 90;
+UPDATE `at_operation_interface` SET `op_name` = '停止运行中的定时任务', `call_name` = 'task-stopRunningTask', `is_parent` = 'false', `op_type` = NULL, `mark` = '停止运行中的定时任务', `status` = '0', `parent_op_id` = 14, `permission_mark` = '.start-stop-task', `page_name` = 'autoTask' WHERE `op_id` = 93;
+UPDATE `at_operation_interface` SET `op_name` = '运行可运行的定时任务', `call_name` = 'task-startRunableTask', `is_parent` = 'false', `op_type` = NULL, `mark` = '运行可运行的定时任务', `status` = '0', `parent_op_id` = 14, `permission_mark` = '.start-stop-task', `page_name` = 'autoTask' WHERE `op_id` = 94;
+UPDATE `at_operation_interface` SET `op_name` = '更新定时规则', `call_name` = 'task-updateCronExpression', `is_parent` = 'false', `op_type` = NULL, `mark` = '更新定时规则', `status` = '0', `parent_op_id` = 14, `permission_mark` = '.setting-cron-expression', `page_name` = 'autoTask' WHERE `op_id` = 98;
+UPDATE `at_operation_interface` SET `op_name` = '更新全局配置信息', `call_name` = 'global-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '更新全局配置信息', `status` = '0', `parent_op_id` = 15, `permission_mark` = '.save-setting', `page_name` = 'globalSetting' WHERE `op_id` = 99;
+UPDATE `at_operation_interface` SET `op_name` = '测试指定数据源是否可连接', `call_name` = 'db-testDB', `is_parent` = 'false', `op_type` = NULL, `mark` = '测试指定数据源是否可连接', `status` = '0', `parent_op_id` = 17, `permission_mark` = '.db-test', `page_name` = 'queryDbList' WHERE `op_id` = 102;
+UPDATE `at_operation_interface` SET `op_name` = '删除指定查询数据库信息', `call_name` = 'db-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定查询数据库信息', `status` = '0', `parent_op_id` = 17, `permission_mark` = '.object-del', `page_name` = 'queryDbList' WHERE `op_id` = 103;
+UPDATE `at_operation_interface` SET `op_name` = '编辑指定查询数据库信息', `call_name` = 'db-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '编辑指定查询数据库信息', `status` = '0', `parent_op_id` = 17, `permission_mark` = '.object-edit', `page_name` = 'queryDbList' WHERE `op_id` = 105;
+UPDATE `at_operation_interface` SET `op_name` = '编辑变量信息', `call_name` = 'variable-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '新增或者编辑变量模板信息', `status` = '0', `parent_op_id` = 18, `permission_mark` = '.object-edit', `page_name` = 'variable' WHERE `op_id` = 109;
+UPDATE `at_operation_interface` SET `op_name` = '删除变量信息', `call_name` = 'variable-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定变量模板信息', `status` = '0', `parent_op_id` = 18, `permission_mark` = '.object-del', `page_name` = 'variable' WHERE `op_id` = 110;
+UPDATE `at_operation_interface` SET `op_name` = '删除站内信', `call_name` = 'mail-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除信息', `status` = '0', `parent_op_id` = 20, `permission_mark` = '.object-del', `page_name` = 'mail' WHERE `op_id` = 116;
+UPDATE `at_operation_interface` SET `op_name` = '删除指定角色信息', `call_name` = 'role-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除指定角色信息', `status` = '0', `parent_op_id` = 21, `permission_mark` = '.object-del', `page_name` = 'role' WHERE `op_id` = 118;
+UPDATE `at_operation_interface` SET `op_name` = '编辑指定角色信息', `call_name` = 'role-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '编辑指定角色信息', `status` = '0', `parent_op_id` = 21, `permission_mark` = '.object-edit', `page_name` = 'role' WHERE `op_id` = 120;
+UPDATE `at_operation_interface` SET `op_name` = '锁定用户或者解锁用户', `call_name` = 'user-lock', `is_parent` = 'false', `op_type` = NULL, `mark` = '锁定用户或者解锁用户', `status` = '0', `parent_op_id` = 22, `permission_mark` = '.user-lock', `page_name` = 'user' WHERE `op_id` = 126;
+UPDATE `at_operation_interface` SET `op_name` = '编辑用户信息', `call_name` = 'user-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '新增或者编辑用户信息', `status` = '0', `parent_op_id` = 22, `permission_mark` = '.object-edit', `page_name` = 'user' WHERE `op_id` = 128;
+UPDATE `at_operation_interface` SET `op_name` = '重置用户密码', `call_name` = 'user-resetPwd', `is_parent` = 'false', `op_type` = NULL, `mark` = '重置指定用户的密码为111111', `status` = '0', `parent_op_id` = 22, `permission_mark` = '.reset-pass', `page_name` = 'user' WHERE `op_id` = 129;
+UPDATE `at_operation_interface` SET `op_name` = '从excel导入数据', `call_name` = 'interface-importFromExcel', `is_parent` = 'false', `op_type` = NULL, `mark` = '从上传的Excel中导入接口信息数据', `status` = '0', `parent_op_id` = 3, `permission_mark` = '#import-data-from-excel', `page_name` = 'interface' WHERE `op_id` = 130;
+UPDATE `at_operation_interface` SET `op_name` = '从excel导入数据', `call_name` = 'message-importFromExcel', `is_parent` = 'false', `op_type` = NULL, `mark` = '从上传的Excel中导入报文信息数据', `status` = '0', `parent_op_id` = 6, `permission_mark` = '#import-data-from-excel', `page_name` = 'message' WHERE `op_id` = 131;
+UPDATE `at_operation_interface` SET `op_name` = '从excel导入数据', `call_name` = 'scene-importFromExcel', `is_parent` = 'false', `op_type` = NULL, `mark` = '从上传的Excel中导入测试场景信息数据', `status` = '0', `parent_op_id` = 7, `permission_mark` = '#import-data-from-excel', `page_name` = 'messageScene' WHERE `op_id` = 132;
+UPDATE `at_operation_interface` SET `op_name` = '移动测试集', `call_name` = 'set-moveFolder', `is_parent` = 'false', `op_type` = NULL, `mark` = '将指定测试集移动到指定的目录文件夹下', `status` = '0', `parent_op_id` = 11, `permission_mark` = '#batch-move-folder', `page_name` = 'testSet' WHERE `op_id` = 135;
+UPDATE `at_operation_interface` SET `op_name` = '导出接口文档', `call_name` = 'interface-exportInterfaceDocument', `is_parent` = 'false', `op_type` = NULL, `mark` = '批量导出接口文档', `status` = '0', `parent_op_id` = 3, `permission_mark` = '#export-interface-document', `page_name` = 'interface' WHERE `op_id` = 136;
+UPDATE `at_operation_interface` SET `op_name` = '编辑或新增组合场景', `call_name` = 'complexScene-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '编辑或新增组合场景', `status` = '0', `parent_op_id` = 998, `permission_mark` = '.object-edit', `page_name` = 'complexScene' WHERE `op_id` = 1001;
+UPDATE `at_operation_interface` SET `op_name` = '删除组合场景', `call_name` = 'complexScene-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除组合场景', `status` = '0', `parent_op_id` = 998, `permission_mark` = '.object-del', `page_name` = 'complexScene' WHERE `op_id` = 1002;
+UPDATE `at_operation_interface` SET `op_name` = '测试环境', `call_name` = 'system', `is_parent` = 'true', `op_type` = NULL, `mark` = '测试环境、业务系统', `status` = '0', `parent_op_id` = 13, `permission_mark` = '', `page_name` = '' WHERE `op_id` = 1019;
+UPDATE `at_operation_interface` SET `op_name` = '编辑或者新增测试环境', `call_name` = 'system-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1019, `permission_mark` = '.object-edit', `page_name` = 'businessSystem' WHERE `op_id` = 1020;
+UPDATE `at_operation_interface` SET `op_name` = '获取测试环境信息', `call_name` = 'system-get', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1019, `permission_mark` = '', `page_name` = '' WHERE `op_id` = 1022;
+UPDATE `at_operation_interface` SET `op_name` = '查询测试环境列表', `call_name` = 'system-list', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1019, `permission_mark` = '', `page_name` = '' WHERE `op_id` = 1023;
+UPDATE `at_operation_interface` SET `op_name` = '删除测试环境信息', `call_name` = 'system-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1019, `permission_mark` = '.object-del', `page_name` = 'businessSystem' WHERE `op_id` = 1024;
+UPDATE `at_operation_interface` SET `op_name` = '查询所有测试环境列表', `call_name` = 'system-listAll', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1019, `permission_mark` = '', `page_name` = '' WHERE `op_id` = 1025;
+UPDATE `at_operation_interface` SET `op_name` = '删除操作接口', `call_name` = 'op-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 16, `permission_mark` = '.object-del', `page_name` = 'opInterface' WHERE `op_id` = 1027;
+UPDATE `at_operation_interface` SET `op_name` = '编辑操作接口', `call_name` = 'op-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 16, `permission_mark` = '.object-edit', `page_name` = 'opInterface' WHERE `op_id` = 1029;
+UPDATE `at_operation_interface` SET `op_name` = '编辑或者新增探测任务', `call_name` = 'probe-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '编辑或者新增探测任务', `status` = '0', `parent_op_id` = 1032, `permission_mark` = '.object-edit', `page_name` = 'interfaceProbe' WHERE `op_id` = 1034;
+UPDATE `at_operation_interface` SET `op_name` = '删除探测任务信息', `call_name` = 'probe-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '删除探测任务信息', `status` = '0', `parent_op_id` = 1032, `permission_mark` = '.object-del', `page_name` = 'interfaceProbe' WHERE `op_id` = 1035;
+UPDATE `at_operation_interface` SET `op_name` = '开启探测任务', `call_name` = 'probe-startTask', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1032, `permission_mark` = '.start-probe-task', `page_name` = 'interfaceProbe' WHERE `op_id` = 1039;
+UPDATE `at_operation_interface` SET `op_name` = '停止探测任务', `call_name` = 'probe-stopTask', `is_parent` = 'false', `op_type` = NULL, `mark` = '停止探测任务', `status` = '0', `parent_op_id` = 1032, `permission_mark` = '.stop-probe-task', `page_name` = 'interfaceProbe' WHERE `op_id` = 1040;
+UPDATE `at_operation_interface` SET `op_name` = '组合场景单个测试', `call_name` = 'test-complexSceneTest', `is_parent` = 'false', `op_type` = NULL, `mark` = '组合场景单个测试', `status` = '0', `parent_op_id` = 4, `permission_mark` = '.object-test', `page_name` = 'complexScene' WHERE `op_id` = 1044;
+UPDATE `at_operation_interface` SET `op_name` = '业务系统删除或者增加接口信息', `call_name` = 'system-opInterface', `is_parent` = 'false', `op_type` = NULL, `mark` = '从指定的业务系统中删除或者增加接口信息', `status` = '0', `parent_op_id` = 1019, `permission_mark` = '#batch-op,.op-interface', `page_name` = 'manageSystemInterface' WHERE `op_id` = 1058;
+UPDATE `at_operation_interface` SET `op_name` = '删除指定操作日志信息', `call_name` = 'log-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1059, `permission_mark` = '.object-del,#batch-del-object', `page_name` = 'logRecord' WHERE `op_id` = 1062;
+UPDATE `at_operation_interface` SET `op_name` = '编辑mock接口基本信息', `call_name` = 'mock-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1064, `permission_mark` = '.object-edit', `page_name` = 'mockTest' WHERE `op_id` = 1066;
+UPDATE `at_operation_interface` SET `op_name` = '删除指定mock接口信息', `call_name` = 'mock-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1064, `permission_mark` = '.object-del', `page_name` = 'mockTest' WHERE `op_id` = 1068;
+UPDATE `at_operation_interface` SET `op_name` = '更新mock规则', `call_name` = 'mock-updateSetting', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1064, `permission_mark` = '#save-setting-mock-validate', `page_name` = 'mockTest' WHERE `op_id` = 1070;
+UPDATE `at_operation_interface` SET `op_name` = '删除性能测试配置', `call_name` = 'ptc-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1073, `permission_mark` = '.object-del', `page_name` = 'performanceTest' WHERE `op_id` = 1075;
+UPDATE `at_operation_interface` SET `op_name` = '编辑性能测试配置信息', `call_name` = 'ptc-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1073, `permission_mark` = '.object-edit', `page_name` = 'performanceTest' WHERE `op_id` = 1076;
+UPDATE `at_operation_interface` SET `op_name` = '删除性能测试结果', `call_name` = 'ptr-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1078, `permission_mark` = '.object-del,#batch-del', `page_name` = 'performanceTestResult' WHERE `op_id` = 1082;
+UPDATE `at_operation_interface` SET `op_name` = '停止指定性能测试任务', `call_name` = 'ptc-stopTest', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1084, `permission_mark` = '.stop-test', `page_name` = 'performanceTestTaskList' WHERE `op_id` = 1086;
+UPDATE `at_operation_interface` SET `op_name` = '删除指定性能测试任务', `call_name` = 'ptc-delTest', `is_parent` = 'false', `op_type` = NULL, `mark` = '被删除的性能测试任务不会保存本次测试结果', `status` = '0', `parent_op_id` = 1084, `permission_mark` = '.del-test', `page_name` = 'performanceTestTaskList' WHERE `op_id` = 1087;
+UPDATE `at_operation_interface` SET `op_name` = '初始化性能测试任务', `call_name` = 'ptc-initTest', `is_parent` = 'false', `op_type` = NULL, `mark` = '包括初始化配置、加载配置文件、预加载请求报文等', `status` = '0', `parent_op_id` = 1084, `permission_mark` = '.object-test', `page_name` = 'performanceTest' WHERE `op_id` = 1088;
+UPDATE `at_operation_interface` SET `op_name` = '邮件推送离线报告', `call_name` = 'report-sendMail', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 9, `permission_mark` = '.send-mail', `page_name` = 'report' WHERE `op_id` = 1093;
+UPDATE `at_operation_interface` SET `op_name` = '更新菜单与角色之间的关系', `call_name` = 'role-updateRoleMenu', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 21, `permission_mark` = '.show-role-menu', `page_name` = 'role' WHERE `op_id` = 1133;
+UPDATE `at_operation_interface` SET `op_name` = '编辑或新增菜单信息', `call_name` = 'menu-edit', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1134, `permission_mark` = '.object-edit', `page_name` = 'menu' WHERE `op_id` = 1135;
+UPDATE `at_operation_interface` SET `op_name` = '删除指定菜单信息', `call_name` = 'menu-del', `is_parent` = 'false', `op_type` = NULL, `mark` = '', `status` = '0', `parent_op_id` = 1134, `permission_mark` = '.object-del', `page_name` = 'menu' WHERE `op_id` = 1138;
+DELETE FROM `at_operation_interface` WHERE `op_id` = 81;
+DELETE FROM `at_operation_interface` WHERE `op_id` = 82;
+UPDATE at_busi_menu_info SET status='0' WHERE menu_id=27;
+ALTER TABLE `at_test_config` ADD COLUMN `public_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '属于该测试集的公共测试数据,json串存储' AFTER `mail_copy_address`;
+ALTER TABLE `at_test_config` ADD COLUMN `public_header` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '属于该测试集的公共请求头,只对HTTP/HTTPS有效,json串存储' AFTER `public_data`;
+ALTER TABLE `at_scene_validate_rule` ADD COLUMN `config_id` int(11) NULL DEFAULT NULL COMMENT '所属测试配置' AFTER `validate_id`;
+ALTER TABLE `at_scene_validate_rule` ADD INDEX `at_scene_validate_rule_fk_config_id`(`config_id`) USING BTREE;
+ALTER TABLE `at_scene_validate_rule` ADD CONSTRAINT `at_scene_validate_rule_fk_config_id` FOREIGN KEY (`config_id`) REFERENCES `at_test_config` (`config_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index ef5d1431a0a79a0d874910738eb5c548edc567f8..ed91172c1068fa9586b912fe344d85ae2765ba12 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -1,100 +1,121 @@
-
- yi
-
- login.html
-
-
- 180
-
-
- log4jConfigLocation
- classpath:log4j.properties
-
-
-
-
- org.springframework.web.util.Log4jConfigListener
-
-
-
- contextConfigLocation
- classpath:applicationContext.xml
-
-
- org.springframework.web.context.ContextLoaderListener
-
-
- yi.master.listener.InitWebListener
-
-
-
-
- DruidWebStatFilter
- com.alibaba.druid.support.http.WebStatFilter
-
- exclusions
- *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
-
-
-
+
+ yi
+
+ login.html
+
+
+ 180
+
+
+ log4jConfigLocation
+ classpath:log4j.properties
+
+
+ log4jRefreshInterval
+ 60000
+
+
+ contextConfigLocation
+ classpath:applicationContext.xml
+
+
+
+
+ org.springframework.web.util.Log4jConfigListener
+
+
+
+
+ org.springframework.web.context.ContextLoaderListener
+
+
+
+ yi.master.listener.InitWebListener
+
+
+
+
+
+
+ DruidWebStatFilter
+ com.alibaba.druid.support.http.WebStatFilter
+
+ exclusions
+ *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
+
+
+
+
+ DruidWebStatFilter
+ /*
+
+
+
+
+ DruidStatView
+ com.alibaba.druid.support.http.StatViewServlet
+
+
+
+ DruidStatView
+ /druid/*
+
+
+
+
+ encodingFilter
+ org.springframework.web.filter.CharacterEncodingFilter
+
+ encoding
+ UTF-8
+
+
+ forceEncoding
+ true
+
+
- DruidWebStatFilter
- /*
-
-
-
-
- DruidStatView
- com.alibaba.druid.support.http.StatViewServlet
-
+ encodingFilter
+ /*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ openSessionInView
+ org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
+
+ sessionFactoryBeanName
+ sessionFactory
+
+
+
+ openSessionInView
+ /*
+
+
+
+
+ struts2
+ org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
+
+
+ struts2
+ /*
+
+
-
- DruidStatView
- /druid/*
-
-
-
-
- encodingFilter
- org.springframework.web.filter.CharacterEncodingFilter
-
- encoding
- UTF-8
-
-
- forceEncoding
- true
-
-
-
- encodingFilter
- /*
-
-
- openSessionInView
- org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
-
- sessionFactoryBeanName
- sessionFactory
-
-
-
- openSessionInView
- /*
-
-
- struts2
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
-
-
- struts2
- /*
-
-
-
-
\ No newline at end of file
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html
index 31a217c40aba90c701b36c4abad41010bb83529e..b9827cb10b16f3a3ae0501ae3275464080c77957 100644
--- a/src/main/webapp/index.html
+++ b/src/main/webapp/index.html
@@ -87,9 +87,6 @@
-
-
-