接口测试基础
接口基本概念 :
指系统模块与模块或系统间直接进行交互,一般现在我们用的多的是基于http协议为基础的接口 ,但是不管是哪种接口 ,其本质就是发送一个request报文给服务器 ,服务器响应返回一个reponse报文,我们对response的报文进行分析,判断是否和我们发送的服务器的request对应的返回相同 ,从而验证业务是否正确实现,这即是接口测试 。
接口常用的请求方法:
get:从服务器上请求数据 ,比如查询接口
post: 向服务器提交需要被处理的数据,比如数据添加,数据修改,数据删除。
put:向服务器提交修改的数据
delete:删除资源
url构成:
一般来说http请求都会和地址有关,对于url来说,一般由以下5个部分构成:
.协议 : 通常第一个冒号前面的内容
常见的协议有:http,https,ftp,ssh
域名 : 就是要访问的服务器的域名。一般格式为 //域名
端口 : 就是访问服务器自己所设定的服务端口,监听端口。
如果服务器使用的是协议的默认端口,则用户在通过url访问服务器时,是可以省略端口的
path: 指要访问的资源在服务器容器下的路径 ,不是资源在服务器下的绝对路径
url地址参数 :一般来说是通过问号 ,链接在path之后。
在很多工具中,也是可以归类到path中的
http协议:
http协议是由两个部分组成 : http request(请求) ,http response (响应)
对于接口测试或者性能测试 ,我们需要去模拟 ,去实现的是http请求 ,但是我们需要结合http响应来处理脚本
在这个过程中 ,我们能够改变的只是请求 。
常用的抓包工具
httpwatch ,fiddler .wireshark,f12
http request 由3个部分组成: request line ,request header ,request body
request line : 就是请求的第一行内容 。包含三个信息:
request method ,请求方法 ,一般是由接口或者用户端决定的
常见的请求方法 :get ,post ,put ,delete ,header,options ,trace
平时主要是get ,post
html中get方法传递参数时候 ,是通过url地址参数来封装数据的
一般情况下,不指定方法的话 ,客户端一般都是使用get方法
request path ,请求路径,就是Url的path部分
protocol/version:协议和版本
request header:请求头,一般是指请求的数据包中第二行开始 ,到第一个空行截止。
请求头是用来传递信息的 ,包括通信和控制相关的信息 。
请求头是键值对应的
请求头的类型是由http协议规定的,是不能随意自定义的每一种都是有对应的通信规定的。
request body 请求主体 ,第一个空行开始到整个请求包结束部分
一般来说,请求主体是适用与post方法 ,不适用于get方法 的 ,请求主体传递的内容是由应用或者接口决定的
默认 :www-form 类型 (普通的键值对应,通过&链接的字符串)。如果不是默认的类型,则在请求头中 ,一定要添加以下信息头:
content -type,该头是用来告诉服务器 ,所发送的body的数据格式 ,数据类型
http response :http响应 ,由三个部分构成 ,response line ,reponse header ,response body
response line :响应行 ,是指响应中的第一行的内容 ,包含三个信息 :
protocol/version . response_code ,response_message
http/1.1 200 ok
http1.1 404 not found
response code :响应代码 ,又叫状态码,是服务器用来告诉客户端,服务器处理请求的状态
状态码一般由三位长度的数据构成 ,一般来说首字母相同的往往表示是一类处理状态 ,
1xx 表示处理成功
2xx表示处理成功 ,逻辑通了 ,不代表业务成功了 。
3xx 表示重定向
4xx 表示客户端错误 ,403 表示权限有误 。404 表示请求的资源未找到
5xx:表示服务器错误,500 是指服务器因为内部原因导致无法处理请求 ,。
一般来说 ,接口测试,性能测试过程中 ,在调试脚本的阶段出现500 ,通常不是服务问题 ,而是脚本封装问题
一般来说 ,1,2 ,3 表示客户端和服务器 逻辑通信没有问题 。
4,5 逻辑有问题
response message :响应信息 ,一般是用来描述响应代码的 ,没有实际意义。
response header :类似 request header
是服务器反馈客户端 ,
response body :响应主体 ,也是应用和接口决定的