多测师肖sir_高级金牌讲师__接口测试之基本介绍(1)

接口测试:
cms: 网站 http://cms.duoceshi.cn/cms/manage/login.do

1、接口测试?(api)

定义:测试系统和系统之间的数据交换,和模块与模块之间的数据交互。

案例1:系统和系统,多测师线上官网课程,开通微信支付。(多测师系统,微信系统交互) 第三方接口
案例2:模块和模块的交互:多测师的官网论坛, 注册模块,登录模块,发帖模块 之间的数据交互 。(注册和登录 两个,模块直接的交互)
案例3:前端输入数据(ui页面设置)通过接口传输==后端逻辑(判断)
接口理解为:一个管道,
案例4:前后端接口联调

在这里插入图片描述
接口图片
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
接口前后端的联调用
在这里插入图片描述
2、为什么做接口?(测试bug)
(1)提前进入测试,(早进入测试,早发现bug,提高工作效率)
(2)能发现功能测试无法测试的场景
(案例:页面限制金额的输入:整数,前端输入不了(金额:-1),在接口中测试,在参数中输入复数)
(3)节约时间
(案例:接口测试通了,功能也是正常,做接口测试效率高,你在测试功能页面上的问题)

1、顶层:功能测试一般是在ui界面形成以后测试
2、中间: api 动态数据是通过api传到数据库中获取资源(静态资源和动态资源)
3、底层:代码

越低层,要求越高

在这里插入图片描述
3、ui自动化测试在什么时候?
在功能测试和接口测试以后,用来回归测试。
ui自动化主要在回归,项目的稳定和版本不是频繁改动下我们可以做ui自动化

4、接口测试在什么时候开始?
不同公司的情况分三种:
(1)第一种:(功能测试前)ui界面未形成之前,后端代码完成,测试接口,一定要有环境,开发提测。(先做接口,在做功能)
(2)第二种:(功能测试时)任务:功能 和接口分开中,有专门人做接口,测试功能的时候,同时进行。(接口,功能,同时进行)
(3)第三种:功能测试完以后,在进行接口自动化测试(功能无法测试的场景),检验项目的正确性,可以用来回归(功能测试之后进行)
5、公司具体情况?
在企业中,前端与后端是独立开发的,最终的项目会进行前后端的接口联调,来确保后端的数据能正常的在前端页面展示,因此需要确保接口功能能正常的传输数据
注意:开发测试接口以接口调通的问题 和测试测试接口 校验数据 正确性是否一致;

6、接口联调:(第三方联调)
前后端开发,我们前端开发好了,后端的逻辑代码开发好了,就合并代码,部署到环境中,在前端登录,查看是否有数据返回,
接口联调一般在冒烟测试的提测之前,
接口联调一般不用我们测试,开发做的

联调测试性质:集成测试,又称组装测试、联合测试、联调测试、子系统测试、部件测试。不同的称呼而已,侧重点在于模块间接口的正确性、各模块间的数据流和控制流是否按照设计实现其功能、以及集成后整体功能的正确性。
所以联调测试涉及面广,要掌握的知识面广。
联调测试工作内容:联调测试介于白盒、黑盒之间,可以称为灰盒测试,所以需要熟悉白盒、黑盒。
联调测试的关注点是模块间的接口。至于模块怎么划分要根据具体项目来有针对性地划分。
拓展知识:
桩,mock ,功能(模拟目前没有实现场景)
mock测试,源自于英文单词fake,意为假的测试(参考链接:https://www.cnblogs.com/xiaolehua/p/13686943.html)

=============================================================
接口基础知识:
二、接口测试基础之网络基础
1、网络的概念:在IT领域,网络是信息传输、交换、接收、共享的虚拟平台,通过它把各个点、线、面的信息联系在一起,从而实现资源共享。
2、网络的四要素:
有独立功能的计算机
有通讯设备
通讯线路有网络软件支持
实现资源共享

3、网络的发展阶段
第一代:远程终端连接(20世纪60年代初)例如: xshell连接Linux服务器
第二代:局域网(20世纪60年代中期)例如:校园网
第三代:广域网(internet-20世纪80年代)例如:跨城市,跨洲
第四代:信息高速阶段(如:可视电话,网上电视点播,千兆以太网等)

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

5、网络的分类
1).按覆盖范围分:
局域网->城域网->广域网
2).按拓扑结构分:
总线型,环型,星型,网状型
在这里插入图片描述

