一、开发与测试眼中的接口
- 开发眼中的接口
(1)Interface关键字用来声明一个接口。下面是接口声明的一个简单例子。
/* 文件名 : Animal.java */
interface Animal {
public void eat();
public void travel();
}
(2)类使用implements关键字实现接口
/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{
public void eat(){
System.out.println("Mammal eats");
}
public void travel(){
System.out.println("Mammal travels");
}
public int noOfLegs(){
return 0;
}
public static void main(String args[]){
MammalInt m = new MammalInt();
m.eat();
m.travel();
}
}
开发眼中的接口,是模块与模块的对接方式。
- 测试眼中的接口
测试眼中的接口,是协议接口,可以独立部署成一种服务。接口测试,也是协议接口测试。
二、接口协议
- 常见的接口协议
-
HTTP 超文本传输协议
应用场景:
image.png
-
HTTPS 安全超文本传输协议
应用场景:
image.png
-
FTP 文件传输协议
应用场景:上传文件到服务器、从服务器下载文件。 -
TCP 网络控制协议
应用场景:双方通信需要建立一个TCP协议,建立连接需要经过三次握手,握手成功才可以进行通信,我们通常所说的“三次握手,四次挥手”。 -
IP 互联网协议
-
UDP 用户数据协议
应用场景: 在通信过程中,它并不像 TCP 那样需要先建立一个连接,只要(目的地址,端口号,源地址,端口号)确定了,就可以直接发送信息报文,并且不需要确保服务端一定能收到或收到完整的数据。
若通信数据完整性需让位与通信实时性,则应该选用 TCP 协议(如文件传输、重要状态的更新等);反之,则使用 UDP 协议(如视频传输、实时通信等)。
三、HTTP协议详解
-
HTTP协议栈中的位置
image.png
HTTP和HTTPS网络构成不同,为什么有时候测试HTTP和HTTPS不能套用同一套测试方法,主要是由于他们下一层造成的差异。
-
HTTP协议模型
(1)HTTP协议永远都是客户端发起请求,服务器回送响应。
image.png
这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。
(2)HTTP协议请求,包括请求行、请求头、请求正文。
image.png
请求行包括:请求方法、请求的url、协议及版本。url包含协议、ip、端口、应用名、资源路径等,如果是get请求,资源路径后面还可以跟请求参数
请求头包括:请求正文的类型、编码类型、 Cookie(里面看sessionID)、请求正文长度、签名串sign、token等。
请求正文包括:数据格式、xml、 json、键值对、&分割符、字符串
(3)HTTP协议响应,包括响应行、响应头、响应正文。
![](https://img.haomeiwen.com/i12041448/b3ed0277aa48eef9.png)
响应行包括:http协议版本、响应状态码
响应头包括:描述服务器的基本信息,如正文类型、编码类型。
响应正文包括:响应的消息体,如果是纯数据就返回数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码,如此之类。
-
HTTP协议工作流程
一次HTTP操作称为一个事务,其工作过程可分为四步:
1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。 -
HTTP协议响应码
- 1xx:信息响应类,表示接收到了请求并且继续处理。
- 2xx:处理成功响应类,表示动作被成功接收、理解。(200,成功响应)
- 3xx:重定向响应类,为了完成指定动作,必须接受进一步处理。(302,重定向)
- 4xx:客户端错误,客户请求包含语法错误或者不能正确执行。(404,请求的资源不存在)
- 5xx : 服务器错误,服务器不能正确执行一个正确的请求。
通过状态响应码,可以定位错误。所以必须掌握不同的响应码代表什么问题。
- 常用的http协议请求方式
HTTP/1.1一共定义了8种请求方式,常见的请求方式有:get请求方式、post请求方式。他们区别如下:
(1)get方式把参数包含在url中,post是通过request body传递参数。
get方法url:
http://127.0.0.1:8080?username=jianshu&password=1qaz2wsx
post方法的url:
http://127.0.0.1:8080
请求体中:
{
[
"username"="jianshu";
"password"="1qaz2wsx";
]
}
(2)get是从服务器获取数据,post是向服务器传输数据
(3)get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
(4)get安全性非常低,post安全性较高。
网友评论