# SMART_Best **Repository Path**: lixiaolv1/smart_-best ## Basic Information - **Project Name**: SMART_Best - **Description**: 做最适合的测试平台-Best - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-03-14 - **Last Updated**: 2023-11-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 特别说明 * 1.当前系统存在很多不稳定性和bug,后续会持续修复和升级 * 2.如有更好ideas的小伙伴可以积极提出需求,争取把SMARTBest做的更好,服务于更多的中小互联网企业质量保障团队 ###### 演示地址(服务配置较差,请善待):http://101.34.153.134/#/login 账号/密码请直接默认登录 ## 1、展示与简介 > 平台界面展示 ![avatar](ReadMe/GIF/系统展示.gif) > 编写一条测试用例并执行调试 ![avatar](ReadMe/GIF/添加用例.gif) > 执行场景的调试 ![avatar](ReadMe/GIF/场景调试.gif) > 开启测试任务 ![avatar](ReadMe/GIF/测试任务.gif) ## 2、概述 ###### 愿景:做最简单、最有效、最务实的接口自动化测试平台 #### 使用注意事项 * 为保障更好的页面兼容性请使用chrome内核的浏览器打开,常见的浏览器有360,chrome等 #### SMART_Best支持哪些功能? * 接口调试,向PostMan一样顺畅 * 场景化的接口测试、调试、断言等 * 支持数据驱动、条件控制器、循环控制器等3中模式的数据逻辑控制器件 * 支持定时任务 * 清晰的测试报告,问题一目了然 #### SMART_Best未来的目标和计划 * 1.核心主旨仍然将专注于零代码的接口自动化测试,在此基础上不断完善各类逻辑控制器件和断言方式,完善对各类复杂业务场景的自动化测试支持 * 2.完善对CI/CD的支持,助力质量卡点的实现 * 3.强化测试报告和统计数据部分,让团队协作更加透明,让管理可更方便的量化 * 4.不断优化用户体验 #### SMART_Best的优点 * 1.编辑、维护、执行、debug、汇报结果、定时任务等一体化操作,化零为整,一站式搞定自动化测试 * 2.零代码,快速上手,人人都可以无门槛地参与到自动化测试中来 * 3.一站式、团队协作化的自动化测试平台,助力您健步如飞,请忘记'版本快速迭代,接口天天都在变'的烦心事 * 4.分离式的开发模式,让维护平台的成本降到最低 #### SMART_Best的核心价值 * 1.解决团队接口自动化测试需求,释放回归测试人力去做更有价值的事情 * 2.零代码,快速上手,快速统一团队成员良莠不齐的自动化测试能力 ## 3、系统组成 #### 3.1 SMART_Best系统组成 ``` ├── SMART_Best │   └── smart_admin - Controller层 │   └── smart_common - common共用类 │   └── smart_framework - JWT鉴权 │   └── smart_msg - 消息通知/推送模块 │   └── smart_engine - 测试引擎 │   └── smart_generator - 代码生成器CRUD │   └── smart_system - Service Mapper │   └── SMARTBest-UI - 前端UI ``` ## 4、部署 #### 4.1、前端部署 ``` 前端部署采用pm2的方式部署,所以需要您的服务器需要有pm2和node环境 1:npm run build:prod 2:启动pm2 pm2 start ./app.js --name smart pm2 stop 0 pm2 delete 0 报错app.js had too many unstable restarts (16) GET ERROR报错 关闭路由的history模式 ``` 1: 基本环境 ``` 1:node环境 v14.0.7以上版本 2:vue cli环境 vue3.12.1 npm install -g @vue/cli@3.12.1 ``` 2:编译 ``` ``` #### 4.2、后端部署 ``` 1:mvn clean package -P prod 2:启动 setsid java -Dloader.path=./lib,config,resources -jar smart-admin.jar 3:日志存储在 /User/yangbin/Desktop/SMART_Best/Log ``` ## 5、功能说明 #### 5.1、系统管理功能介绍 #### 5.2、新功能介绍 ###### 5.2.1、Groovy脚本断言 ![avatar](ReadMe/Assert/Groovy.png) * 1 Groovy脚本断言支持的内置对象 | 编号 | 名称 | 支持方法 | 描述 | | ---- | ---- | ---- | ---- | | 1 | vars | get(String)、put(String,Object)、getResponse() |vars内置对象 | | 2 | status | isSuccess(Boolean)、 rest()|修改代码执行状态成功or失败| ## 6、持续改善 #### 6.1、升级日志 | 编号 | 版本 | 日期 | 描述 | | ---- | ---- | ---- | ---- | | 1 | v1.0.0 | 2020.06.10 |首次提交,还有很多待解决的BUG | | 2 | v1.0.0 | 2020.06.15 |修改数据排序问题| | 3 | v1.0.0 | 2020.06.15 |增加前置处理操作| | 4 | v1.0.0 | 2020.06.15 |增加后置处理操作| | 5 | v1.0.0 | 2020.06.15 |修改测试引擎| | 6 | v1.0.0 | 2020.07.16 |修改首页数据可视化| | 7 | v1.0.0 | 2021.10.21 |增加接口调试功能| | 8 | v1.0.0 | 2021.12.30 |优化前端Tree的展示| | 9 | v1.0.0 | 2022.01.07 |优化Maven打包配置| #### 6.2、BUG列表与计划 | 编号 | 版本 | 日期 | BUG描述 | 是否解决 | 计划 | | ---- | ---- | ---- | ---- | ---- | ---- | | 1 | v1.0.0 | 2020.06.10 | 导入用例功能未完善 | 否 | v1.0.1版本解决 | | 2 | v1.0.0 | 2020.06.10 | 最右侧用例详情页面数据回显异常 | 否 | v1.0.1版本解决 | | 3 | v1.0.0 | 2020.06.10 | 断言全部采用String类型,导致不支持逻辑运算 | 否 | v1.0.1版本解决 | | 4 | v1.0.0 | 2022.01.07 | 条件控制器下的用例不满足条件不会执行但是会记录在报告中 | 否 | v1.0.1版本解决 | | 4 | v1.0.0 | 2022.01.07 | 条件控制器'条件是否并存'回显在首次刷新的情况下无法勾选 | 否 | v1.0.1版本解决 | #### 6.3、新功能 | 编号 | 版本 | 日期 | 描述 | | ---- | ---- | ---- | ---- | | 1 | v1.0.0 | 2022.01.14 |支持执行Groovy脚本的断言方式| ## 安装部署 ### docker安装MySQL8.0 ``` 1.启动Docker docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /home/mysql/:/var/lib/mysql mysql8.0 --lower_case_table_names=1 2.进入mysql容器 docker exec -it mysql /bin/bash 3.连接到mysql服务 mysql -uroot -proot 123456 4.设置root可以远程访问 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 5.刷新权限 FLUSH PRIVILEGES; ``` ## 需要优化的问题 ``` 1.处理params,希望后台/前端可以自动监听把url的参数处理为param数据,并且可以进行基本的url解码 - 已解决 2.创建HTTP请求默认选择GET请求方式 - 已解决 3.场景/用例可在List页面编辑优先级 4.场景/用例可以添加标签 5.场景/用例页面渲染很慢需要优化 6.执行Task任务支持传递优先级进行测试 7.场景/用例页面的基本搜索与高级搜索 8.节点的复制/粘贴功能 Ctrl+C/Ctrl+V功能 -已完成 9.响应Data只用记录执行失败的和重试的 - 已完成 10.HashTree优化 11.执行前置操作步骤的优化,例如执行某一批用例前统一添加登录接口获取token放置在后面执行的所有接口的Header中 12.JMX导入用例 13.Excel导入用例 14.用例下接口的批量删除功能 15.用例的批量强制删除功能 16.场景组下面有用例的判断,来确认这个场景是否支持被删除 17.首页`接口执行情况`的优化 18.首页`实时运行概况(最近10条)`的完善 19.首页`历史统计(接口)`的完善 20.邮件报告`触发原因`的修复 21.测试报告增加平均耗时统计 - 暂时不做 22.用例List界面`接口数`数据错误的统计 - 已修复 23.报告页面点击`执行用例组`可以跳转到对应的用例编辑页面 ```