Python自动化学习笔记(九)接口理论(无代码,纯理解)

接口是什么?

接口就是传递数据的通道

接口测试是什么?

是测试系统组件间接口的一种测试

接口测试主要包括什么?

同一个系统中模块与模块间的接口(内部接口)
跨系统平台与平台间的对接(外部接口)

接口类型有什么?

常见的有:

  • HTTP接口:通过GET或POST等来获取数据,在数据处理上效率比较高
  • Webservice接口:通过soap协议来获取数据,比起http来说能处理更加复杂的数据类型

怎么查看接口信息?

  • 浏览器F12
  • 工具:Fiddler,wireshark,charles,postman,jmeter
  • 接口文档

如何做好接口测试

  1. 了解和熟悉系统业务/逻辑交互 - 接口业务/数据流向
  2. 了解接口的协议类型 - 使用抓包
  3. 了解接口的入参/出餐 - 接口文档/捉包
  4. 使用接口测试工具 - 根据协议选择
  5. 设计接口测试用例 - 接口文档/接口测试工具/与开发交流
  6. 数据库基础 - 数据库类型/数据库表结构/查询语句/测试数据提取-数据校验
  7. 引入接口测试框架(大量用例)
  8. 引入jenkins持续集成 - jenkins平台安装/定时任务设置/测试结果分析/用例和脚本维护等

http协议是什么

HTTP协议:
超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议
所有的HTML文件都必须遵守这个标准
设计HTTP最初的目的是为了提供一种发布和接受HTML页面的方法
HTTPS协议:
(HyperText Transfer Protocol over Secure Socket Layer)
简单讲就是HTTP的安全版,在HTTP下加入SSL层
SSL( Secure Socket Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加保障在Internet上数据传输的安全.

HTTP的端口为 80
HTTPS的端口为 443

http请求过程是什么?

HTTP通信由两部分组成:客户端请求消息服务器相应消息
客户端发送请求给服务器
服务器再返回一个响应给客户端

tcp三次握手是什么?

第一次握手

建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;
ps:问你在不在

第二次握手

服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;

第三次握手

客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

为什么要三次握手

为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
具体例子:“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”

tcp四次挥手是什么?

第一次分手

主机1(可以使客户端,也可以是服务器端),设置Sequence Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;

第二次分手

主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;

第三次分手

主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;

第四次分手

主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。

为什么要四次分手
TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,只是表示主机1已经没有数据要发送了,主机1告诉主机2,它的数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2的数据;当主机2返回ACK报文段时,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的;当主机2也发送了FIN报文段时,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,我也没有数据要发送了,之后彼此就会愉快的中断这次TCP连接。

http请求过程是什么?

1 .当用户在浏览器的地址栏输入一个URL并按回车键后,浏览器会向HTTP服务器发送HTTP请求.HTTP请求主要分为’Get’和’Post’两种方法.
2 .当我们在浏览器输入URL,http://www.baidu.com的时候,浏览器发送一个Request请求去获取http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器.
3 .浏览器分析Response的HTML,发现其中引用了很多其他文件,比如images文件,CSS文件,JS文件,浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件.
4 .当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了.

http请求类型有哪些?

常见的有

  • GET
    用于获取资源(没用请求体)
  • POST
    向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中.Post请求可能会导致新的资源的建立和/或已有资源的修改
  • PATCH
    用于更新服务器的数据(局部更新)
  • DELETE
    用于服务器删除指定的数据
  • PUT
    用于更新服务器的数据(数据整体更新)

http通信是什么?

通信过程:
1.建立连接
2.发送请求数据
3.接受响应数据
4.断开连接
请求数据包:
请求行 --协议,请求类型,版本号,路径
请求头
空一行
消息体(body)-请求数据
响应数据包:
状态行 --协议,请求类型,版本号,路径
响应头
空一行
响应体(body)-响应数据

响应状态码有什么

状态码由三位数字组成,第一个数字定义了响应的类别,一共分成五种类别:
1xx:指示信息–表示请求已接受,继续处理
2xx:成功–表示请求已被成功接受,理解,接受.
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务端错误–服务器未能实现合法的请求

常见的状态码有哪些?

200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态码必须和WWW-Authenticata报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值