提交 c30917f8 authored 作者: 黄承天's avatar 黄承天

完成测试系统这一块相关功能接口

增加测试系统的新增和查询接口 增加根据测试系统id查询测试用例的接口 增加根据测试系统id批量执行其所有测试用例的接口
上级 f70f2272
package com.zjty.automatedtesting.controller;
import com.zjty.automatedtesting.pojo.test.System;
import com.zjty.automatedtesting.service.SystemService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection")
@RequestMapping("/system")
@RestController
@Api(tags = "测试系统")
@CrossOrigin
public class SystemController {
@Autowired
SystemService systemService;
@ApiOperation(value = "新增测试系统.")
@PostMapping(value="/create")
public ResponseEntity<System> create(@RequestBody System system){
system = systemService.create(system);
return ResponseEntity.ok(system);
}
@ApiOperation(value = "根据id获取测试系统.")
@GetMapping(value="/get/{id}")
public ResponseEntity<System> findById(@PathVariable String id){
System system = systemService.findById(id);
return ResponseEntity.ok(system);
}
}
...@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @author C * @author C
...@@ -31,38 +32,52 @@ public class TestCaseController { ...@@ -31,38 +32,52 @@ public class TestCaseController {
CaseService caseService; CaseService caseService;
@ApiOperation(value = "提供测试用例数据.执行测试并返回测试结果报告.") @ApiOperation(value = "提供测试用例数据.执行测试并返回测试结果报告.")
@PostMapping(value="/execute") @PostMapping(value = "/execute")
public ResponseEntity<ReportVo> execute(@RequestBody CaseVo caseVo){ public ResponseEntity<ReportVo> execute(@RequestBody CaseVo caseVo) {
ReportVo execute = seleniumService.execute(caseVo); ReportVo execute = seleniumService.execute(caseVo);
return ResponseEntity.ok(execute); return ResponseEntity.ok(execute);
} }
@ApiOperation(value = "保存测试用例.",notes = "不附带id为新增 附带id为修改") @ApiOperation(value = "根据测试系统id.执行改测试系统下的所有测试用例并返回测试结果报告的集合.")
@PostMapping(value="/save") @GetMapping(value = "/execute/system/{systemId}")
public ResponseEntity<Map<String,String>> save(@RequestBody CaseVo caseVo){ public ResponseEntity<List<ReportVo>> execute(@PathVariable String systemId) {
List<CaseVo> caseVoList = caseService.findBySystemId(systemId);
return ResponseEntity.ok(caseVoList.stream()
.map(caseVo -> seleniumService.execute(caseVo))
.collect(Collectors.toList()));
}
@ApiOperation(value = "保存测试用例.", notes = "不附带id为新增 附带id为修改")
@PostMapping(value = "/save")
public ResponseEntity<Map<String, String>> save(@RequestBody CaseVo caseVo) {
caseService.save(caseVo); caseService.save(caseVo);
return ResponseEntity.ok(ImmutableMap.of("message","success")); return ResponseEntity.ok(ImmutableMap.of("message", "success"));
} }
@ApiOperation(value = "删除测试用例.") @ApiOperation(value = "删除测试用例.")
@DeleteMapping(value="/delete/{id}") @DeleteMapping(value = "/delete/{id}")
public ResponseEntity<Map<String,String>> findTestText(@PathVariable Integer id){ public ResponseEntity<Map<String, String>> findTestText(@PathVariable Integer id) {
caseService.delete(id); caseService.delete(id);
return ResponseEntity.ok(ImmutableMap.of("message","success")); return ResponseEntity.ok(ImmutableMap.of("message", "success"));
} }
@ApiOperation(value = "获取全部测试用例.") @ApiOperation(value = "获取全部测试用例.")
@GetMapping(value="/get") @GetMapping(value = "/get")
public ResponseEntity<List<CaseVo>> get(){ public ResponseEntity<List<CaseVo>> get() {
return ResponseEntity.ok(caseService.findAll()); return ResponseEntity.ok(caseService.findAll());
} }
@ApiOperation(value = "根据测试系统id查询指定测试系统下的所有测试用例.")
@GetMapping(value = "/get/system/{systemId}")
public ResponseEntity<List<CaseVo>> getById(@PathVariable String systemId) {
return ResponseEntity.ok(caseService.findBySystemId(systemId));
}
@ApiOperation(value = "获取单个测试用例.") @ApiOperation(value = "获取单个测试用例.")
@GetMapping(value="/get/{id}") @GetMapping(value = "/get/{id}")
public ResponseEntity<CaseVo> getById(@PathVariable Integer id){ public ResponseEntity<CaseVo> getById(@PathVariable Integer id) {
return ResponseEntity.ok(caseService.findById(id)); return ResponseEntity.ok(caseService.findById(id));
} }
} }
...@@ -24,15 +24,26 @@ public class Case { ...@@ -24,15 +24,26 @@ public class Case {
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id; private Integer id;
/**
* 所属测试系统id
*/
private String systemId;
/** /**
* 标题 * 标题
*/ */
private String title; private String title;
/** /**
* 浏览器 * 浏览器
*/ */
private String browser; private String browser;
/**
* 运行环境
*/
private String environment;
/** /**
* 起始网站 * 起始网站
*/ */
......
...@@ -18,30 +18,42 @@ public class CaseVo { ...@@ -18,30 +18,42 @@ public class CaseVo {
* 主键 * 主键
*/ */
@ApiModelProperty(value = "主键id",example = "1") @ApiModelProperty(value = "主键id",example = "1")
Integer id; private Integer id;
/**
* 所属测试系统id
*/
@ApiModelProperty(value = "所属测试系统id",example = "40285a81",position = 1)
private String systemId;
/** /**
* 测试用例标题 * 测试用例标题
*/ */
@ApiModelProperty(value = "测试用例标题",example = "百度一下",position = 1) @ApiModelProperty(value = "测试用例标题",example = "百度一下",position = 2)
String title; private String title;
/** /**
* 浏览器 * 浏览器
*/ */
@ApiModelProperty(value = "浏览器",example = "firefox",position = 2) @ApiModelProperty(value = "浏览器",example = "firefox",position = 3)
String browser; private String browser;
/**
* 运行环境
*/
@ApiModelProperty(value = "运行环境",example = "对运行环境的一些描述内容 Win 10/火狐版本 52.0/...",position = 4)
private String environment;
/** /**
* 起始网站 * 起始网站
*/ */
@ApiModelProperty(value = "网站地址",example = "http://www.baidu.com",position = 3) @ApiModelProperty(value = "网站地址",example = "http://www.baidu.com",position = 5)
String url; private String url;
/** /**
* 步骤详情 * 步骤详情
*/ */
@ApiModelProperty(value = "步骤详情",position = 4) @ApiModelProperty(value = "步骤详情",position = 6)
List<Step> steps; private List<Step> steps;
} }
package com.zjty.automatedtesting.pojo.test;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
@SuppressWarnings("JpaDataSourceORMInspection")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "AUTO_TEST_SYSTEM")
@GenericGenerator(name = "jpa-uuid", strategy = "uuid")
public class System {
@Id
@GeneratedValue(generator = "jpa-uuid")
@Column(length = 8)
private String id;
private String name;
}
package com.zjty.automatedtesting.repository;
import com.zjty.automatedtesting.pojo.test.System;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface SystemRepository extends JpaRepository<System, String> {
}
...@@ -25,14 +25,20 @@ public interface CaseService { ...@@ -25,14 +25,20 @@ public interface CaseService {
/** /**
* 查询所有测试用例 * 查询所有测试用例
* @return list * @return 测试用例集合
*/ */
List<CaseVo> findAll(); List<CaseVo> findAll();
/**
* 查询指定测试系统下的所有测试用例
* @return 测试用例集合
*/
List<CaseVo> findBySystemId(String systemId);
/** /**
* 指定id查询测试用例 * 指定id查询测试用例
* @param id id * @param id id
* @return testcase * @return 测试用例
*/ */
CaseVo findById(Integer id); CaseVo findById(Integer id);
......
...@@ -2,6 +2,7 @@ package com.zjty.automatedtesting.service; ...@@ -2,6 +2,7 @@ package com.zjty.automatedtesting.service;
import com.zjty.automatedtesting.pojo.report.ReportVo; import com.zjty.automatedtesting.pojo.report.ReportVo;
import com.zjty.automatedtesting.pojo.test.CaseVo; import com.zjty.automatedtesting.pojo.test.CaseVo;
import com.zjty.automatedtesting.service.impl.SeleniumServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
......
package com.zjty.automatedtesting.service;
import com.zjty.automatedtesting.pojo.test.System;
import org.springframework.stereotype.Service;
@Service
public interface SystemService {
/**
* 新增测试系统
* 不可附带id
* @return 保存后的测试系统对象
*/
System create(System systemVo);
/**
* 根据id查找测试系统
* @param id 指定id
* @return 查到的测试系统对象
*/
System findById(String id);
}
package com.zjty.automatedtesting.service; package com.zjty.automatedtesting.service.impl;
import com.zjty.automatedtesting.pojo.test.Case; import com.zjty.automatedtesting.pojo.test.Case;
import com.zjty.automatedtesting.pojo.test.CaseVo; import com.zjty.automatedtesting.pojo.test.CaseVo;
import com.zjty.automatedtesting.repository.CaseRepository; import com.zjty.automatedtesting.repository.CaseRepository;
import com.zjty.automatedtesting.service.CaseService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -44,7 +45,17 @@ public class CaseServiceImpl implements CaseService { ...@@ -44,7 +45,17 @@ public class CaseServiceImpl implements CaseService {
@Override @Override
public List<CaseVo> findAll() { public List<CaseVo> findAll() {
return repository.findAll().stream().map(transHelper::toTestCaseVo).collect(Collectors.toList()); return repository.findAll().stream()
.map(transHelper::toTestCaseVo)
.collect(Collectors.toList());
}
@Override
public List<CaseVo> findBySystemId(String systemId) {
return repository.findAll().stream()
.filter(aCase -> Objects.equals(aCase.getSystemId(),systemId))
.map(transHelper::toTestCaseVo)
.collect(Collectors.toList());
} }
@Override @Override
......
package com.zjty.automatedtesting.service; package com.zjty.automatedtesting.service.impl;
import com.zjty.automatedtesting.pojo.report.Report; import com.zjty.automatedtesting.pojo.report.Report;
import com.zjty.automatedtesting.pojo.report.ReportVo; import com.zjty.automatedtesting.pojo.report.ReportVo;
import com.zjty.automatedtesting.repository.ReportRepository; import com.zjty.automatedtesting.repository.ReportRepository;
import com.zjty.automatedtesting.service.ReportService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package com.zjty.automatedtesting.service; package com.zjty.automatedtesting.service.impl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.zjty.automatedtesting.common.action.Assertion; import com.zjty.automatedtesting.common.action.Assertion;
...@@ -8,6 +8,8 @@ import com.zjty.automatedtesting.pojo.report.Report; ...@@ -8,6 +8,8 @@ import com.zjty.automatedtesting.pojo.report.Report;
import com.zjty.automatedtesting.pojo.report.ReportVo; import com.zjty.automatedtesting.pojo.report.ReportVo;
import com.zjty.automatedtesting.pojo.test.Step; import com.zjty.automatedtesting.pojo.test.Step;
import com.zjty.automatedtesting.pojo.test.CaseVo; import com.zjty.automatedtesting.pojo.test.CaseVo;
import com.zjty.automatedtesting.service.ReportService;
import com.zjty.automatedtesting.service.SeleniumService;
import com.zjty.automatedtesting.util.CommonUtils; import com.zjty.automatedtesting.util.CommonUtils;
import com.zjty.automatedtesting.util.JsonUtil; import com.zjty.automatedtesting.util.JsonUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
......
package com.zjty.automatedtesting.service.impl;
import com.zjty.automatedtesting.pojo.test.System;
import com.zjty.automatedtesting.repository.SystemRepository;
import com.zjty.automatedtesting.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import static java.util.Objects.isNull;
@SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection")
@Service
public class SystemServiceImpl implements SystemService {
@Autowired
SystemRepository repository;
@Override
public System create(System system) {
if (isNull(system.getId())) {
return repository.save(system);
}else {
throw new RuntimeException("新增数据不可附带id");
}
}
@Override
public System findById(String id) {
return repository.findById(id).orElseThrow(() -> new RuntimeException("未找到该id的测试系统"));
}
}
package com.zjty.automatedtesting.service; package com.zjty.automatedtesting.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.zjty.automatedtesting.pojo.report.Measure; import com.zjty.automatedtesting.pojo.report.Measure;
import com.zjty.automatedtesting.pojo.report.Report; import com.zjty.automatedtesting.pojo.report.Report;
import com.zjty.automatedtesting.pojo.report.ReportVo; import com.zjty.automatedtesting.pojo.report.ReportVo;
import com.zjty.automatedtesting.pojo.test.Step; import com.zjty.automatedtesting.pojo.test.*;
import com.zjty.automatedtesting.pojo.test.Case;
import com.zjty.automatedtesting.pojo.test.CaseVo;
import com.zjty.automatedtesting.util.JsonUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -15,10 +12,11 @@ import java.util.List; ...@@ -15,10 +12,11 @@ import java.util.List;
@Service @Service
public class TransHelper { public class TransHelper {
public Case toTestCase(CaseVo caseVo){ public Case toTestCase(CaseVo caseVo) {
String steps = JsonUtil.toJSon(caseVo.getSteps()); String steps = JSON.toJSONString(caseVo.getSteps());
return new Case( return new Case(
caseVo.getId(), caseVo.getId(),
caseVo.getSystemId(),
caseVo.getTitle(), caseVo.getTitle(),
caseVo.getBrowser(), caseVo.getBrowser(),
caseVo.getUrl(), caseVo.getUrl(),
...@@ -26,10 +24,11 @@ public class TransHelper { ...@@ -26,10 +24,11 @@ public class TransHelper {
); );
} }
public CaseVo toTestCaseVo(Case aCase){ public CaseVo toTestCaseVo(Case aCase) {
List<Step> steps = JsonUtil.readValueToList(aCase.getSteps(),Step.class); List<Step> steps = JSON.parseArray(aCase.getSteps(), Step.class);
return new CaseVo( return new CaseVo(
aCase.getId(), aCase.getId(),
aCase.getSystemId(),
aCase.getTitle(), aCase.getTitle(),
aCase.getBrowser(), aCase.getBrowser(),
aCase.getUrl(), aCase.getUrl(),
...@@ -37,7 +36,7 @@ public class TransHelper { ...@@ -37,7 +36,7 @@ public class TransHelper {
); );
} }
public ReportVo toReportVo(Report report){ public ReportVo toReportVo(Report report) {
List<Measure> measures = JSON.parseArray(report.getMeasures(), Measure.class); List<Measure> measures = JSON.parseArray(report.getMeasures(), Measure.class);
return new ReportVo( return new ReportVo(
report.getId(), report.getId(),
...@@ -47,4 +46,6 @@ public class TransHelper { ...@@ -47,4 +46,6 @@ public class TransHelper {
measures measures
); );
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论