请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 362|回复: 0

http协议组成和断言

[复制链接]

31

主题

31

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2022-7-8 19:08:34 | 显示全部楼层 |阅读模式
请求行:请求方法: GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
URL字段: 请求地址
HTTP协议版本:目前常用的是HTTP1.1、HTTP2.0
请求头
请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。
请求头部通知服务器有关于客户端请求的信息
User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。
Content-Type:请求体的MIME类型,MIME类型:描述消息内容类型的因特网标准,常见的有application/json、image/jpeg、application/octet-stream等
请求正文:向服务器提交的请求数据,GET请求的参数一般是放在请求行后的键值对,post请求的参数类型多样(表单、json、xml、图片等)
响应行
响应状态码:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
响应信息:响应信息是状态代码的文本描述
HTTP协议版本
响应头
    Content-Length:表示内容长度
Content-Type:表示后面的文档属于什么MIME类型
Server:服务器通过这个头告诉浏览器服务器的类型
响应正文:响应正文就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是图片就是图片等
GET和POST区别:(理解记忆,自己组织语言,要求从四个方面说)
Ø  从参数的传递方面来看,GET请求的参数是直接拼接在地址栏URL的后面,而POST请求的参数是放到请求体里面的;
Ø  从长度限制方面来看,GET请求有具体的长度限制,一般不超过1024KB,而POST理论上没有,但是浏览器一般都有一个界限;
Ø  从安全方面来看,GET请求相较于POST,因为数据都是明文显示在URL上面的,所以安全和私密性不如POST;
Ø  从本质上来说,GET和POST都是TCP连接,并无实质的区别.但是由于HTTP/浏览器的限定,导致它们在应用过程中体现出了一些不同.GET产生一个数据包,POST产生两个数据包.对于GET请求,浏览器会把http header 和data 一并发出去,服务器响应200(返回数据).而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok
Charles(理解)
通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。代理端口8888
Charles作用:
设代理,
抓包
验证前后端bug
修改请求和响应
模拟慢网
Charles 主要的功能包括:(要会描述步骤)
①截取Http和Https网络封包。
②支持重发网络请求,方便后端调试。
③支持修改网络请求参数。
④支持网络请求的截获并动态修改。
⑤支持模拟慢速网络。
Charles抓https的包(冒号之前)
1.装证书:点击 Charles 的顶部菜单,选择“Help” –> “SSLProxying” –> “InstallCharles Root Certificate”,然后安装证书的时候根据弹出对话框提示,安装到根证书颁发机构即可
2.抓取https包:菜单栏 proxy -> SSL proxy setting -> 勾选Enable SSL Proxying -> locations 里 添加一个  host 和 port为* 的通配符即可通配所有域名的https包抓取
3.重启Charles即可
  (理解)Postman 是一款谷歌开发的接口测试工具,使API的调试与测试更加便捷。它提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers。
postman模拟发送get请求(可以自己组织语言)
1、选择请求方式
2、复制请求url和params
3、点击send
4、注意请求头(如果有验证就要添加相关字段,比如百度要加User-Agent)
postman模拟发送post请求(可以自己组织语言)
1、选择请求方式
2、复制请求url和params
3、选择请求体类型(none,form-data,x-www-form-urlencoded,raw,binary),填入请求体
3、点击send
4、注意请求头(如果有验证就要添加相关字段,比如百度要加User-Agent)
JSON是一种独立于语言和平台、轻量级的数据交换格式,
全称JavaScript对象表示法(JavaScriptObject Notation)。
起初来源于JavaScript这门语言,后来随着使用的广泛,
几乎每门开发语言都有处理JSON的API。
优点:易于人的阅读和编写,易于程序解析与生产。比XML更小、更快、更易解析。
json格式两种{}或[]
选择请求体类型(none,form-data,x-www-form-urlencoded,raw,binary)
Ø  none:表示不传递数据
Ø  form-data:http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。
Ø  x-www-form-urlencoded:application/x-www-from-urlencoded,会将表单内的数据转换为键值对
Ø  raw:可以上传任意格式的文本,可以上传text、json、xml、html等
binary:Content-Type:application/octet-stream,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件
断言
1、获取响应行
var code = pm.response.code;   //获取响应状态码
var info = pm.response.reason(); //获取响应状态信息
2、获取响应头
var content_type = pm.response.headers.get('header_key')  //获取响应头
var path = pm.cookies.get('cookie_name') ;        //获取cookie信息
3、获取响应正文
var body = pm.response.text();
4、获取响应时间
var time = pm.response.responseTime;
5、利用正则表达式截取部分响应正文
var title = pm.response.text().match(newRegExp('<title>(.+?)</title>'))[1];
6、响应正文为json时,可以利用postman进行解析再获取部分响应正文
var json_obj = pm.response.json();   //把响应正文转化为json对象
json_obj.key    //json对象名.键名
json_obj.array[3].key   //json对象名.数组名[下标].键名
tests[测试名] = 表达式
表达式判断相等===,判断不等!==,判断包含has
postman环境变量
(理解)在公司中,一般会存在开发环境、测试环境、线上环境等,如果需要在不同的环境下切换做接口测试,显然我们需要把所有接口的域名进行修改,如果接口测试用例较多,那么修改会非常费力,postman可直接通过切换环境来实现多个环境中的参数切换。
postman设置环境变量:(可以用自己的话描述)
1、点击右上角设置图标(小眼睛),选择ManageEnvironments--Add,在页面中设置环境信息,点击ADD;
2、然后在需要使用环境变量的地方使用{{环境变量名}}替换静态的固定值;
3、设置好后,在左上角的下拉框可以下拉来切换环境。
postman设置接口关联:
在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果,从而让后一个接口能正常执行,这个过程的实现称为关联。      
在postman中实现关联操作的步骤如下:(重要)
1、利用postman获取上一个接口指定的返回值
2、使用postman全局变量保存上一个接口的值,代码如下:
postman.setGlobalVariable("全局变量名", str);  其中前面的参数为全局变量名称,后面为变量
3、和之前引用全局变量一样,使用{{全局变量名}}即可。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2023-9-22 08:40 , Processed in 0.042225 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表