提交 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.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author C
......@@ -31,38 +32,52 @@ public class TestCaseController {
CaseService caseService;
@ApiOperation(value = "提供测试用例数据.执行测试并返回测试结果报告.")
@PostMapping(value="/execute")
public ResponseEntity<ReportVo> execute(@RequestBody CaseVo caseVo){
@PostMapping(value = "/execute")
public ResponseEntity<ReportVo> execute(@RequestBody CaseVo caseVo) {
ReportVo execute = seleniumService.execute(caseVo);
return ResponseEntity.ok(execute);
}
@ApiOperation(value = "保存测试用例.",notes = "不附带id为新增 附带id为修改")
@PostMapping(value="/save")
public ResponseEntity<Map<String,String>> save(@RequestBody CaseVo caseVo){
@ApiOperation(value = "根据测试系统id.执行改测试系统下的所有测试用例并返回测试结果报告的集合.")
@GetMapping(value = "/execute/system/{systemId}")
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);
return ResponseEntity.ok(ImmutableMap.of("message","success"));
return ResponseEntity.ok(ImmutableMap.of("message", "success"));
}
@ApiOperation(value = "删除测试用例.")
@DeleteMapping(value="/delete/{id}")
public ResponseEntity<Map<String,String>> findTestText(@PathVariable Integer id){
@DeleteMapping(value = "/delete/{id}")
public ResponseEntity<Map<String, String>> findTestText(@PathVariable Integer id) {
caseService.delete(id);
return ResponseEntity.ok(ImmutableMap.of("message","success"));
return ResponseEntity.ok(ImmutableMap.of("message", "success"));
}
@ApiOperation(value = "获取全部测试用例.")
@GetMapping(value="/get")
public ResponseEntity<List<CaseVo>> get(){
@GetMapping(value = "/get")
public ResponseEntity<List<CaseVo>> get() {
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 = "获取单个测试用例.")
@GetMapping(value="/get/{id}")
public ResponseEntity<CaseVo> getById(@PathVariable Integer id){
@GetMapping(value = "/get/{id}")
public ResponseEntity<CaseVo> getById(@PathVariable Integer id) {
return ResponseEntity.ok(caseService.findById(id));
}
}
......@@ -24,15 +24,26 @@ public class Case {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 所属测试系统id
*/
private String systemId;
/**
* 标题
*/
private String title;
/**
* 浏览器
*/
private String browser;
/**
* 运行环境
*/
private String environment;
/**
* 起始网站
*/
......
......@@ -18,30 +18,42 @@ public class CaseVo {
* 主键
*/
@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)
String title;
@ApiModelProperty(value = "测试用例标题",example = "百度一下",position = 2)
private String title;
/**
* 浏览器
*/
@ApiModelProperty(value = "浏览器",example = "firefox",position = 2)
String browser;
@ApiModelProperty(value = "浏览器",example = "firefox",position = 3)
private String browser;
/**
* 运行环境
*/
@ApiModelProperty(value = "运行环境",example = "对运行环境的一些描述内容 Win 10/火狐版本 52.0/...",position = 4)
private String environment;
/**
* 起始网站
*/
@ApiModelProperty(value = "网站地址",example = "http://www.baidu.com",position = 3)
String url;
@ApiModelProperty(value = "网站地址",example = "http://www.baidu.com",position = 5)
private String url;
/**
* 步骤详情
*/
@ApiModelProperty(value = "步骤详情",position = 4)
List<Step> steps;
@ApiModelProperty(value = "步骤详情",position = 6)
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 {
/**
* 查询所有测试用例
* @return list
* @return 测试用例集合
*/
List<CaseVo> findAll();
/**
* 查询指定测试系统下的所有测试用例
* @return 测试用例集合
*/
List<CaseVo> findBySystemId(String systemId);
/**
* 指定id查询测试用例
* @param id id
* @return testcase
* @return 测试用例
*/
CaseVo findById(Integer id);
......
......@@ -2,6 +2,7 @@ package com.zjty.automatedtesting.service;
import com.zjty.automatedtesting.pojo.report.ReportVo;
import com.zjty.automatedtesting.pojo.test.CaseVo;
import com.zjty.automatedtesting.service.impl.SeleniumServiceImpl;
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.CaseVo;
import com.zjty.automatedtesting.repository.CaseRepository;
import com.zjty.automatedtesting.service.CaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -44,7 +45,17 @@ public class CaseServiceImpl implements CaseService {
@Override
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
......
package com.zjty.automatedtesting.service;
package com.zjty.automatedtesting.service.impl;
import com.zjty.automatedtesting.pojo.report.Report;
import com.zjty.automatedtesting.pojo.report.ReportVo;
import com.zjty.automatedtesting.repository.ReportRepository;
import com.zjty.automatedtesting.service.ReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
......
package com.zjty.automatedtesting.service;
package com.zjty.automatedtesting.service.impl;
import com.google.common.collect.Lists;
import com.zjty.automatedtesting.common.action.Assertion;
......@@ -8,6 +8,8 @@ import com.zjty.automatedtesting.pojo.report.Report;
import com.zjty.automatedtesting.pojo.report.ReportVo;
import com.zjty.automatedtesting.pojo.test.Step;
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.JsonUtil;
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.zjty.automatedtesting.pojo.report.Measure;
import com.zjty.automatedtesting.pojo.report.Report;
import com.zjty.automatedtesting.pojo.report.ReportVo;
import com.zjty.automatedtesting.pojo.test.Step;
import com.zjty.automatedtesting.pojo.test.Case;
import com.zjty.automatedtesting.pojo.test.CaseVo;
import com.zjty.automatedtesting.util.JsonUtil;
import com.zjty.automatedtesting.pojo.test.*;
import org.springframework.stereotype.Service;
import java.util.List;
......@@ -15,10 +12,11 @@ import java.util.List;
@Service
public class TransHelper {
public Case toTestCase(CaseVo caseVo){
String steps = JsonUtil.toJSon(caseVo.getSteps());
public Case toTestCase(CaseVo caseVo) {
String steps = JSON.toJSONString(caseVo.getSteps());
return new Case(
caseVo.getId(),
caseVo.getSystemId(),
caseVo.getTitle(),
caseVo.getBrowser(),
caseVo.getUrl(),
......@@ -26,10 +24,11 @@ public class TransHelper {
);
}
public CaseVo toTestCaseVo(Case aCase){
List<Step> steps = JsonUtil.readValueToList(aCase.getSteps(),Step.class);
public CaseVo toTestCaseVo(Case aCase) {
List<Step> steps = JSON.parseArray(aCase.getSteps(), Step.class);
return new CaseVo(
aCase.getId(),
aCase.getSystemId(),
aCase.getTitle(),
aCase.getBrowser(),
aCase.getUrl(),
......@@ -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);
return new ReportVo(
report.getId(),
......@@ -47,4 +46,6 @@ public class TransHelper {
measures
);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论