3).按传输介质分:
有线网,无线网,光纤网

6、tcp/ip(协议)(重点)
网络协议(TCP/IP)(network protocol)1)
什么是tcp/ip协议?
中国人和中国人说话,要遵循汉语的的语法结构,使用汉语的发音。当我们和外国人交流时,就要适用外国的语言了,遵循外国的语法机构和发音。其实这就是一种协议,只不过我们称之为语言。计算机在这方面体现的更为直观,两台机器之间该如何通信呢,就需要制定各种各样的协议。例如:文件传输适用TCP协议。域名系统适用DNS协议。有了这些协议的存在,各种数据流按照规则传输,计算机之间得以通信。
(1)TCP/IP协议是一个协议集合。所以统称为TCP/IP。TCP/IP协议族中有一个重要的概念是分层,TCP/IP协议按照层次分为以下五层。应用层、传输层、网络层、数据链路层,物理层。
(2)什么是OSI
OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System
Interconnection Reference Model,OSI/RM),它是由国际标准化组织提出的一个网络系统互连模型。在这个OSI七层模型中,每一层都为其上一层提供服务、并为其上一层提供一个访问接口或界面,不同主机之间的相同层次称为对等层。对等层之间互相通信需要遵守一定的规则,如通信的内容、通信的方式我们将其称为协议(Protocol)
在这里插入图片描述

重点:(背下来)

http和https建立在tcp和udp协议上
在这里插入图片描述

常见的协议:http 和https
http的协议:(HTTP协议的端口号为:80)
1、HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(www:World Wide Web )服务器传输超文本到本地浏览器的传送协议,HTTP协议的端口号为:80
2、HTTP协议的工作原理:
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
在这里插入图片描述

https: 安全协议(端口443)
3、HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议)WEB服务存在http和https两种通信方式,http对于传输采用不加密的方式,https默认采用443端口,在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密。
(1)https=http+tls/ssL

一、https和http的区别?(面试题)(重点)
(1)端口号不一样:http是80,https是443
(2)https是加密传输,http不加密传输
(3)http页面相应速度比https快
(4)https比http更耗费服务资源
(5)http免费,https需要申请证书,需要一定的费用,有极少数免费证书
(6)http是超文本传输协议,https是超文本安全传输协议
参考理解(如):
虽然都是超文本传输协议,但是:
http就是你跟你女朋友之前对话都是直接大声喊的,而且旁边大家都听的到,都可以知道你们在说什么。
https是虽然也是直接对喊,但是加密了,说的都鸟语一样,旁边的一般单身狗听不懂。

三次握手,四次挥手 : 经典知识点(必须掌握)
在这里插入图片描述

三次握手
在这里插入图片描述

(握手)建立连接:三次握手

例子:1、对话案例 2、恋爱案例

在这里插入图片描述
案例,:
a、今晚有时间?
b、有时间,你有时间吗
a 我也有时间,我们约会吧

在这里插入图片描述

(挥手)断开连接:四次挥手

在这里插入图片描述
男 女
1、男:我们分手吧?(男的拉黑女)
2、女:可以(拉黑)
3、女:我把你拉黑 把?
4、男:确认能不能发送信息
例子:关键:双方相互断开所以需要四次
在这里插入图片描述
协议和端口:
http:端口80
https:443
telnet:远程登入协议 23
FTP x件传输协 21
SMTP:邮件传输协议 25
DNS:域名解析协议 53
POP3:邮件服务器 110
UDP:用户数据报协议
OSI:网络协议
IOS:苹果操作系统
ISO:镜像文件格式

