瀏覽代碼

1、新增测试用例自动生成模块

郭超 3 年之前
父節點
當前提交
8202a366bf

+ 16 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/TestActionDao.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.TestActionPO;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface TestActionDao extends CrudRepository<TestActionPO, Integer>{
+
+    Optional<TestActionPO> findById(int id);
+
+    List<TestActionPO> findByTaskCode(String taskCode);
+}

+ 1 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java

@@ -50,6 +50,7 @@ public class CrowdTestTask {
     private List<TaskToUser> acceptedUserList = new ArrayList<>();
     private EndPoint endPoint;
     private String exportUrl;
+    private int needTestcase;
 
     /**
      * 接收任务(测评机构)

+ 19 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/TestAction.java

@@ -0,0 +1,19 @@
+package com.mooctest.crowd.domain.domainobject;
+
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 测试操作类
+ */
+@Data
+@NoArgsConstructor
+public class TestAction {
+    public String activityTarget;
+    public String activitySource;
+    public String description;
+    public String screenShot;
+    public int type;
+    public Boolean same;
+}

+ 13 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/TestCase.java

@@ -0,0 +1,13 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+
+@Data
+@NoArgsConstructor
+public class TestCase {
+    public ArrayList<TestAction> testActions;
+}
+

+ 3 - 0
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestTaskPO.java

@@ -84,4 +84,7 @@ CrowdTestTaskPO {
 
     @Column(name = "CTT_EXPORT_URL")
     private String exportUrl;
+
+    @Column(name = "CTT_NEED_TESTCASE")
+    private int needTestcase;
 }

+ 43 - 0
core/src/main/java/com/mooctest/crowd/domain/model/TestActionPO.java

@@ -0,0 +1,43 @@
+package com.mooctest.crowd.domain.model;
+
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+
+/**
+ * 测试操作类
+ */
+@Data
+@Entity(name = "test_action")
+public class TestActionPO {
+    @Id
+    @Column(name = "TA_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    public int id;
+
+    @Column(name = "TA_ACTIVITY_TARGET")
+    public String activityTarget;
+
+    @Column(name = "TA_ACTIVITY_SOURCE")
+    public String activitySource;
+
+    @Column(name = "TA_DESCRIPTION")
+    public String description;
+
+    @Column(name = "TA_SCREEN_SHOT")
+    public String screenShot;
+
+    @Column(name = "TA_TYPE")
+    public int type;
+
+    @Column(name = "TA_SAME")
+    public int same;
+
+    @Column(name = "TA_TASK_CODE")
+    public String taskCode;
+
+    @Column(name = "TA_COMPLETE_COUNT")
+    public String completeCount;
+}

+ 3 - 0
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestTaskCommand.java

@@ -44,6 +44,8 @@ public class CrowdTestTaskCommand {
 
     private int participantCount;
 
+    private int needTestcase;
+
 //    private int collaborativeType;
 //
 //    private String threePageUrl;
@@ -71,6 +73,7 @@ public class CrowdTestTaskCommand {
         crowdTestTask.setDistributionType(resource);
         crowdTestTask.setEvaluationAgencyId(institution);
         crowdTestTask.setType(type);
+        crowdTestTask.setNeedTestcase(needTestcase);
         crowdTestTask.setQuotedPrice(quotePrice);
         crowdTestTask.setFixedPrice(fixedPrice);
         crowdTestTask.setRequirementFile(requirementFile);

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdTaskVO.java

@@ -65,6 +65,7 @@ public class CrowdTaskVO implements Serializable{
     private String acceptedPassword;
     @Autowired
     private DataCache dataCache;
+    private int needTestcase;
 
     public CrowdTaskVO(CrowdTestTask task){
         BeanUtils.copyProperties(task, this);
@@ -94,6 +95,7 @@ public class CrowdTaskVO implements Serializable{
         createTime = task.getCreateTime();
         participantHasCommittedCount = task.getParticipantHasCommittedCount();
         exportUrl = task.getExportUrl();
+        needTestcase = task.getNeedTestcase();
         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try {
             Date date = df.parse(df.format(task.getCreateTime()));

+ 99 - 46
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java

@@ -14,6 +14,7 @@ import com.mooctest.crowd.domain.exception.FileIsEmptyException;
 import com.mooctest.crowd.domain.model.ApplicationTypePO;
 import com.mooctest.crowd.domain.model.EndPointPO;
 import com.mooctest.crowd.domain.model.FieldPO;
+import com.mooctest.crowd.domain.model.TestActionPO;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.domain.repository.CrowdTestTaskRepo;
 import com.mooctest.crowd.domain.repository.UserRepo;
@@ -87,6 +88,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     TestTypeDao testTypeDao;
 
     @Autowired
+    TestActionDao testActionDao;
+
+    @Autowired
     private UserRepo userRepo;
 
     @Autowired
@@ -125,6 +129,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     @Value("${baseUrl.service.crowdIndex}")
     private String crowdServiceIndexBaseUrl;
 
+    @Value("${baseUrl.service.testcase}")
+    private String testcaseServiceBaseUrl;
+
     @Override
     public List<CrowdTaskVO> findMoreHotTasks() {
         return viewMediator.findMoreHotTasks();
@@ -140,7 +147,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
                 .sorted(Comparator.comparing(CrowdTaskVO::getAcceptedCount)
                         .thenComparing(CrowdTaskVO::getStatus).thenComparing(CrowdTaskVO::getCreateTime).reversed()).collect(Collectors.toList());
 
-        if(taskCount != 0){
+        if (taskCount != 0) {
             taskVOS = taskVOS.stream().limit(taskCount).collect(Collectors.toList());
         }
         return taskVOS;
@@ -167,8 +174,8 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         });
 
         // 过滤掉已结束、已截止、已删除的任务
-        List<CrowdTaskVO> crowdTaskVOS = taskListInProject.stream().filter(crowdTestTask -> crowdTestTask.getStatus()!= CrowdTestTaskStatus.HAS_FINISHED
-                && crowdTestTask.getStatus()!=CrowdTestTaskStatus.HAS_TIME_OUT && crowdTestTask.getIsDeleted()== DeletedStatus.isNotDeleted).map(task -> {
+        List<CrowdTaskVO> crowdTaskVOS = taskListInProject.stream().filter(crowdTestTask -> crowdTestTask.getStatus() != CrowdTestTaskStatus.HAS_FINISHED
+                && crowdTestTask.getStatus() != CrowdTestTaskStatus.HAS_TIME_OUT && crowdTestTask.getIsDeleted() == DeletedStatus.isNotDeleted).map(task -> {
             // 判断任务是否截止
             if (task.getDeadTime().getTime() <= System.currentTimeMillis() && task.getStatus() < CrowdTestTaskStatus.HAS_FINISHED) {
                 task.setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);
@@ -180,7 +187,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
             crowdTaskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getTitle().contains(keyword)).collect(Collectors.toList());
         }
 
-        if (!testTypeCode.equals("")){
+        if (!testTypeCode.equals("")) {
             crowdTaskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getServiceType().equals(testMap.get(testTypeCode))).collect(Collectors.toList());
         }
         return crowdTaskVOS;
@@ -195,7 +202,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
                 .sorted(Comparator.comparing(CrowdTaskVO::getCreateTime)
                         .thenComparing(CrowdTaskVO::getAcceptedCount).thenComparing(CrowdTaskVO::getStatus).reversed()).collect(Collectors.toList());
 
-        if(taskCount != 0){
+        if (taskCount != 0) {
             taskVOS = taskVOS.stream().limit(taskCount).collect(Collectors.toList());
         }
         return taskVOS;
@@ -215,7 +222,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     @Override
     public void jumpPublicTesting(String projectCode, String taskCode, Long userId) {
-        viewMediator.jumpPublicTesting(projectCode,taskCode,userId);
+        viewMediator.jumpPublicTesting(projectCode, taskCode, userId);
     }
 
     @Override
@@ -263,17 +270,21 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         // 配置endpoint
         EndPoint endPoint = task.getEndPoint();
         this.createTaskToCrowdService(command, userId, task, endPoint);
+        // 校验是否需要自动生成测试用例
+        this.needTestcase(task);
+
         task.setEndPoint(endPoint);
-        project.addTask(task);
-        projectRepo.saveCrowdTestProject(project);
-        return getTaskDetails(projectCode, taskCode, userId);
+//        project.addTask(task);
+//        projectRepo.saveCrowdTestProject(project);
+//        return getTaskDetails(projectCode, taskCode, userId);
+        return getTaskDetails(projectCode, "TASK-JKCS-2022030715008", userId);
     }
 
     private void createTaskToCrowdService(CrowdTestTaskCommand command, Long userId, CrowdTestTask task, EndPoint endPoint) {
         // 众测服务同步新建任务
-        if(command.getEndPoint().getThreePageUrl() != null && !command.getEndPoint().getThreePageUrl().equals("")){
+        if (command.getEndPoint().getThreePageUrl() != null && !command.getEndPoint().getThreePageUrl().equals("")) {
             String endPointData = this.createTaskToCrowdService(command.getName(), command.getDesc(), command.getEndPoint().getCollaborativeType(), command.getEndPoint().getThreePageUrl());
-            if(endPointData.equals("")){
+            if (endPointData.equals("")) {
                 throw new BaseException("创建失败,众测端调用出错");
             }
             Map<String, Object> dataMap = (Map<String, Object>) JSON.parse(endPointData);
@@ -308,17 +319,17 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         // 判断endpoint是否有修改
         EndPoint endPoint = task.getEndPoint();
         EndPoint commandEndPoint = command.getEndPoint();
-        if(endPoint != null && commandEndPoint != null){
+        if (endPoint != null && commandEndPoint != null) {
             // 修改前后都是 众测测试类型任务
-            if(!task.getName().equals(command.getName()) || endPoint.getCollaborativeType() != commandEndPoint.getCollaborativeType()
-                    || !endPoint.getThreePageUrl().equals(commandEndPoint.getThreePageUrl())){
+            if (!task.getName().equals(command.getName()) || endPoint.getCollaborativeType() != commandEndPoint.getCollaborativeType()
+                    || !endPoint.getThreePageUrl().equals(commandEndPoint.getThreePageUrl())) {
                 // 更新不一样的值
                 endPoint.setCollaborativeType(commandEndPoint.getCollaborativeType());
                 endPoint.setThreePageUrl(commandEndPoint.getThreePageUrl());
 
                 // 任务名称、协作模式、三级菜单被修改,则在众测中新建任务
                 String endPointData = this.createTaskToCrowdService(command.getName(), command.getDesc(), commandEndPoint.getCollaborativeType(), commandEndPoint.getThreePageUrl());
-                if(endPointData.equals("")){
+                if (endPointData.equals("")) {
                     throw new BaseException("创建失败,众测端调用出错");
                 }
                 Map<String, Object> dataMap = (Map<String, Object>) JSON.parse(endPointData);
@@ -330,7 +341,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
                 endPoint.setUrl(reportUrl);
             }
             updateTask.setEndPoint(endPoint);
-        }else if(endPoint == null && commandEndPoint != null){
+        } else if (endPoint == null && commandEndPoint != null) {
             // 修改前是基本测试类型,修改成众测测试类型,需要调用众测新建测试任务
             this.createTaskToCrowdService(command, userId, updateTask, commandEndPoint);
             updateTask.setEndPoint(commandEndPoint);
@@ -345,7 +356,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     }
 
     private void checkIsProjectOfReceiver(Long userId, CrowdTestProject project) {
-        if(!userId.equals(project.getRegionalManagerId())){
+        if (!userId.equals(project.getRegionalManagerId())) {
             throw new BaseException("此用户无操作任务的权限!");
         }
     }
@@ -356,16 +367,54 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         params.add("description", desc);
         params.add("collaborativeType", collaborativeType + "");
         params.add("threePageUrl", threePageUrl);
-        params.add("fileName", threePageUrl.substring(threePageUrl.lastIndexOf("/")+1));
+        params.add("fileName", threePageUrl.substring(threePageUrl.lastIndexOf("/") + 1));
         RestTemplate restTemplate = new RestTemplate();
         restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
         log.info("调用众测端新建众测任务");
         ResponseEntity<String> responseEntity = restTemplate.postForEntity
-                (reviewServiceBaseUrl  + "/addCrowdTaskDefault", params, String.class);
-        if (responseEntity.getStatusCode().equals(HttpStatus.OK)){
+                (reviewServiceBaseUrl + "/addCrowdTaskDefault", params, String.class);
+        if (responseEntity.getStatusCode().equals(HttpStatus.OK)) {
+            String responseEntityBody = responseEntity.getBody();
+            Map<String, Object> resultMap = (Map<String, Object>) JSON.parse(responseEntityBody);
+            if ((int) resultMap.get("status") == 200) {
+                return resultMap.get("data").toString();
+            }
+        }
+        return "";
+    }
+
+    private void needTestcase(CrowdTestTask task) {
+        if (task.getNeedTestcase() == 1) {
+            String testcaseData = this.generateTestcase();
+            System.out.println(testcaseData);
+            List<TestCase> testcaseList = (List<TestCase>) JSON.parse(testcaseData);
+            System.out.println(testcaseList.get(0).testActions);
+            // 进行数据库存储
+//            for (int i = 0; i < testcaseList.size(); i++) {
+//                System.out.println(testcaseList.get(i).testActions);
+//                testcaseList.get(i).testActions.stream().map(testAction -> {
+//                    testAction.taskCode = task.getCode();
+//                    testActionDao.save(Converter.convert(TestActionPO.class, testAction));
+//                    return testAction;
+//                });
+//            }
+
+        }
+    }
+
+    private String generateTestcase() {
+        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+        params.add("apkFileUrl", "apkFileUrl");
+        params.add("taskId", "70");
+        RestTemplate restTemplate = new RestTemplate();
+        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
+        log.info("调用用例生成服务生成测试用例");
+        ResponseEntity<String> responseEntity = restTemplate.postForEntity
+                (testcaseServiceBaseUrl + "/api/testcase/", params, String.class);
+        if (responseEntity.getStatusCode().equals(HttpStatus.OK)) {
             String responseEntityBody = responseEntity.getBody();
             Map<String, Object> resultMap = (Map<String, Object>) JSON.parse(responseEntityBody);
-            if((int)resultMap.get("status") == 200){
+            if ((int) resultMap.get("code") == 200) {
                 return resultMap.get("data").toString();
             }
         }
@@ -388,25 +437,25 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     public String getForEntityReportUrl(Long userId, CrowdTestTask task, EndPoint endPoint) {
         int roleId = 0; // 默认为0学生 1为教师
         User user = userRepo.getInfoAndRolesByID(userId);
-        if(user.getRoleList().stream().anyMatch(role -> role.getName().equals(RoleType.REGIONAL_MANAGER.getName())
-                || role.getName().equals(RoleType.SYSTEM_ADMIN.getName()))){
+        if (user.getRoleList().stream().anyMatch(role -> role.getName().equals(RoleType.REGIONAL_MANAGER.getName())
+                || role.getName().equals(RoleType.SYSTEM_ADMIN.getName()))) {
             roleId = 1;
         }
-        String url = crowdServiceBaseUrl  + "/Bug/api/analyze/detailToToken?examId=" + endPoint.getExamId() + "&caseId=" + endPoint.getCaseId() +
+        String url = crowdServiceBaseUrl + "/Bug/api/analyze/detailToToken?examId=" + endPoint.getExamId() + "&caseId=" + endPoint.getCaseId() +
                 "&userId=" + String.valueOf(userId) + "&roleId=" + roleId + "&beginTime=" + String.valueOf(task.getCreateTime().getTime()) +
                 "&endTime=" + String.valueOf(task.getDeadTime().getTime());
 
         log.info("调用众测服务接口获取reportUrl,Get请求:" + url);
         ResponseEntity<Map> responseEntity = restTemplate.getForEntity(url, Map.class);
 
-        if (responseEntity.getStatusCode().equals(HttpStatus.OK)){
+        if (responseEntity.getStatusCode().equals(HttpStatus.OK)) {
             Map resultMap = responseEntity.getBody();
-            if(resultMap.get("result").equals("success")){
+            if (resultMap.get("result").equals("success")) {
                 String token = resultMap.get("token").toString();
                 String writeReportUrl = crowdServiceIndexBaseUrl + token;
                 log.info("调用众测服务接口成功,报告填写url为:" + url);
                 return writeReportUrl;
-            }else if (resultMap.get("result").equals("fail")){
+            } else if (resultMap.get("result").equals("fail")) {
                 log.info("调用众测服务接口成功,但是接口返回fail");
                 return "";
             }
@@ -438,7 +487,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         CrowdTestTask task = project.getTask(taskCode);
         // 是否为第一个接包的人标识
         boolean isFirstAcceptPeople = false;
-        if(task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED){
+        if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
             isFirstAcceptPeople = true;
         }
 
@@ -447,7 +496,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
         // 判断是否为第三方任务,如果是则管理员自身也是一个参与者
         Optional<EndPointPO> endPointPOOptional = endPointDao.findByTaskCode(task.getCode());
-        if(endPointPOOptional.isPresent() && isFirstAcceptPeople){
+        if (endPointPOOptional.isPresent() && isFirstAcceptPeople) {
             task.receive(project.getRegionalManagerId(), true);
 //            project.setJoinCount(project.getJoinCount() + 1);
         }
@@ -458,7 +507,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     @Override
     public void rejectDirectionalTask(String projectCode, String taskCode, Long userId) {
-        CrowdTestProject project = projectRepo.getByProjectCodeAndTaskCode(projectCode,taskCode);
+        CrowdTestProject project = projectRepo.getByProjectCodeAndTaskCode(projectCode, taskCode);
         CrowdTestTask task = project.getTask(taskCode);
         task.reject(userId);
 //        project.setRestPrice(project.getRestPrice() + task.getQuotedPrice());
@@ -522,7 +571,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         String fileDirectoryPath = fileSaveRootPath + UploadType.EXPORT_TASK_FILE;
         File fileDirectory = new File(fileDirectoryPath);
         // 如果文件夹不存在,则新建一个
-        if(!fileDirectory.exists()){
+        if (!fileDirectory.exists()) {
             fileDirectory.mkdirs();
         }
 
@@ -532,7 +581,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         log.info("文件路径为:" + filePath);
         File file = new File(filePath);
         // 如果文件不存在,则新建一个
-        if(!file.exists()){
+        if (!file.exists()) {
             try {
                 file.createNewFile();
             } catch (IOException e) {
@@ -549,7 +598,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         String downloadPath = fileDirectoryPath + fileNameCode + ".zip";
         File downloadFile = new File(downloadPath);
         String downloadUrl = downloadPath;
-        try{
+        try {
             log.info("----------------开始压缩文件----------------");
             net.lingala.zip4j.core.ZipFile zipFile = new net.lingala.zip4j.core.ZipFile(downloadFile);
             ZipParameters parameters = new ZipParameters();
@@ -562,7 +611,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
             FileInputStream inputStream = new FileInputStream(downloadFile);
             MultipartFile multipartFile = new MockMultipartFile(downloadFile.getName(), downloadFile.getName(), "", inputStream);
             // 文件上传至oss
-            if(usingOss){
+            if (usingOss) {
                 downloadUrl = uploadService.uploadTask(multipartFile, userId, 0);
             }
         } catch (IOException e) {
@@ -576,6 +625,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     /**
      * 将json字符串写入文件中
+     *
      * @param file
      * @param projectAndTaskJsonData
      */
@@ -587,9 +637,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
             writer.write(projectAndTaskJsonData);
         } catch (IOException e) {
             e.printStackTrace();
-        }finally {
+        } finally {
             try {
-                if(writer != null){
+                if (writer != null) {
                     writer.close();
                 }
             } catch (IOException e) {
@@ -611,7 +661,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         // 将对象VO转成CrowdTestProject
         CrowdTestProject crowdTestProject = projectDetailsDTO.getProjectDetails().toCrowdTestProject();
         User user = userRepo.getInfoAndRolesAndRegionalMangerByID(userId);
-        if(user.getRegionalManager() == null){
+        if (user.getRegionalManager() == null) {
             throw new BaseException("此用户不是与区管理员,无此操作权限!");
         }
 
@@ -636,6 +686,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     /**
      * 为项目信息赋予导入的默认值
+     *
      * @param crowdTestProject
      * @param user
      */
@@ -663,17 +714,17 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
         // 判断领域类型是否存在
         Optional<FieldPO> fieldPO = fieldDao.findByName(crowdTestProject.getFieldType());
-        if(fieldPO.isPresent()){
+        if (fieldPO.isPresent()) {
             crowdTestProject.setFieldType(fieldPO.get().getCode());
-        }else{
+        } else {
             // 如果没有赋值为第一种测试类型
             crowdTestProject.setFieldType(fieldDao.findAll().get(0).getCode());
         }
         // 判断应用类型是否存在
         Optional<ApplicationTypePO> applicationTypePO = applicationTypeDao.findByName(crowdTestProject.getApplicationType());
-        if(applicationTypePO.isPresent()){
+        if (applicationTypePO.isPresent()) {
             crowdTestProject.setApplicationType(applicationTypePO.get().getCode());
-        }else{
+        } else {
             // 如果没有赋值为第一种测试类型
             crowdTestProject.setApplicationType(applicationTypeDao.findAll().get(0).getCode());
         }
@@ -681,6 +732,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     /**
      * 为任务信息赋予导入的默认值
+     *
      * @param projectCode
      * @param crowdTestTask
      */
@@ -695,9 +747,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
         crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
         // 判断默认的测试类型MCZC是否存在
-        if(testTypeDao.findByCode(taskTypeCode).isPresent()){
+        if (testTypeDao.findByCode(taskTypeCode).isPresent()) {
             crowdTestTask.setType(taskTypeCode);
-        }else{
+        } else {
             // 如果没有赋值为第一种测试类型
             crowdTestTask.setType(testTypeDao.findAll().get(0).getCode());
         }
@@ -705,12 +757,13 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     /**
      * 将文件内容读出变成字符串
+     *
      * @param file
      * @return
      */
     @NotNull
     public String fileToString(MultipartFile file) {
-        if(file.isEmpty()){
+        if (file.isEmpty()) {
             throw new FileIsEmptyException();
         }
 
@@ -720,10 +773,10 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         try {
             reader = new BufferedReader(new InputStreamReader(file.getInputStream(), "UTF-8"));
             String lineString;
-            while((lineString = reader.readLine()) != null){
+            while ((lineString = reader.readLine()) != null) {
                 stringBuffer.append(lineString);
             }
-            if(reader != null){
+            if (reader != null) {
                 reader.close();
             }
         } catch (UnsupportedEncodingException e) {

+ 2 - 1
site/src/main/resources/application.yml

@@ -102,13 +102,14 @@ baseUrl:
     review: http://127.0.0.1:9004
     crowd: http://127.0.0.1:8090
     crowdIndex: http://localhost:8000/edit?primaryColor=%231890ff&fixSiderbar=true&colorWeak=false&title=%E4%BC%97%E6%B5%8B%E6%9C%8D%E5%8A%A1%E7%B3%BB%E7%BB%9F&pwa=false&token=
+    testcase: http://127.0.0.1:8081
 
 ---
 # 开发版本
 spring:
   profiles: dev
   datasource:
-    url: jdbc:mysql://106.14.81.62:3308/crowd-test-service-private?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://106.14.81.62:3308/crowd-test-service-testcase?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
     username: root
     password: Customs2019
   redis: