API-01-HTTP

HTTP

一、HTTP

1. HTTP的简介

HTTP,全称HyperText Transfer Procotol,超文本传输协议。

超文本表示超越文本限制和超文本链接。比如可以传输图片、音频、视频、超链接的跳转。

HTTP是1991年被发明,发明者是美国人。初衷只是传输文本文档。目前可以传略超文本内容。

HTTP在通信之前必须创建TCP的连接,即HTTP是建立在TCP的基础上的协议。

2. HTTP的作用

WebBrowser与WebServer之间进行通信的协定,规定了数据传输的方法、数据的传输格式、安全机制。

3. 浏览器通过HTTP来访问服务器的过程

  1. 打开浏览器,输入https://www.baidu.com/;
  2. 访问DNS来解析域名,DNS将解析到的IP地址返回给浏览器;
  3. 浏览器通过IP地址来访问Web服务器,使用的HTTP协议;
  4. 浏览器与Web服务器进行三次握手,创建TCP的连接(长连接);
  5. 浏览器向Web服务器发送HTTP的请求,请求的是服务器上一个资源;
  6. Web服务器通过资源路径来查找对应的资源,将发送给浏览器;
  7. 浏览器将收到的资源进行渲染和解析;
  8. 关闭TCP连接。

二、URL

URL,全称Uniform Resource Locator,叫做统一资源定位符

URL的通用形式:协议://IP:端口/资源路径?查询字符串#锚点

URL中各部分的解释:

  1. 协议:http、https、ftp、file…
  2. IP:主机的在网络上的地址。ftp://用户名@密码:IP:端口/资源路径
  3. 端口:主机上处理Web请求的应用程序监听的端口,与一致协议
  4. 资源路径:浏览器所请求资源在服务器的地址;
  5. 查询字符串:浏览器请求资源的一些关键字

三、浏览器开发者工具

  • 开发工具打开方式:
  1. F12
  2. 右上角 ----> 更多工具 ----> 开发者工具
  3. 在页面中右键 ----> 检查
  • 开发工具的标签的简介:
  1. Elements:元素标签。查看和修改页面元素,方便前端工程师调试页面
  2. Console:控制台。用来执行JS代码
  3. Sources:显示浏览器请求到所有静态资源的源码
  4. Network:网络标签。查看HTTP通信过程、Web请求和响应的性能

四、HTTP请求报文

1. 请求方式

  • GET:浏览器向服务器获取资源。(查删)
  • POST:浏览器向服务器新增资源。(增改)

RESTFul风格的接口,不是规则。

  • POST:新增资源
  • DELETE:删除资源
  • PUT:修改资源
  • GET:获取资源

举例:

  • Github:完全遵守RESTFul风格的接口形式。Gitee
  • ElasticSearch:搜索引擎。使用RESTFul风格的接口形式来管理搜索数据。

2. GET请求报文

---请求行---
GET /get HTTP/1.1\r\n	# 包括三部分:请求方式 资源路径 协议版本
---请求头---
Host: httpbin.org\r\n			# 服务器主机的域名地址
Connection: keep-alive\r\n		# 长连接(断开的条件:1.浏览器主动断开;2.在服务器的超时时间内无HTTP通信则断开)
accept: application/json\r\n	# 浏览器告诉服务器可以接收的报文格式,表单格式Application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36\r\n		# 用户代理。浏览器的标识
Referer: http://httpbin.org/\r\n			# 来源服务器地址
Accept-Encoding: gzip, deflate\r\n			# 浏览器可接受的数据压缩格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r\n			# 浏览器可接受的语言,q=0.9表示阈值
---空行---
\r\n

3. POST请求报文