65535个端口
1-1024端口属于固定端口
1024-65535端口属于动态端口

拓展协议和端口号:
在这里插入图片描述

常用的接口测试工具:
(1)fiddler 抓包工具
(2)postman接口
(3)jmeter接口
(4)python中request库做接口

=================================================================================
五、
接口的类型:
1、http接口:基于http协议的开发接口分为: http和https的接口,请求报文都是key-value形式的,返回报文-般都是json串和文本格式等等。(讲解)
2、RPC接口: Remote Procedure Calls远程过程调用(RPC)是一种协议
3、RMI: RMI (Remote Method Invocation,远程方法调用) RMI是针对于
java语言的,RMI 允许您使用Java编写分布式对象
4、Webservice接口: Webservice是 系统对外的接口
5、RESTful风格的接口

=================================================================================
六 接口测试的流程:按下面方式
知识点:接口是开发开发选出来,开发根据需求来开发项目,开发拿到需要,自己开发接口,开发接口,输出接口文档

接口测试:
1、 拿到接口文档(开发编写) 有就参考接口文档,没有接口,自己抓接口,使用抓包工具,
2、编写接口用例(入参,返回参),导入用例管理工具
3、执行接口测试
4、bug管理工具提bug
5、接口测试报告

面试题:
(一)接口测试流程?
a、有接口文档
1、拿到接口文档,·
3、部署环境(有环境就不需要)
4、接口工具(postman,jmeter,python中request 其中一种)
5、根据文档填写具体的参数
6、执行接口
7、发现bug,提给开发,开发修复
8、在验证
9、验证通过以后,输出接口测试报告

b、没有接口文档
1使用接口抓包工具,自己抓取接口
方法一:fiddler
方法二:f12
2、根据抓取接口编写接口用例
3、部署环境(有环境就不需要)
4、接口工具(postman,jmeter,python中request 其中一种)
5、根据文档填写具体的参数
6、执行接口
7、发现bug,提给开发,开发修复
8、在验证
9、验证通过以后,输出接口测试报告

============================================================================
f12
http://cms.duoceshi.cn/cms/manage/index.do
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
4、接口的请求方法(HTTP1.1)
(1)GET (查) 请求指定的页面信息,并返回实体主体,请求参数-般放在url地址栏的后面。
(2)POST (增)向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
(3)PUT (改)从客户端向服务器传送的数据取代指定的文
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS允许客户端查看服务器的性能。
TRACE回显服务器收到的请求,主要用于测试或诊断。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

主要:post ,get ,(次要put,delete)(重点)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
经典面试题:
post和get的请求方法?
a、请求方法之get请求
1)请求的数据一般会显示在地址栏
2)安全性差,请求的入参信息全部暴露在URL地址栏当中
在这里插入图片描述

3)请求的数据量比较小
b、请求方法之post请求
1)请求的数据一般不会显示在地址栏里面, 会把数据封装在表单里面(入参放在
requests body当中)再提交;
2)安全性比较高
3)请求的数据量比较大
在这里插入图片描述

get请求:
http://cms.duoceshi.cn/cms/manage/loginJump.do?userAccount=admin&loginPwd=123456
post请求

在这里插入图片描述
post请求:
在这里插入图片描述

面试题: get和post区别:

(1)get请求无消息体,只能携带少量数据,而且不安全

     post请求有消息体,可以携带大量数据,且安全

(2)携带数据的方式:

get请求将数据存放在url中,(支持字符类型)

post请求将数据存放在消息体中,(支持键值,json,表单格式)

(3)get方式提交的数据最多只能有1024个字节,而post则没有限制

=============================================

url 统一资源标识符
url:http://cms.duoceshi.cn/cms/manage/index.do
在这里插入图片描述

uri统一资源定位符
cms/manage/index.do
urn 统一资源名称
http://cms.duoceshi.cn/
在这里插入图片描述

