接口测试理论基础
一、接口测试介绍
1、接口测试:(也叫api测试)
定义:系统与系统之间的数据交互,模块与模块之间的数据交互,程序与程序之间的数据交互。
如:http://49.233.201.254:8080/cms/manage/loginJump.do

2、为什么做接口?
(1)节省测试时间
(2)当ui界面还未出来时,测试可以提交提前介入测试
(3)接口测试能测试到功能测试不到的场景
如:输入金额:正整数,比如测试负数
3、如何做接口测试?
通过代码或者接口测试工具进行接口测试?
工具:postman、jmeter、apifox
代码:python+requests
4、接口测试流程:
(一)有接口文档(接口文档是开发写的)
步骤:
(1)熟悉接口文档
(2)根据接口文档设计接口用例
(3)接口用例评审,评审通过以后,导入到用例管理工具(如禅道);
(4)搭建测试环境
(5)使用代码或接口工具(如postman)去测试接口
(6)测试的接口有bug通过bug管理工具,提交给开发
(7)开发修改代码,重新提交代码包,在去验证,直到接口100%通过
(8)输出测试报告
(二)无接口文档
步骤:
(1)通过抓包工具进行抓取接口(f12 或fiddler)
(2)根据抓取的接口设计接口用例
(3)接口用例评审,评审通过以后,导入到用例管理工具(如禅道);
(4)搭建测试环境
(5)使用代码或接口工具(如postman)去测试接口
(6)测试的接口有bug通过bug管理工具,提交给开发
(7)开发修改代码,重新提交代码包,在去验证,直到接口100%通过
(8)输出测试报告
5、接口测试工具?
(1)postman 接口测试工具 (讲解)
(2)jmeter 接口测试工具,性能测试工具 (讲解)
(3)fiddler 抓包工具 (讲解)
(4)charles 抓包工具
(5)bodby 录制接口的工具
(6)apifox 接口工具
(7)python+requests python代码
6、端口号:
(1)数据库:3306端口
(2)shh :22 端口
(3)http :80 端口
(4)https: 443端口
(5)smtp: 110
(6)http:8080
(7)https:443
一个电脑有65536个端口,1-1023 公认端口,1024-49151 注册端口,49152-65536 是动态或私有端口
7、接口的类型
(1)http接口 (主讲)
(2)rpc接口
(3)rmi接口
(4)webservice接口
(5)restful 接口
8、http和https讲解
(1)http是一个超文本传输协议,是用于万维网服务器传输超文本到本地浏览器的传输协议,http协议的端口号:80
(2)http协议的原理:HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向户端发送响应信息。
(3)https协议:(http+ssl/tls) 定义:https是一个超文本传输安全协议,web服务器存在http和https两种通讯方式发送请求,服务器接受到http请求后,采用不加密的方式传输,而https是在传输数据的过程中,需要用ssl/tls对数据进行加密和解密端口号:443
(4)http 和https的区别?
a、端口号不一样:http80,https 443
b、https是加密传输,http不是加密传输
c、http请求速度要比https更快
d、https比http更耗费服务资源
e、tcp/ip协议(==国际英语)
osi参考模型:(应用层、表示层、会话层)、传输层、网络层、数据链路层、物理层
9、(一)、cookie (cookie存储在客户端上)
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。
3、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

(二)、session (session存储在服务器上)
1、session翻译为会话
2、session服务器会保存一份,可能保存到缓存/数据库/文件里面。
3、session从字面上讲,就是会话。服务器要知道当前发请求给自己的是谁。为了做这种区分,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。至于客户端怎么保存这个“身份标识”,对于浏览器客户端,大都默认采用cookie 的方式。
服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。
比如:网吧上网,
(三)、token:(令牌,服务器返回给到客户端的)
1、token的定义: token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个token便将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
2、使用token的目的: token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
3、token的原理:
第一步:你第一次登入成功之后,服务器就会产生一个token值,而这个值就会被服务器保存,同时将token值发送给客户端
第二步:客户端拿到token值后要进行保存
第三步:当客户端再次发起网络请求时(该请求不是登录请求,是登录之后的请求),在该次请求中token值会发送给服务器。
第四步:服务器接受到客户端的请求后,会进行token值的对比。当token值一致时,说明已经登入成功,用户处于登入状态;当token值不一致时,说明原来登入的信息已经失效,让用户重新登入。
如:qq登录,无须账号,密码登录
浙公网安备 33010602011771号