python接口自动化-HTTP协议


一、前端和后端的知识

1、专业术语

SAAS:software as a service 软件即服务

PAAS:platform as a service

2、前端:WEB/APP/PAD 前端发送请求到后端(拉钩网的服务器),服务器把招聘的数据返回来 最后前端拿到返回来的数据,展示在WEB/APP等PAD上

3、后端:主流的开发语言:Java,Python,Go 之间是通过HTTP的协议来进行交互的

4、前端和后端的交互协议

前端和后端通过HTTP的协议来进行交互,这是一种新的开发模式

5、前端和后端交互的技术栈

VUE&React组件(前端的技术栈)来和后端来进行交互的

6、客户端与服务端举例

客户端(前端),服务端(后端)

1)我们拿出客户端(手机),扫描二维码

2)服务端(XX大数据中心)把扫描的结果信息返回给客户端(手机)

3)客户端(手机)接收服务端返回来的数据

4)最后把结果信息展示在手机上

客户端与服务端之间是通过HTTP的协议来进行交互的

二、金字塔模型

1、金字塔模型组成

python接口自动化-HTTP协议

 

 

 

UI:功能测试,UI自动化测试

Service:API测试,API自动化测试,服务端测试开发领域

unit:单元测试(代码级别的测试,最底层的测试,业内做的很少)

2、金字塔模型的相关知识

1)软件测试经济学 越底层的需要投入更多的精力和时间去做,越上层的投入少量的精力去做

2)测试效率 API测试效率很高的,执行是按秒来计算的,而UI层执行效率是很慢的,执行是按秒来计算的

三、HTTP协议

1989年的3⽉份了,诞⽣了HTTP的协议,HTTP协议,也可以称呼为“超⽂本传输协议”。

目前使用的是HTTP/1.1的版本,目前最新的版本是HTTP/2.0的版本。HTTP/2.0比起HTTP/1.1的版本来说是非常优秀的,支持海量数据的传输,但是没有大规模化的使用,目前gRPC的协议使用的是HTTP2.0的协议来进行设计的。 gRPC的协议又称呼为:远程过程调用(比如我访问的服务器是在西方或者是在欧美,等于我访问它的速度是在我自己家里访问的速度是一样的)。

HTTP是应⽤层的协议,它不需要刻意的去关注底层⽹络传输层协议的东⻄。(TCP/IP)

HTTP的完整请求流程

 1、客户端与服务端之间建立TCP的连接请求

 2、客户端发送Request请求给服务端 

3、服务端Response响应回复客户端的请求 

4、客户端与服务端之间的TCP连接请求关闭

python接口自动化-HTTP协议

URI可以称为统⼀资源标识符,⽽URL是统⼀资源定位符。

HTTP的协议组成部分

1、客户端向服务端发送Request请求: A、请求方法 B、请求头(消息体) C、请求地址 D、请求参数

2、服务端Response响应回复客户端的请求: A、协议状态码 B、响应头(响应体) C、响应数据

请求方法

1、GET:获取资源

2、POST:添加资源

3、PUT:修改资源

4、DELETE:删除资源

GET请求方法:GET请求方法是在Query Params里面填写的,也就是说填写后,是在URL后它的格式是?key1=value1&key2=value2 所以GET方法的请求参数又称呼为路径参数

四、分布式架构/微服务架构(SAAS/PAAS)交互的方式

1、HTTP的协议来进行交互(轻量级的REST API的协议来进行交互的)

2、gRPC的远程过程调用来进行交互的

五、RPC 分布式框架的分支

1、gRPC(Google提出来的)

2、Aapache Thrift (facebook提出来的)

3、Dubbo(alibaba提出来的)

六、网络分层

HTTP的协议来说,数据安全是非常核心非常重要的

python接口自动化-HTTP协议

七、TCP/IP通信传输流

python接口自动化-HTTP协议

八、三次握手

1、为了数据的安全性(客户端与服务端数据传输的安全性),设计了三次握手,来避免这个问题

python接口自动化-HTTP协议

2、三次握手的流程描述

1)客户端发送请求

2)服务端收到请求,服务端会和客户端之间进行确认,告诉客户端,说我收到了请求

3)服务端把数据发送给另外一个客户端,另外一个客户端收到数据

4)另外一个客户端收到数据后,会告诉服务端它收到了请求以及数据

九、通信模式

1、同步通信

在客户端与服务端在进⾏交互的时候,通信模式主要分为同步通信和异步通信。同步通信简单的可以理解为客户端发送请求给服务端,服务端必须得回应客户端的请求。所以同步通信它存在如下的缺点,具体为:

1)容易超时,客户端发送请求后,服务端迟迟没有回应客户端的请求

2)如果请求是存在⼤的计算量和逻辑存在问题,就会导致请求堵塞,后⾯的都积压

同步通信模式有时候又称呼为:请求/响应模式,同步请求的交互具体为:

python接口自动化-HTTP协议

2、异步通信

由于同步交互存在超时以及堵塞的情况,所以也就有了异步的交互。在异步的交互中,客户端和服务端互相不需要关注对⽅的存在,只需要关注对应的MQ的消息,客户端与服务端的交互主要是会通过MQ的消息中间作为消息的传递来进⾏交互的,具体交互如下:

python接口自动化-HTTP协议

异步通信的MQ组件:RabbitMQ和Kafka

RabbitMQ与Kafka的区别

Kafka:能够处理海量的数据(亿为单位),它的性能是非常好的,但是对数据的一致性要求不高

RabbitMQ:对数据的一致性可靠性的要求是非常高的,但是它的性能是很差劲的

十、POSTMAN的get方法实战

postman的页面展示

python接口自动化-HTTP协议

1、验证Email地址是否正确

HTTP GET

以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。

GET /WebServices/ValidateEmailWebService.asmx/ValidateEmailAddress?theEmail=string HTTP/1.1
Host: ws.webxml.com.cn
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<unsignedByte xmlns="http://WebXml.com.cn/">unsignedByte</unsignedByte>

在postman中输入请求的地址和请求参数如下:

python接口自动化-HTTP协议

 

 2、获得天气预报数据

HTTP GET

以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。

GET /WebServices/WeatherWS.asmx/getWeather?theCityCode=string&theUserID=string HTTP/1.1
Host: ws.webxml.com.cn
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
  <string>string</string>
  <string>string</string>
</ArrayOfString>
在postman中输入请求的地址和请求参数如下:

python接口自动化-HTTP协议

 

 3、获取航班时刻表

HTTP GET

以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。

GET /webservices/DomesticAirline.asmx/getDomesticAirlinesTime?startCity=string&lastCity=string&theDate=string&userID=string HTTP/1.1
Host: ws.webxml.com.cn
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://WebXml.com.cn/">
  <schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>
在postman中输入请求的地址和请求参数如下:

python接口自动化-HTTP协议

 

 



原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/tech/python/275258.html

(0)
上一篇 2022年7月18日 20:57
下一篇 2022年7月18日 20:58

相关推荐

发表回复

登录后才能评论