=========================================
cookie和session和token了解(重点)
cookie:cookie是有服务器生成,发送给浏览器,浏览器把cookie以kv形式保存在某个一个路径下的文本文件内,下一次请求同一个网站时会把cookie发送给服务器;
coolkie的数据存放在浏览器上,所以浏览器加入了一些限制,确保cookie不会被恶意使用,
同时不会占据太多磁盘空间,所以每个域的cookie的数量是有限的。
cookie是一个非常具体的东西,指的就是里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。
备注:单个cookie不能超过4k,很多浏览器限制一个站点最多保存20个cookie

在这里插入图片描述
在这里插入图片描述

session:就是一个会话,服务器给每个客户端一个身份标识,作为识别,浏览器一般用cookie,
服务器使用seeion把用户的信息临时保存在服务器上,用户离开网站后session会被销毁。
这种用户信息存储方式相对cookie更安全,但如果web服务器做了负载均衡,session请求另一台服务器时
个人建议:登录信息,交易信息等保存在session中,其他信息放在cookie中

token:token是客户端首次登陆时,服务端生成的一串字符串,再次登陆只需要token即可,无需用户名和密码。(qq登录一次,有记录账号和密码功能)
最简单的toeken组成:uid(用户唯一的身份标识)time(当前时间戳)sign(签名)等
token:目的是减轻服务器压力,减少频繁的查询数据库,使服务器更加健壮。

token原理:
(1)第一次登陆成功以后,服务器就产生一个token值,这个token值会被服务器保存,同时将token发送给客户端,
(2)客户端拿到token值要进行保存,
(3)等再次发起客户端网络请求后,再将请求中tonken值会发送给服务器。
(4)服务接收到客户端的请求后,会进行token值对比。

结果1:一致,登录成功,处于登录状态
结果2:不一致,信息失效,需重新登录
结果3:若不在服务中,处于未登录状态

=============================================================

常用的http状态码(重点)
HTTP状态码详细解释:
重点
[200清求已成功,请求所希望的响应头或数据体将随此响应返回;
201请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其
URI已经随Location头信息返回;
302请求的资源现在临时从不同的URI响应请求;
400语义有误,当前请求无法被服务器理解;除非进行修改,否则客户端不应该
重复提交这个请求/请求参数有误;
403服务器已经理解请求,但是拒绝执行它;
404请求失败,请求所希望得到的资源未被在服务器上发现;
500服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;
501服务器不支持当前请求所需要的某个功能;
505服务器不支持,或者拒绝支持在请求中使用的HTTP版本; ;
资料拓展:
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源网页等不存在 (表示路径错误)
500 - 内部服务器错误 (表示内部代码错误)

1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。

100 Continue 继续。客户端应继续其请求
101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议

2xx (成功)表示成功处理了请求的状态代码。

200 OK 请求成功。一般用于GET与POST请求
201 Created 已创建。成功请求并创建了新的资源
202 Accepted 已接受。已经接受请求,但未处理完成
203 Non-Authoritative Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205 Reset Content 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206 Partial Content 部分内容。服务器成功处理了部分GET请求

3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303 See Other 查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305 Use Proxy 使用代理。所请求的资源必须通过代理访问
306 Unused 已经被废弃的HTTP状态码
307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向

4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。

400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
405 (方法禁用) 禁用请求中指定的方法。
406 (不接受) 无法使用请求的内容特性响应请求的网页。
407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408 (请求超时) 服务器等候请求时发生超时。
409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 (未满足期望值) 服务器未满足"期望"请求标头字段的要求。

5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

500 Internal Server Error 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源网页等不存在 (表示路径错误)
500 - 内部服务器错误 (表示内部代码错误)

=========================================================================
同步接口:
发送一个请求必须要等到响应结果才能发起下一个接口请求(比如:绑定银行卡,支付接口)

异步接口:
发送一个请求不需要等到响应结果就能发送下一个就看请求(借款接口,)

=========================================================================

拓展知识(一):
web接口请求简单鉴权机制

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多测师软件测试培训师肖sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值