Rest Assured自动化工程说明

前面blog给了对应的git代码,可以先下载代码。

链接:CSDN

工程说明:这个是一个接口自动化测试的工程,前端录入对应的接口,后台通过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里面发下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值