前面blog给了对应的git代码,可以先下载代码。
工程说明:这个是一个接口自动化测试的工程,前端录入对应的接口,后台通过rest assured来实现接口模拟调用,前端可以单个测试。
用到的技术:spring boot,jpa,mysql,thymeleaf和rest assured。
主链接说明:我是本地启动,启动工程后,输入http://localhost:8080/list
展示如下:
这个架构的功能有,添加,查询,修改,删除,测试,还有分页。现在将这几个功能的代码说明下。
1. 添加功能:页面点击添加按钮。
主要功能的代码在目录结构这个里面:
添加功能
@RequestMapping("toAdd")
public String toAdd(){
return "add";
}
@RequestMapping("/add")
public String add(ServiceEntity serviceEntity){
serviceEntityService.saveOne(serviceEntity);
return "redirect:/list";
}
跳转到对应的saveOne服务:
代码如下:
public void saveOne(ServiceEntity serviceEntity){
serviceEntityRepository.save(serviceEntity);
}
这个通过jpa实现的,只需要有如下接口。
public interface ServiceEntityRepository extends JpaRepository<ServiceEntity,String> {
public String findByUrl(String url);
public List<ServiceEntity> findByUrlOrBody(String url, String body);
}
大家学习的时候,要仔细注意一点,工程的目录最好也一样,不要改。因为spring boot少配置很多配置,貌似对工程的目录结构有要求。
2. 查询
@RequestMapping("/seach")
public String search(){
return "seach";
}
@RequestMapping("/seachAll")
public String seachAll(ServiceEntity serviceEntity,Model model)
{
String url=serviceEntity.getUrl();
String body=serviceEntity.getBody();
List<ServiceEntity> serviceEntityList=serviceEntityService.findByUrlAndBody(url,body);
model.addAttribute("seachAll",serviceEntityList);
return "seach";
}
3. 修改:
@RequestMapping("/update")
public String update(ServiceEntity serviceEntity){
String serviceId=serviceEntity.getServiceId();
ServiceEntity serviceEntityFind= serviceEntityService.findOne(serviceId);
serviceEntityFind.setUrl(serviceEntity.getUrl());
serviceEntityFind.setBody(serviceEntity.getBody());
serviceEntityFind.setType(serviceEntity.getType());
serviceEntityService.saveOne(serviceEntityFind);
return "redirect:/list";
}
4. 删除
@RequestMapping("del/{serviceId}")
public String del(@PathVariable String serviceId)
{
serviceEntityService.delById(serviceId);
return "redirect:/list";
}
4. 测试
@RequestMapping("test/{serviceId}")
public String testCase(@PathVariable String serviceId){
// requestSpecification=AssuredUtils.getInstance().setUrlAndHeaders("http://localhost","",8080);
String result=null;
ServiceEntity serviceEntityFind= serviceEntityService.findOne(serviceId);
if(serviceEntityFind==null){
serviceEntityFind.setBody("数据库查询不到数据");
serviceEntityFind.setResult("Failed");
serviceEntityService.saveOne(serviceEntityFind);
return "redirect:/list";
}
String type=serviceEntityFind.getType();
String url=serviceEntityFind.getUrl();
String body=serviceEntityFind.getBody();
String responseBody=null;
Response response=null;
ResponseBody responseBody1=null;
if("post".equalsIgnoreCase(type))
{
response=given().contentType(environment.getProperty("service.entity.contenttype")).baseUri(environment.getProperty("service.entity.baseurl")).port(environment.getProperty("service.entity.port",Integer.class)).body(body).when().log().all().post(url.trim());
// response=given().spec(requestSpecification).contentType(environment.getProperty("service.entity.contenttype")).body(body).when().log().all().post(url.trim());
}
else if("get".equalsIgnoreCase(type))
{
response=given().contentType(environment.getProperty("service.entity.contenttype")).get(url.trim());
}
else if("delete".equalsIgnoreCase(type))
{
response=given().contentType(environment.getProperty("service.entity.contenttype")).delete(url.trim());
}
if(response.getStatusCode()==200){
responseBody=response.getBody().prettyPrint();
result="Success";
}
else{
result="Failed";
}
serviceEntityFind.setResult(result);
serviceEntityFind.setRespBody(responseBody);
serviceEntityService.saveOne(serviceEntityFind);
return "redirect:/list";
}
这个工程还是有点bug,大家可以自己找下修改下,我也弄下。修改好后,在后面的blog里面发下。