【接口测试】接口的介绍

 


1、常见的接口和协议

接口 基于或支持的协议 描述 测试工具
Http接口 Http协议 使用广泛、轻量级、跨平台、跨语言的,但凡是第三方提供的API都会有HTTP版本的接口。 Postman、JMeter等都支持
Web Service 接口 基于http协议的soap协议的封装和补充 是Web Service其实是一种概念,我们可以将以WEB形式提供的服务称为Web Service。 SoapUI、jmeter、loadrunner
RESTful HTTP协议 它不是一种规范,而是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)来表达不同的请求。 /
WebSocket udp、tcp 是一个底层的,双向通信协议 ,适合于客户端和服务器端之间信息实时交互 Jmeter添加插件可以支持
FTP TCP/IP 协议组中的协议之一 文件传输协议,FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。 其中FTP服务器用来存储文件
Mqtt 基于TCP协议 客户端-服务器的消息发布/订阅传输协议,适用于物联网 Jmeter添加插件可以支持、Mqttx

默认端口

2、HttpServlet类

java通过HttpServlet类可以实现接口的自动化测试、模拟发送接口请求等

public class ServletDemo extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("执行了post方法");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("执行了get方法");
}
}

3、接口常见的请求方式:

Get: 像服务器获取资源,特点是参数在URL上,不安全,且最多1024字节
Post:像指定的服务器提交数据请求处理,一般是提交表单、上传文件,有消息体,可以携带大量数据且安全
Put:和Post的区别在于它是idempotent(幂等)的,即多次运行结果一样
Head:与get区别就在于只获取head信息
Delete:删除对应的URl上的资源
Option:获取当前URL所支持的方法,如果请求成功,会在Http头部中有一个名为“Allow”的头,显示支持的方法,如“Get,Post”
Trace:查看Http请求报文发送的过程当中是否被修改

3.1、get和post的区别:

  • url可见性:
    get,参数url可见;
    post,url参数不可见

  • 数据传输上:
    get,通过拼接url进行传递参数;
    post,通过body体传输参数

  • 缓存性:
    get请求是可以缓存的
    post请求不可以缓存

  • 后退页面的反应
    get请求页面后退时,不产生影响
    post请求页面后退时,会重新提交请求

  • 传输数据的大小
    get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)
    post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。

  • 安全性

原则上post肯定要比get安全

  • 数据包

    GET产生一个TCP数据包;POST产生两个TCP数据包。对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

4、状态码:

2xx(表示请求成功)
一般常用的有
200 成功,通常服务器提供了网页资源
201 请求成功并且已创建,
202 已接受但是还没处理
3xx(请求被重定向,需要进一步处理)
301:(网页永久移动了)
302:(临时移动了)
304:(未修改,返回此相应不会返回网页内容)
4xx:(请求错误)
400:(错误请求,服务器不理解)
401:(未授权,比如没有token)
403:(禁止,服务器拒绝请求)
404:(没找到资源)
5xx:(服务器错误)
500:(服务器内部错误,无法完成请求)
503:(服务不可用,服务器崩了或者停机维护,暂时的)

5、header:

User-agent:客户端操作系统和浏览器名称和版本
Accept-Charset: 浏览器接受的字符集
Accept-Encoding: 浏览器申明自己的编码方式和压缩方式,是否支持压缩,用什么压缩
Accept-Lanuguage:申明自己接受的语言
Content-Length:发送Http服务器数据长度
Content-Type:互联网媒体类型

Content-Type:POST请求的消息主体放在entity body中,服务端根据请求头中的Content-Type字段来获取消息主体的编码方式,进而进行解析数据。

常见类型:

application/x-www-form-urlencoded # 表单提交
multipart/form-data:# 另一个常见的 POST 数据提交的方式, Form 表单的 enctype设置为multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符(这就是boundary的作用)分开。
application/json:# 用来告诉服务端消息主体是序列化后的 JSON 字符串
text/xml:# XML的作用不言而喻,用于传输和存储数据,它非常适合万维网传输,
binary (application/octet-stream):# 就是一些二进制文件类型,如application/pdf,指定了特定二进制文件的MIME类型
posted @   吴承勇  阅读(98)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示