<<swagger>></swagger>

         本次要聊的是怎么进行swager测试。

1、首先规划一下项目模块:

创建父模块和子模块来进行组合。

2、接下来进行common模块的定义。

@Data
@NoArgsConstructor
@AllArgsConstructor
public class HttpResp <T>{
    private int code;
    private String msg;
    private T result;
    private LocalDate time;
}

3、接下来进行依赖。

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
    <version>4.0.0</version>
</dependency>

 knife4j是一个集Swagger2和OpenAPI3为一体的增强解决方案,所以本次测试选择依赖的是knife4j.

以上显示为依赖成功。

接下来进行配置

knife4j:
  enable: true                 #此项必配置,否则knife4j运行有问题
  openapi

 4、接下来进行项目的编码

TypeApp

@SpringBootApplication
public class TypeaApp {
    public static void main(String[] args) {
        SpringApplication.run(TypeaApp.class);
    }
}

HttpResp

@Data
@NoArgsConstructor
@AllArgsConstructor
public class HttpResp <T>{
    private int code;
    private String msg;
    private T result;
    private LocalDate time;
}

 Type

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Type {
    private Integer id;
    private String name;
    private String createBy;
    private Date createTime;
    private Date updateTime;
}

 TypeController

@Api(tags = "图书类型接口")
@RestController
@RequestMapping("/api/book")
@Slf4j
public class TypeController {

    private int total=0;
    @Autowired
    private IBookService ibs;
    @ApiOperation(value = "findAll",notes = "对所有图书类型查询")
    @GetMapping("/findAll")
    public HttpResp<Integer> findAll(){
//    public HttpResp<List<Type>> findAll(){
//        List<Type> list=new ArrayList<>(20);

//        for (int i=1;i<=100;i++) {
//            list.add(new Type(i,"type_"+i,"admin",new Date(),new Date()));
//        }
//        log.debug("查询所有图书类型:",list.size());
        total=total+1;
        log.debug("当前total-->:{}",total);
        return new HttpResp<>(200,"success",total, LocalDate.now());
    }

    @ApiOperation(value = "addType",notes = "添加接口")
    @ApiImplicitParams(
            {
                @ApiImplicitParam(name = "name",value = "输入图书类型",required  = true)
            }
    )
    @PostMapping("/addType")
    public HttpResp<String> addType(String name){
        log.debug("添加新的类型:{}",name);
        return new HttpResp<>(200,"success",null,LocalDate.now());
    }
    @PostMapping("uploadExcel")
    public HttpResp<String>uploadExcel(@RequestPart @RequestParam("excel")MultipartFile excel){
        String originalFilename =excel.getOriginalFilename();
        log.debug("上传文件名称:{}",originalFilename);
        return new HttpResp<>(200,"success",originalFilename+"上传成功",LocalDate.now());
    }
    @ApiOperation(value = "qiang",notes = "抢购图书")
    @PutMapping("/qiang")
    public HttpResp<Integer>qiang(){
        int retValue;
        try {
            retValue =ibs.qiangGou();
            log.debug("剩余图书:{}",retValue);
        }catch (Exception e){
            return new HttpResp<>(500,"error",-1,LocalDate.now());
        }
        return new HttpResp<Integer>(200,"抢购成功",retValue,LocalDate.now());
    }
}

 bpokService

public interface IBookService {
    int qiangGou();
}

bookServiceImpl

@Service
public class IBookServiceImpl implements IBookService {
    int total=100;
    @Override
    public int qiangGou() {
        if (total<0)throw new RuntimeException("对不起,书已售空");
        total--;
        return total;
    }
}

application-dev.yml配置

server:
  port: 9091
knife4j:
  enable: true
logging:
  level:
    com.wnhz.book.bk: debug

application.yml配置

spring:
  profiles:
    active: dev

 项目建立之后启动并且根据自己定的地址进入

localhost:自己的接口/doc.html

进入之后即可进入测试 

 

 后面也可以进行并发测试。

        利用本程序可以进行多条信息同时发送来进行并发测试,当产生的数值有相同的时,即为发生了并发。 

        以上则是本次所要聊的内容。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值