找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
本帖最后由 武汉10班-林定祥 于 2022-1-18 17:55 编辑

什么叫接口?
接口简称API,程序玉程序之间的对接,交接。

接口一般分为两种:
1.方法与方法--->模块与模块
2.系统对外的接口--->第三方功能

为什么要做接口测试?
1,节约时间,当页面还没有开发出来的时候,后端的功能已经做好了,我们可以通过接口测试的方式,验证后端的功能是否正常,以便提前进入测试
2,可以发现一些功能测试没法发现的场景
比如:支付场景,在前端是不能输入-1,我们可以跳过前端,直接在接口上请求-1
页面有个输入框:0-100元金额,前端开发已经做了校验只能输入0-100的数字,但是我们仍然需要在接口中进行测试,校验输入中文、字母、特殊字符、负数等等的异常输入,主要测试后端开发有没有对这些异常的情况进行校验

接口测试接入的时间:
在前端页面没有形成的是进行测试(前后端接口联调)
验证我当前的接口--->请求的信息--->响应信息
(在每个阶段都会去测试接口--->包括已发布线上的也会去测试)

接口的分类:
第一种:webserverice接口利用http协议进行传输数据但是他的请求信息以及响应信息都是xml格式的(医疗行业使用)
第二种:http接口也是走的http协议--->请求信息与返回信息都是key values的形式进行数据传输。

接口测试:
手工接口测试(单接口测试):一般使用工具进行测试->postman jmeter接口测试工具执行测试
自动化接口测试(批量运行):语言代码去实现-->java python 实现接口自动化测试

网络发展:
第一代网络发展
远程终端连接:远程终端连接他是利用服务器安装的终端服务器端口,安装远程控制工具(xshell)进行访问服务器。
第二代网络发展
校园网也叫做局域网(lLAN),局域网通常是分布在一个有限制的的地理位置内一般不会超过十公里
第三代网络发展
广域网(WAN)又叫做外网以及公网。连接不同区域的局域网组成广域网。
第四代网络发展
信息高速阶段(如:可视电话)

服务模式
ISP (internet service provider) :互联网业务提供商。ICP (internet content provider) :互联网内容提供商。
(如:电信,移动,联通)(如:新浪,腾讯,抖音)

http协议---->http协议
属于超文本传输协议:都是应用与浏览器与服务器之间的信息传递
区别:
http协议他是以明文的形式进行数据的传输--->数据没有加密,数据很容易被截取。
https:他是以密文的形式进行传输的,他是一个安全的协议,他的协议需要证书加密。
https协议:他是基于http协议以及ssl(证书加密协议)协议进行加密
ssl协议:他是依靠证书来验证服务器身份的协议,可以进行为浏览器与服务器之间通讯进行加密。

http和https区别
1.https协议需要申请ca证书---->需要钱
2.http协议是文明进行传输--->https证书加密传输更加安全
3.http的默认端口号是80 https协议默认端口号443

MYSQL:3306 TOMCAT:8080 NGINX:80

应用层:
http,https他都是超文本传输协议--->基于tcp协议进行传输
DNS协议:域名解析协议 端口53
SMTP协议:邮寄的服务协议,负责邮件的传输 端口:25
FTP协议:文件传输协议 端口:21
TFTP协议:负责计算机与计算机之间的文件传输
Telent协议:登录协议 端口:23
传输层:
TCP:tcp协议负责应用程序以及到网络的数据传输的协议
Udp:udp协议协议负责应用程序以及到网络的数据传输的协议
网络层:
ip:负责计算机之间的通讯协议
idmp:负责网络中的错误处理
rlp:路由器的协议

三次握手
我们经常浏览网页,网络聊天等,都是通过tcp协议以及udp协议进行传输的,Tcp和udp协议都工作在
传输层,都是在程序之间进行数据的传输,tcp以及udp协议都是以二进制数进行传输
那么tcp以及udp协议具体他们之间有什么区别呢?
  答:一个基于链接,一个基于非链接
  例子:如果将人与人之间的通信比喻成进程与进程之间的通信
  a.非链接可以比喻成写信:
  1.对方是否能收到信息
  2.内容是否完整
  3.如果有两封信他是否按照先后顺序进行接受
  b.基于链接可以比喻成打电话:
        那么打电话则不同这一系列的操作,电话接通,相互通话结束挂断等操作流程,都可以得到对方的确认。
  总结:那么打电话是基于链接的那么就是TCP协议,写信就是基于非链接的也就是Udp协议
                  
