7.18 API自动化测试(1)

API自动化测试(1)

SAAS:software as a service 软件即服务

PAAS:platform as a service

 

目前都是前后端分离的开发的模式,前端和后端通过HTTP的协议来进行交互,这是一种新的开发模式。VUE&React组件来和后端来进行交互的

前端的技术栈:VUE&React

后端:主流的开发语言:Java,Python,Go

前端和后端之间是通过HTTP的协议来进行交互的

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

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

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

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

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

eg:

1、我拿出我的手机扫描二维码

2、XX大数据中心收到我来查看二维码的请求

3、把我的结果信息检索出来,把我的结果信息返回给我的手机

4、我的手机接收到了返回的数据

5、最后把我的结果信息展示出来

 

接口(API)测试的技术学习的内容:

1、HTTP的协议

2、主流的测试工具PostMan,JMeter

3、MockServer服务

4、代码级别的API测试框架

API测试概述

接⼝测试⼜被称为API测试,是软件测试的⼀种测试模式,它包含了两个维度,在狭义的⻆度上指的是对应⽤程序接⼝的功能进⾏测试,在⼴义的维度上是指集成测试中,通过调⽤API测试整体的功能来完成度,可靠性,安全性和性能。

金字塔模型

 

 

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

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

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

不同层面分析金字塔模型:

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的协议又称呼为:远程过程调用(比如我访问的服务器是在西方或者是在欧美,等于我访问它的速度是在我自己家里访问的速度是一样的)。

 

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

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

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

 

gRPC的协议是由Google提出来的 facebook--->apache thrift alibaba-->dubbo的协议

RPC 分布式框架的分支:

1、gRPC

2、Aapache Thrift

3、Dubbo

网络分层

数据不够安全

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

TCP/IP分层管理

TCP/IP协议按层次主要为:应⽤层,传输层,⽹络层,数据链路层。

应用层

应⽤层决定了向⽤户提供应⽤服务时通信的活动。⽽HTTP的协议和gRPC的协议就是属于应⽤层的协议。

传输层

应⽤层的下层是⽹络传输层,提供处于⽹络连接中的两台计算机之间的数据传输。

网络层

主要是⽤来处理⽹络上流动的数据包,所谓数据包就是⽹络传输中的最⼩单位,在该层协议中,规范了通过怎样的 路径到达⽬标计算机,并且把数据包传送给对⽅。

链路层

主要是处理连接⽹络的硬件部分,如操作系统,硬件设备的驱动等。

TCP/IP通信传输流

下⾯具体还是以流程图来描述这部分,具体如下:

 

三次握手

为了确保把数据能够送到⽬标的服务器,TCP协议内部使⽤了三次握⼿的策略机制,也就是说在TCP协议中,TCP 把数据包送去后,TCP会进⾏确认对⽅是否收到,或者是确认是否成功送达,那么三次握⼿主要使⽤了TCP的标 志,具体为:SYN和ACK。⾸先Client端发送连接请求报⽂,Server段接受连接后回复ACK报⽂,并为这次连接分配 资源。Client端接收到ACK报⽂后也向Server段发送ACK报⽂,并分配资源,这样TCP连接就建⽴了。总结三次握⼿具体为:

第⼀次握手:起初两端都处于CLOSED关闭状态,Client将标志位SYN置为1,随机产⽣⼀个值seq=x,并将该 数据包发送给Server,Client进⼊SYN-SENT状态,等待Server确认;

第二次握手:Server收到数据包后由标志位SYN=1得知Client请求建⽴连接,Server将标志位SYN和ACK都置 为1,ack=x+1,随机产⽣⼀个值seq=y,并将该数据包发送给Client以确认连接请求,Server进⼊SYN-RCVD 状态,此时操作系统为该TCP连接分配TCP缓存和变量;

第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1, ack=y+1,并且此时操作系统为该TCP连接分配TCP缓存和变量,并将该数据包发送给Server,Server检查ack 是否为y+1,ACK是否为1,如果正确则连接建⽴成功,Client和Server进⼊ESTABLISHED状态,完成三次握 ⼿,随后Client和Server就可以开始传输数据。

eg:

1、客户端发送请求

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

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

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

URI和URL

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

获取图片地址:

 

可在浏览器中加https://打开:https://gw.alicdn.com/bao/uploaded/i4/96416556/O1CN01WAcFYM1yIhNOCe8lF_!!0-saturn_solar.jpg_300x300q90.jpg_.webp

 

HTTP协议

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

HTTP请求流程

HTTP的完整请求流程:

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

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

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

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

 

持久连接:keep-alive

eg:10万张图片,一次TCP的连接请求;有多少资源,就有多少Request和Response;回复 一次TCP的连接关闭

 

通信模式

1、同步通信

缺陷: A、超时 B、客户端的请求可能存在逻辑上的错误或者说非常大的计算逻辑

在客户端与服务端在进⾏交互的时候,通信模式主要分为同步通信和异步通信。同步通信简单的可以理解为客户端发送请求给服务端,服务端必须得回应客户端的请求。所以同步通信它存在如下的缺点,具体为:容易超时,客户端发送请求后,服务端迟迟没有回应客户端的请求如果请求是存在⼤的计算量和逻辑存在问题,就会导致请求堵塞,后⾯的都积压

 

2、异步通信

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

 

MQ组件:RabbitMQ和Kafka

RabbitMQ与Kafka的区别:

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

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

常用请求方法

1、客户端向服务端发送Request请求:

      A、请求方法

      B、请求头(消息体)

      C、请求地址

      D、请求参数

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

      A、协议状态码

      B、响应头(响应体)

      C、响应数据

请求方法:

1、GET:获取资源

2、POST:添加资源

3、PUT:修改资源

4、DELETE:删除资源

GET实战

1、号码归属地查询:http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo

URL:http://+域名+资源的详细地址 http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo

 

postman中实战:

 

2、QQ号在线状态:http://ws.webxml.com.cn/webservices/qqOnlineWebService.asmx?op=qqCheckOnline

postman展示:

 

posted @   重逢Fate  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示