提交 92e781c6 authored 作者: mry's avatar mry

feat(web): 加入了动作提示

上级 28d2fb5d
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
select * from kt_test_case c where c.project_id = 25 and c.des like '%会议室库管理%' select * from kt_test_case c where c.project_id = 25 and c.des like '%会议室库管理%'
``` ```
- 出现异常时,报告有可能生成不出来(已解决) - 如果执行过程中,自动测试项目本身报错,会导致报告无法生成
- 执行记录中,log日志出现了长度过长而报错的问题(将kt_execution_record表中的log类型改成了longtext) - 执行记录中,log日志出现了长度过长而报错的问题(将kt_execution_record表中的log类型改成了longtext)
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
### 3. 使用情况 ### 3. 使用情况
- 在会议室项目中,后置动作删除新增的会议可以成功,但是会议室库无法成功 - 在会议室项目中,后置动作删除新增的会议可以成功,但是会议室库无法成功
- 对项目不了解时,使用比较坎坷 - 对项目不了解时,使用比较坎坷
- 如果需要多个接口联调时,目前不方便 - 如果需要多个接口联调时,目前不方便
- 接口中掺杂着UI,无法测试 - 接口中掺杂着UI,无法测试
...@@ -50,24 +50,19 @@ ...@@ -50,24 +50,19 @@
- 修改会议状态(2.发布,4.结束)接口中,swagger测试时,可以修改,在自动测试项目中无法修改(无错误信息,正常运行) - 修改会议状态(2.发布,4.结束)接口中,swagger测试时,可以修改,在自动测试项目中无法修改(无错误信息,正常运行)
- 获取当前会议的不过期二维码接口中,返回值是一张图片,自动测试项目无法返回图片(同样的还有文件下载之类) - 获取当前会议的不过期二维码接口中,返回值是一张图片,自动测试项目无法返回图片(同样的还有文件下载之类)
- 动作中,删除的http行为无效,但是调用删除用例时,可以正常执行(项目无报错) - 动作中,删除的http行为无效,但是调用删除用例时,可以正常执行(项目无报错)
- 目前需要考虑的情况太多,比如新增要考虑到删除,修改要考虑先新增再修改再删除,删除要考虑新增才能不影响原数据(不然会存在清空数据的情况 - 目前需要考虑的情况太多,比如新增要考虑到删除,修改要考虑先新增再修改再删除,删除要考虑新增才能不影响原数据(不然可能会出现清空数据的情况,遇到过一直新增的情况,也可能出现一直删除
- cha接口,一直是失败,但是swagger可以查到(无报错) - cha接口,一直是失败,但是swagger可以查到(无报错)
- 执行器里,sql查询时,不知道需要查询的项目id时多少,这样会导致不知道sql语句如何写 - 执行器里,sql查询时,不知道需要查询的项目id时多少,这样会导致不知道sql语句如何写
- 执行器中,执行完第一次,紧接着执行第二次时,会报错 - 执行器执行完成之前如果关闭了,提示不明显,作为用户,可能不知道现在是什么情况。不点开的话颜色提示的圆圈不会出现,只有接口失败时,外部有提示
- 执行器执行完成之前如果关闭了,没有任何提示的地方,作为用户,可能不知道现在是什么情况
- 生成的报告,要考虑到返回的内容中可能出翔前端的标签,要进行处理,不然报告会乱套 - 生成的报告,要考虑到返回的内容中可能出翔前端的标签,要进行处理,不然报告会乱套
- 执行器执行时,默认环境有时候选择不上,并且这种情况下测试会全部报错 - 执行器执行时,默认环境有时候选择不上,并且这种情况下测试会全部报错(后续测试中没有出现)
- 用例结果集不清楚,还是需要打开swagger,查看结果集(swagger解析中已经解析出了结果集)
### 3. 测试接口总结 ### 3. 测试接口总结
todo - 会议智能管理系统总接口数141个,目前自动测试可以覆盖的接口大概25%
一共有多少个接口?多少可以进行接口测试?
可以进行接口测试的接口用多少(给出一个大概百分比) 是可以使用 自动化测试平台测试的?
在测试的过程中,有哪些功能点可以进行优化?
- 会议智能管理系统总接口数141个,目前自动测试可以覆盖的接口大概20% 可以测试的接口:
需要测试的:
- 会前,会中 - 会前,会中
- [日程相关接口](http://120.27.238.48:6888/swagger-ui.html#/日程相关接口) - [日程相关接口](http://120.27.238.48:6888/swagger-ui.html#/日程相关接口)
...@@ -75,3 +70,6 @@ todo ...@@ -75,3 +70,6 @@ todo
- [会议室相关文档](http://120.27.238.48:6888/swagger-ui.html#/会议室相关文档) - [会议室相关文档](http://120.27.238.48:6888/swagger-ui.html#/会议室相关文档)
- [会议相关文档](http://120.27.238.48:6888/swagger-ui.html#/会议相关文档) - [会议相关文档](http://120.27.238.48:6888/swagger-ui.html#/会议相关文档)
- [用户相关文档](http://120.27.238.48:6888/swagger-ui.html#/用户相关文档) - [用户相关文档](http://120.27.238.48:6888/swagger-ui.html#/用户相关文档)
具体测试的接口已经写好
...@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.EnvStaticName; import org.matrix.autotest.entity.EnvStaticNameTips;
import org.matrix.autotest.utils.PageTools; import org.matrix.autotest.utils.PageTools;
import org.matrix.database.entity.Environment; import org.matrix.database.entity.Environment;
import org.matrix.database.service.IEnvironmentService; import org.matrix.database.service.IEnvironmentService;
...@@ -149,18 +149,18 @@ public class EnvironmentController { ...@@ -149,18 +149,18 @@ public class EnvironmentController {
*/ */
@ApiOperation(value = "环境静态变量语法提示") @ApiOperation(value = "环境静态变量语法提示")
@GetMapping("/staticName") @GetMapping("/staticName")
public ResponseEntity<List<EnvStaticName>> getStaticName(@RequestParam Long projectId) { public ResponseEntity<List<EnvStaticNameTips>> getStaticNameTips(@RequestParam Long projectId) {
List<EnvStaticName> list = new ArrayList<>(); List<EnvStaticNameTips> list = new ArrayList<>();
List<Environment> results = Optional.ofNullable(environmentService.list(Wrappers.lambdaQuery(Environment.class) List<Environment> results = Optional.ofNullable(environmentService.list(Wrappers.lambdaQuery(Environment.class)
.eq(Environment::getProjectId, projectId))) .eq(Environment::getProjectId, projectId)))
.orElse(new ArrayList<>()); .orElse(new ArrayList<>());
for (Environment result : results) { for (Environment result : results) {
Set<String> staNames = result.getVariable().keySet(); Set<String> staNames = result.getVariable().keySet();
for (String staName : staNames) { for (String staName : staNames) {
EnvStaticName envStaticName = new EnvStaticName(); EnvStaticNameTips envStaticNameTips = new EnvStaticNameTips();
envStaticName.setStaName(staName); envStaticNameTips.setStaName(staName);
envStaticName.setEnvName(result.getName()); envStaticNameTips.setEnvName(result.getName());
list.add(envStaticName); list.add(envStaticNameTips);
} }
} }
return ResponseEntity.ok(list); return ResponseEntity.ok(list);
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.MoveTips;
import org.matrix.autotest.utils.PageTools; import org.matrix.autotest.utils.PageTools;
import org.matrix.database.entity.Action; import org.matrix.database.entity.Action;
import org.matrix.database.entity.Move; import org.matrix.database.entity.Move;
...@@ -228,4 +229,19 @@ public class MoveController { ...@@ -228,4 +229,19 @@ public class MoveController {
: CommonResult.failed("删除失败或不存在"); : CommonResult.failed("删除失败或不存在");
} }
@ApiOperation(value = "行为动作的提示信息")
@GetMapping("/staticName")
public ResponseEntity<List<MoveTips>> getMoveTips(@RequestParam Long projectId) {
List<MoveTips> list = new ArrayList<>();
List<Move> results = Optional.ofNullable(moveService.list(Wrappers.lambdaQuery(Move.class)
.eq(Move::getProjectId, projectId)))
.orElse(new ArrayList<>());
for (Move result : results) {
MoveTips moveTips = new MoveTips();
moveTips.setId(result.getId());
moveTips.setName(result.getName());
list.add(moveTips);
}
return ResponseEntity.ok(list);
}
} }
...@@ -16,7 +16,7 @@ import lombok.NoArgsConstructor; ...@@ -16,7 +16,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@ApiModel(value = "环境中的静态变量") @ApiModel(value = "环境中的静态变量")
public class EnvStaticName { public class EnvStaticNameTips {
@ApiModelProperty(value = "环境名称") @ApiModelProperty(value = "环境名称")
private String envName; private String envName;
......
package org.matrix.autotest.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 行为动作的提示信息
*
* @author mruny
* @create 2022/5/12 16:51:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "行为动作的提示信息")
public class MoveTips {
@ApiModelProperty(value = "行为id")
private Long id;
@ApiModelProperty(value = "行为提示")
private String name;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论