多测师教育培训之什么是三次握手?:
  答:三次握手是建立通讯链接的过程。
  1.发送端(客户端)向接受段发送一个数据包给接受端(服务器)询问我是否可以与你建立链接,这个数据包我们称为Syn包,syn包里会生成序列号
  2.如果服务端同意链接那么就会进行回复客户端,发送的数据包SYN加上一包ack+1包
  注意:Ack包(ack包有自己的固定格式,长度大小,由接受方发送给请求放 表示发送的syn确认信息无误,1表示数据确认有效)
  3.客户端收到了服务端的确认信息(syn+ack)包之后,然后向服务端发送ack包,建立链接成功
  总结:那么这个交互的过程分为三次,发送了3包数据包,所以我们称为3次握手

四次挥手
什么是四次挥手?
四次挥手是客户端与服务端断开链接的过程,服务端和客户端都可以发起断开链接的请求。
多测试教育之如何关闭链接?
1,客户端向服务端发送一包fin包表示要关闭链接,然后自己进行终止等待1的状态,这是第一次挥手;
2,服务端收到fin包之后,发送给客户端一包ack包,表示自己进入了关闭等待的状态,此刻客户端进入终止等待2的状态,这是第二次挥手,但是此时客户端还可以接受数据,而服务端还可以发送未发送的数据
3,服务端发送fin包之后,然后发送一包ack包进入最后确认的状态,这是第三次挥手
4,客户端收到ack之后回复服务端一包ack包进入超时等待阶段,经过超时时间之后关闭链接,而服务端收到ack包之后立即关闭链接,这是第四次挥手。
注意;为什么客户端要进入等待时间,假设客户端发送玩最后一包ack包之后直接断开链接,一旦ack包在网络中丢失,那么服务端就会一直处于网络等待状态,那么这个机制也是为了保证在中不可靠的网络信道中,进行可靠的链接断开确认

