目录
前言
测试过程中,经常会用到接口测试,无论是抓包工具,还是做接口自动化测试以及服务端的测试,都要掌握好接口测试的基础:请求的url,请求方法,传参,接口返回,最近在学习SpringBoot项目,以postman为接口测试工具,针对常见的请求get请求和post,以及在测接口时可能遇到的问题,做了些总结。
一、接口四要素
在做接口测试时,有关键四要素:请求url、请求方法、传递参数、接口返回参数。有时候接口调不通,首先检查下url是不是对的,其次检查请求方法,最后查看传递的参数类型是否符合要求。
如果请求的url地址出错,接口404,提示资源未找到。
如果请求方法出错,比如get请求方法,但写成了post,接口返回405,提示方法不允许。
二、请求方法
在工作中经常遇到的请求方法有四种:get、post、put、delete,比较常用到的就是get请求和post请求,主要看这两个方法是怎么调用的,怎么传递参数。
1、get请求
@GetMapping("/get")
public String GetMethod (@RequestParam(required = true) int id,@RequestParam(required = false) String number){
return "get方法中的id是:"+id+"\n"+"number是:"+number;}
如上代码所示,传参要求
id是必传的,类型为int
number是非必传的,类型为String
先来看如果不传必传的参数,接口返回400,提示错误的请求。
客户端没有按照服务端的要求传必传的参数
同样如果传递的参数类型不符合要求,接口也返回400
也属于客户端没有按照服务端的要求传必传的参数
客户端传了必传的参数名,但值为空,也返回400
也属于客户端传参不符合要求
对非必传的参数,如果没传,则默认为null,这里number的值没有传过去,则为null(如果参数名传错了,值也为null)
但如果非必传参数传了,但值为空,结果就是空,而非null
2、post请求
这篇文章对post请求的请求体body的介绍非常详细。
http的请求体body的几种数据格式_http请求体_千篇不一律的博客-CSDN博客
@PostMapping("/post")
public String PostMethod (@RequestParam(required = true) int id,@RequestParam(required = false)String desc){
return "post方法中的id是:"+id+"\n"+"desc是:"+desc;
}
示例接口如上,必传参数id,类型int,非必传参数desc,类型String。
在必传参数传递错误,或传的值为空时,接口都返回400,与get请求一致。
post请求还可以传递json
@PostMapping("/postjson")
public String PostMethodjson (@RequestBody String id){
return "post方法中的json传参的json是"+id;
}
当然还可以json+参数传参方式
json是必传参数,age是必传参数,类型为int,name为非必传参数,类型为String.
@PostMapping("/postjsondata")
public String PostMethodjsondata (@RequestBody String id,@RequestParam(required = true) int age,@RequestParam(required = false) String name){
return "post方法中的json传参的json是"+id+"name参数是"+name+"age参数是"+age;
}
url上需要带上必传参数age