一、HTTP协议
HTTP协议: 是个协议,基于请求响应----应用层的协议
特点:
(1) 客户端/服务器模式 浏览器与服务器交互
(2) 简单、快
(3) 灵活
(4) 无连接、无状态
连接 长连接 打电话
HTTP每次响应完毕数据后,就会断开连接
服务器不会记录时哪个浏览器来给我发送请求,服务器只会按照请求返回对应的应答
URL 统一资源定位符
https://www.processon.com/mindmap
http://127.0.0.1:8080/login?username=xxx&password=xxx
由多部分组成,每个部分由对应的含义
协议部分:https http
域名:www.processon.com 可以用ip+port来作为域名使用
资源路径部分 :/login 只有在查询操作时候可以有
查询参数部分:username=xxx&password=xxx 多个参数用&符号分割开来
url地址输入并且回车之后 相当于向服务器发送了一次请求
http请求是什么?
http请求分为三部分:请求行、请求头、请求体
请求行使用来说明请求方法、要访问的资源,以及协议版本 常用的请求方法:get(从服务器获取资源:查询)、post(从服务器操作资源 登录)
请求头:
User-Agent:浏览器类型
Accept:客户端可识的内容
Content-Type:请求体数据类型
text/html 纯HTML格式
text/plain 纯文本格式
image/jpeg jpg图片格式
application/json json格式数据
application/x-www-form-urlencoded:from表单 以key-value数据格式发送数据
muiltipart/form-data 文件上传
请求体:post请求方法,不在get请求方法里面
数据类型:表单、文本、json、xml
与请求数据相关,最常使用就是Content-Type:
HTTP响应:前提 开发人员返回的
状态头、响应头、响应体
状态头:有三位数字构成,第一个数据,定义了响应的类别
1xx:表示请求已经被接收,继续处理
2xx:成功,表示请求已经被接收,理解
3xx:重定向--必须进行更进一步的处理操作
4xx: 客户端错误--请求有语法错误,请求无法实现
5xx:服务器错误--测试人员不要管它,直接提bug
常见面试题:你在测试过程中见过哪些状态码?你知道他的含义吗?
200:服务器返回成功
201:添加数据或者修改数据成功
202:一个请求已经进入后台队列
204:删除成功
400:客户端语法错误,排查参数类型、排查请求头
401:没有权限
403:禁止访问
404:资源不存在
500:服务器代码错误
503:负载均衡出现问题
RestFul:不是约束,是风格
在请求方法里面,添加一些额外的约束,把常用的增删改查 由GET、POST 增加到GET、POST、DELETE、PUT
GET 查询
POST 添加
DELETE 删除
PUT 修改
二、接口测试流程
文档,一般由开发人员编写
接口测试,不同于UI测试,没文档理论上是无法进行的
根据接口文档编写测试用例
等价类、边界值、判定表、场景法
(1)通过性测试--他能够使用
(2)异常情况--我不按照文档要求输入
准备接口测试脚本,选择工具
直接接口测试活动
得到接口测试报告
三、接口测试流程&文档&用例
1、接口文档:一个接口文档,他会有很多不同的格式和内容:word、excel、md、html
接口关心的核心内容(接口核心四要素):
(1)地址URL
有些接口文档是一个完整的地址,能够直接复制粘贴到浏览器请求的,就是完整地址 有http、域名、请求路径
有些接口文档 ,地址是不完整的 没有HTTP 、没有域名,只有请求地址 这种接口通常会把统一的域名地址写到开头
一般问开发
如果是html页面,那就看页面域名或者ip
在开发这个接口的时候开发自己也不知道前面的那节是什么
(2)请求方式 GET、POST、DELETE、PUT
GET:唯一能在浏览器地址栏进行请求
(3)参数:确定它的必填项
(4)返回值的说明:描述当前接口的返回值是否正确
如果以上四要素核对后没问题,但无法获得正确的响应,那么就要检查请求头
面试题:
如果公司没有提供接口文档,怎么办?自己去抓数据 工具Fildder
2、接口测试流程:
和功能测试完全一致
(1)了解需求,分析文档 接口文档、需求文档
(2)设计对应的测试用例
(3)准备接口测试脚本,用工具去准备 postman 、jmeter
(4)执行测试用例
(5)输出对应的测试报告
3、接口测试用例设计
项目--项目名称
模块--模块名称 查询、登录、搜索
用例id--用例编号 英文+编号00001
接口名称--所测试的接口叫什么名字
前置条件--有些接口需要条件,例如登录三次失败后,锁定账号30分钟或者购物车接口需要登录
用例标题--用例的归纳总结
请求URL--接口地址
请求方式--GET/POST
请求数据--参数取值 通过方括号,表示对应的参数正确或者错误的参数
预期结果
实际返回结果
测试结果--PASS/FAIL
测试执行人员
4、设计测试用例的方式
与功能测试用例设计方法类似:把所有要输入的参数当作一个文本框,就意味着,我们一般只需要用等价类、边界值就能完成对应的测试了
方向:
通过性验证 正确的数据输入之后,接口会不会进行响应的应答。
异常情况:参数的长度、参数的类型、参数的必填和非必填
考虑对应的业务场景:xml或者json 当用户失败3次后,是不是锁定账户