常见的接口测试工具
fiddlerl (抓包软件,也可以用来测试接口)
postman (以前属于谷歌浏览器的插件,最常用的  款接口测试工[具)
jmeter (市面上最流行的接口和性能测试工具)
Charles (Mac系统 苹果电脑用这个抓包工具用的比较多)soapui (soapU可以测自动化和性能 也比较常用)
wireshark (抓包软件, 也可以用来抓取tcp和udp,tlst协议的数据)

接口的测试流程:
接口的需求分析(开发梳理的接口文档)
接口测试需求评审(是否符合项目要求)
编写接口测试用例(等价类,边界值,场景分析法等去做接口的用例设计)
接口用例的评审(覆盖的场景是否全面,是否有遗漏的功能)
导入接口测试管理工具(postman)
执行接口用例(在工具执行接口测试用例)
提交bug分析问题
编写测试小结(每天编写完成之后我需要对我今天测试内容总结)
编写测试报告(功能全部实现,没有bug的情况下编写测试报告)

在测试页面的功能当中还需要去测试接口吗?
  答:我页面功能都能跑通的情况下接口会跑不通吗?不会针对全部的接口进行测试,偶尔有页面有功能问题的地方,我会进行接口的校验

fiddler:是浏览器与服务器之间的代理工具
没有设置fiddler代理之前所有的请求信息是直达的
设置fiddler代理所有请求信息都会呗fiddler捕获--接口信息的篡改
fiddler的作用:是浏览器与服务器之间的代理工具,获取客户端服务器之间的数据包(理解为打包数据)

POST:请求的方法+接口的路径 +基于协议的版本
HOST:域名或者ip
connerction:服务器与客户端连接的类型 keep表示永久的连接
content-length:表示传输文件内容正文的大小 (字节数)
accept:表示客户端想要接收的数据类型
requested:表示ajax请求
user:用什么工具发送的请求
content-type:请求正文的格式类型
origin:表示跨资源的请求,请求来源
referer:表示请求是从哪个页面过来的
accept-encoding:表示接收的编码格式
accept-language:表示接收的语言
#:id编号
result:响应的状态码
protocol:使用的协议
host:服务器的主机名
URL:表示文件在服务器当中的文件路径
body:响应的字节数
coching:响应头的信息
content-type:请求正文的内容信息
origin:标识跨域资源请求
X-Requested-With:标识Ajax请求, 大部分js框架发送请求时都会设置它为XMLHttpRequest
User-Agent:用户代理的字符串值浏览器的身份标识字符串,user-agent会告诉网站服务器,访问者是通过什么工具来请求的
Content-Type:设置请求体的MIIME类型 Content- Type: application/x-www-form-urlencoded
Referer :设置前一个页面的地址,并且前一个页面中的连接指向当前请求Accept-Encoding :设置接受的编码格式Accept-Encoding: gzip, deflateAccept-Language :设置接受的语言


为什么要用fiddler进行抓包?
1可以捕获到服务器与浏览器交互的接口
2抓包完成之后可以进行分析接口的状态,来判定这个接口到底存不存在bug

fiddler断点的操作:
reles----barekoption----before requests 请求断点(捕获请求信息)
   after    requests 发送断点  捕获服务器返回的信息
   disabbled          停止断点
ctrl + r呼出设置界面
   
弱网测试:2G的网速:150Kbps,折合下载速度15-20K/s。3G的网速:1-6Mbps,折合下载速度120K/s-600K/s。4G的网速:10-100Mbps,折合下载速度1.5M/s-10M/s。

Rules——Performance----Simulate Moder Speeds 设置弱网

接口的请求类型:
1 post请求:他是讲所有的参数防止请求当中(用在增加上)
2get请求:讲所有的请求参数的信息暴露在url地址当中(用于查询)
3put请求:做一些修改操作
4delete请求:删除操作
GET  (查)请求指定的页面信息,并返回实体主体,请求参数一般放在ur|地址栏的后面。
POST (增)向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
HEAD  类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头PUT (改)  从客户端向服务器传送的数据取代指定的文档的内容。DELETE (删)  请求服务器删除指定的页面。
CONNECT  HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。OPTIONS  允许客户端查看服务器的性能。


post与get请求的区别:
1.post请求更安全(蒋所有的请求参数防止请求体里面)
2.post他可以接受任意数据类型的参数
3.post请求他的参数长度没有限制
4.get请求速度比post请求块
5.get请求他的参数长度有限制
6.get请求只能接受字符串类型的(ascii的字符)数据参数

请求正文的类型:Content-Type
application/x-www-form-urlencoded(from 表单的正文类容所有参数数据是以key values的形式进行传输)
application/json请求正文格式的数据类型 类似python当中的字典格式{ }
text/xml格式:xml格式提交数据
application/word :正文类型是word文档类型的形式
HTTP/1.1 :表示超文本传输协议版本为1.1版本URL统一资源定位符Host:域名Host表示请求的服务器网址
Content-Length:用来说明传输的正文大小或者内容长度
Connection: Keep-Alive Connection表示客户端与服务连接类型Keep-Alive:表示持久连接
Accept: text html,application/xhtml+ xml,application/xml;q=0.9,/;q=0.8浏览器支持的MIME消息内容类型分别是text html、application/xhtml+ xml、


“ 1** ” 代表服务器收到请求,需要操作者进一步执行
100:继续操作
101 :服务器根据客户端的请求需要进行切换协议
“2**”:表示处理成功
200 :请求成功
201: 已创建 请求成 服务器一创建的新资源
202: 已接受请求但是为处理完成
“3**”:表示从定向-需要进一步完成操作
304 未修改-服务器返回状态码时,不会返回任何资源
305:使用代理,所有资源都需要通过代理访问
“4**”: 表示客户端的错误,请求包含语法错误,或者无法完成请求--都是前端问题
403:服务器已经理解客户端的请求但是拒绝操作
404:服务器无法根据客户端请求找到资源
“5**”:服务器错误的状态码
500:服务器内部错误,无法完成请求
501:服务器不支持请求的功能
503:系统维护


接口测试怎么进行测试?
获取接口文--文档
正常场景:按照接口的描述,填写正常的参数以及数据,做接口的拉通
异常场景:
参数异常:1参数名称错误2参数为空3参数数据转换4参数长度
数据异常:1为空2长度3数据类型错误

接口测试关注的点
观察他的响应报文信息---->响应时间
  ----->如果增加数据的接口-->进行数据库数据校验


   

   

   


分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册