HTTP协议、接口测试流程、接口测试流程&文档&用例

一、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次后,是不是锁定账户
相关推荐
RisunJan3 小时前
Linux命令-iptables-restore命令(从文件批量恢复 iptables 防火墙规则)
linux·运维·网络
..过云雨4 小时前
网络计算器实现 - 自定义套接字+序列化+守护进程
网络·网络协议·tcp/ip
hugerat4 小时前
在AI的帮助下,用C++构造微型http server
linux·c++·人工智能·http·嵌入式·嵌入式linux
三两肉5 小时前
HTTPS ECDHE 握手全解析
网络协议·https·github·rsa·echde
小宇的天下5 小时前
HBM(高带宽内存)深度解析:先进封装视角的技术指南
网络·人工智能
txinyu的博客5 小时前
HTTP服务实现用户级窗口限流
开发语言·c++·分布式·网络协议·http
ha20428941945 小时前
Linux操作系统学习记录之----自定义协议(网络计算器)
linux·网络·学习
糖~醋排骨5 小时前
DHCP服务的搭建
linux·服务器·网络
huohaiyu5 小时前
网络中的一些基本概念
运维·服务器·网络