一、课程目标
-
学习接口测试理论
-
掌握http协议【重点】
-
熟悉接口测试理论
二、测试理论
2.1 概念
通信方式【面试问题】
-
B/S 客户端通过浏览器访问服务器端,例如通过浏览器访问京东、淘宝
-
C/S 客户端通过客户端程序访问服务器端,例如手机上通过京东的app访问
接口
在系统之间,用于实现数据传输的通道
通信的系统分为两种情况
外部系统:客户端主机和服务器主机两个系统进行通信
内部系统:服务器内部的两个功能模块之间进行通信
面试题:请描述在浏览器打开网页所经过的过程
接口的本质
接口的本质是函数
例如登陆过程,就是远程调用函数,而且还需向函数传递参数,通常登陆过程的参数就是账号、密码
接口测试
-
检查向服务器的接口传递参数的返回结果与我们的预期结果是否一致
验证方式
-
在页面上进行验证:在页面中,可以对输入的内容进行检查,如果不符合要求,会直接提示【不需要点确定】
-
在服务器端进行验证:在服务器中,多页面输入的内容进行检查
程序员
-
前端:负责开发前端页面
-
后端:负责开发后端程序
为什么做接口测试?【了解】
-
通过接口测试,可以绕过前端页面,向服务器端发送数据,从而发现页面测试中发现不了的问题
-
通过接口测试,可以实现软件质量控制前移【不需要等前端开发完成,就可以进行测试】
-
测试成本低、测试效率高
2.2 接口测试的方法
实现接口测试有两种方法
-
用工具测试
-
用代码测试
用工具测试
-
JMeter:更多是用于做性能测试,上手难,功能全
-
PostMan:主要用于接口测试,使用简单,功能少,无法操作数据库、无法生成测试报告
用代码测试
-
python+request
-
java+httpclient
三、http协议【重点内容】
学习的内容
-
URL/URI
-
HTTP请求
-
HTTP响应
重点内容
-
URL的组成
-
HTTP请求报文
-
HTTP响应报文
3.1 http协议简介
协议:
-
通信双方提前约定好的规则
常见的协议
-
IP:IP地址
-
TCP:传输控制协议【Transfor Control Protocol】
-
UDP:用户数据报协议【User Data Protocol】
-
HTTP:
-
超文本传输协议,用于实现让用户访问网页【Hyper Text Transfor Protocol】
-
默认端口是80
-
-
HTTPS
-
加密后的http协议
-
默认的端口是443
-
-
ICMP
-
telnet
-
默认端口是 23
-
-
ARP
-
RARP
-
USB
-
FTP
-
默认端口20 21
-
TCP协议:
-
传输控制协议
-
在传输之前,需要首先建立链接,然后在建立的链接中传递数据,在数据传递完成后,拆除链接
-
建立链接的过程称之为TCP的三次握手
-
拆除链接的过程称之为TCP的四次挥手
-
TCP协议传递数据,有确认机制,如果在规定时间内,没有收到确认包,会认为这个包对方没收到,那么就会进行重发
http协议特点
-
超文本传输协议
-
http协议是基于客户端/服务器端实现的
-
同http协议可以实现让客户端访问网页
-
默认端口是80
-
http协议有使用简单、快速、灵活的特点。用户可以根据自己需求去组装请求报文
-
http协议是基于tcp协议,http的每个请求,都需要先建立链接,然后传递数据,然后断开链接
-
http协议的通信过程,也有确认机制和失败重传机制
-
http协议无连接协议。无连接,不是不建立链接,而是说每个链接,仅仅传输一个请求,传输完成后,链接立刻断开
-
http协议是无状态的协议。
端口号的范围:
-
0-65535
http是无状态的,需要借助于cookie来记录登陆状态
在网络通信中,两个主机进行 通信依靠的是:ip+端口
-
通过ip可以在网络中,找到一个唯一的主机
-
通过端口,可以在这个主机上,找到唯一的程序
概念:
-
URL:统一资源定位符
-
URI:统一资源标识符
<span style="background-color:#f8f8f8"><span style="color:#333333">URL https://www.baidu.com/?src=lm&ls=n7c4546d798
URI ?src=lm&ls=n7c4546d798</span></span>
URL的格式
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:red">完整格式:协议</span><span style="color:#981a1a">:</span><span style="color:#aa5500">//domainName[:port]/path/[?查询参数1&查询参数2&查询参数3...]</span>
<span style="color:red">格式举例:</span><span style="color:#0055aa">http</span><span style="color:#981a1a">:</span><span style="color:#aa5500">//www.qq.com:38083/login/login.html?name=tom&password=123&age=15</span></span></span>
说明:
域名问题:域名可以是www.xx.xx,也可以是IP地址
端口问题:http协议默认端口是80、https默认的端口是443
路径问题:必须知道网站根目录的概念
案例:
<span style="background-color:#f8f8f8"><span style="color:#333333">http://tpshop-net.test/news/index.php?m=home&c=user</span></span>
协议是什么? http
端口是什么? 80
域名是什么? tpshop-net.test
index.php在网站什么位置存放? 在网站根目录下的news目录中
传递进来几个查询参数,分别是是什么? 有两个, m 和 c,对用的值是home和user