---请求行---
POST /woniusales/user/login HTTP/1.1\r\n	# 分为三部分:请求方式 资源路径 协议版本
---请求头---
Host: 10.0.0.200:8080\r\n
Connection: keep-alive\r\n
Content-Length: 38\r\n	# 表示报文数据的字节长度
Accept: */*\r\n			# */*表示任意文本内容类型
X-Requested-With: XMLHttpRequest\r\n			# 一般用于动态资源的请求
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36\r\n
Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n	# 请求报文的文本格式(重点)
Origin: http://10.0.0.200:8080\r\n				# 原始服务器的地址
Referer: http://10.0.0.200:8080/woniusales/\r\n
Accept-Encoding: gzip, deflate\r\n
Accept-Language: zh-CN,zh;q=0.9\r\n
Cookie: _jfinal_captcha=585cf3fc79cc487882b567d110263ecd\r\n		# 用户身份的标识
---空行---
\r\n
---请求体---
username=11&password=1&verifycode=1111\r\n
  • Content-Type
application/x-www-form-urlencoded		# 表单
application/json						# JavaScript Object Notation(JS对象标记(简谱))
multipart/form-data						# 用于文件的上传

五、HTTP响应报文

---状态行(响应行)---
HTTP/1.1 200 OK\r\n		# 分为三部分:协议版本 状态码 状态描述
---响应头---
Pragma: no-cache\r\n
Cache-Control: no-cache\r\n
Expires: Thu, 01 Jan 1970 00:00:00 GMT\r\n		
Content-Type: text/plain;charset=UTF-8\r\n
Transfer-Encoding: chunked\r\n		# 响应报文的长度不确定,0\r\n
Date: Tue, 25 May 2021 06:13:33 GMT\r\n		# 响应报文生成的服务器时间(格林威治时间)
Keep-Alive: timeout=20\r\n					# 长链接的超时时间
Connection: keep-alive\r\n					# 长链接
---空行---
\r\n
---响应体---
vcode-error

六、状态码

状态码是服务器返回给浏览器的响应状态的信息,是对某次请求的结果的描述。

状态码一般使用3位数字表示,第一位数代表的响应状态的类型:1xx、2xx、3xx、4xx、5xx。

状态码描述
200HTTP请求是成功的
302/307临时重定向
304资源已存在。浏览器的缓存中已经有了该资源,服务器返回一个304,服务器不会再提供该资源
400一般为请求的路径或者请求体参数错误
404资源不存在
500服务器代码出错
502网关错误

七、接口测试

1. 接口的定义

接口就是服务器中应用程序对外提供能力的一种服务。

API,全称Application Programming Interface,应用程序编程接口。测试工程师要测的接口就是API。

2. 接口的分类

  • 内部接口:提供给前端使用的API,前后联调时进行测试,测试工程师一般作为辅助。
  • 外部接口:一般提供第三方企业,必须由专业的测试工程师来测。

3. 接口文档

  1. 接口文档的撰写人
  2. 接口文档的使用范围(项目范围,人员的范围、法律法规和行业的标准)
  3. 接口文档的参数文献(产品需求文档、概要设计文档…)
  4. 接口的定义
    1. 接口的描述
    2. 接口的URL
    3. 接口的请求方式(GET、POST)
    4. 请求报文(字段名称、描述、数据类型、数据的长度、是否必填、枚举类型、备注)
    5. 响应报文(字段名称、描述、数据类型、数据的长度、是否必填、枚举类型、备注)
    6. 接口的示例
  5. 注意事项

4. 接口测试

接口测试是根据接口文档或者抓包为预期,通过程序或者工具来模拟浏览器的请求,将响应结果与预期结果进行对比。

4.1 接口测试特性
  1. 接口测试的介入较早;
  2. 测试人员可以尽早的发现Bug;
  3. 可以降低项目开发的风险。
4.2 接口测试的工具
  1. 抓包工具:浏览器的开发者工具、Fiddler
  2. 测试工具:Python=requests、Postman、JMeter。
4.3 接口测试的流程
  1. 接口文档的评审;
  2. 设计测试脚本、编写测试用例;
  3. 执行用例;
  4. 输出测试报告、缺陷报告;
  5. 优化脚本、维护脚本。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值