• 多测师拱墅校区肖sir_高级金牌讲师_接口测试之接口分析(2)


    接口测试之接口分析

    一、查看接口的方式

    url:http://cms.duoceshi.cn/cms/manage/index.do

    第一种fn+f12 (或者开发者工具)

     

     

    General部分:
    Request URL:资源的请求url #
    Request Method:HTTP方法
    Status Code:响应状态码
    200(状态码) OK
    301 - 资源(网页等)被永久转移到其它URL
    404 - 请求的资源(网页等)不存在
    500 - 内部服务器错误
    Response Headers:(响应头信息)
    Content-Encoding:gzip 压缩编码类型
    Content-Type:text/html 服务端发送的类型及采用的编码方式
    Date:Tue, 14 Feb 2017 03:38:28 GMT 客户端请求服务端的时间
    Last-Modified:Fri, 10 Feb 2017 09:46:23 GMT 服务端对该资源最后修改的时间
    Server:nginx/1.2.4 服务端的Web服务端名
    Transfer-Encoding:chunked 分块传递数据到客户端
    Response Headers:
    Accept:客户端能接收的资源类型
    Accept-Encoding:gzip, deflate(客户端能接收的压缩数据的类型)
    Accept-Language:en-US,en;q=0.8 客户端接收的语言类型
    Cache-Control:no-cache 服务端禁止客户端缓存页面数据
    Connection:keep-alive 维护客户端和服务端的连接关系
    Cookie:客户端暂存服务端的信息
    Host:www.jnshu.com 连接的目标主机和端口号
    Pragma:no-cache 服务端禁止客户端缓存页面数据
    Referer:http://www.jnshu.com/daily/15052 来于哪里
    User-Agent: 客户端版本号的名字

    ==================================================

    二、通过fidder抓包

    一.Fiddler 简介
    fiddler 是 C# 开发免费web调试工具之一,记录所有客户端和服务端常见的 http 以及 https 请求,可监视设断点,甚至修改输入输出数据,它还包含了一个强大的基于事件脚本的子系统,并且能使用 .net 语言来拓展。
    Fiddler也是一款专用的抓包工具,也是一个调试工具,我们可以用来抓包网络数据 ;
    二.fiddler结构介绍
    fiddler 的界面按钮的排版来依次讲解这些按钮的作用,主要讲解 fiddler 界面上的 7 大板块,
    从菜单栏→工具栏→底端状态栏→命令行控制台→ session 栏→ request 栏→ response 栏来依次讲解,
    三.Fiddler 工作原理
    Fiddler 以代理 Web 服务器的形式工作的,使用代理地址为 127.0.0.1,端口 8888,当 fiddler 开启时自动开始代理,关闭 fiddler 时自动注销,这样就不会影响其他程序。只要是支持 http 代理服务器的任意程序都可以被 fiddler 嗅探到,fiddler 的运行机制其实就是本机上监听 8888 端口的 HTTP 代理。
    注意一下,要是 fiddler 没有正常退出,可能造成 fiddler 没有正常注销,使得页面没法访问。


    接口原理:
    比如1:注册,页面上填写新数据,数据库保存用户信息,用户信息哪里来的,通过接口传输(你在前端输入数据,接口把数据api,,传输到后端或数据库进行保存,)
    比如2:多有米中的logs,查看日志,日志有接口数据,数据库字段,

    一、常用三个快捷键:
    ctrl+X :清空所有记录 或 remove all
    Ctrl+F:查找
    F12:启动或者停止抓包
    delete 删除已选中的session
    shift+delete 删除未选中的session

    =============================

    fiddler使用:
    1、启动Fiddler,系统提示更新,不要理它,点击咯no
    2、Tools-> Fiddler Options开始配置工具
    进入https选项卡,勾选Decrpt HTTPS traffic, Fiddler截获HTTPS请求

    一般以.do 是java的命名
    (1) [#]-HTTP Request的顺序,从1开始,按照页面加载请求的顺序排序。.
    (2)[Result] – HTTP 响应的状态。
    (3)[Protocol]一一请求使用的协议(如HTTP/HTTPS/FTP)
    (4)[Host] --请求地址的域名
    (5)[URL] -一请求的服务器路径和文件名, 也包括GET参数
    (6)[BODY]-- 请求的大小,以byte为单位
    (7)[Caching] -一请求的缓存过期时间或缓存控制header等值
    (8)[Content-Type] - -请求响应的类型(Content-Type)
    (9)[Process] 一发出此请求的Windows 进程及进程ID
    (10)[Comments] - -一用户通过脚本或者右键菜单给此session增加的备注)
    (11)[Custom]-- 用户可以通过脚本设置的自定义值

    2、Tools-> Fiddler Options 开始配置工具 Tool->Fiddler Options->HTTPS 。 (配置完后记得要重启Fiddler)

     

     

    ====================================================

     

    讲解参数:

    接口的请求方法 (HTTP1.1)
    GET (查) 请求指定的页面信息,并返回实体主体,请求参数一般放在url地址栏的后面。
    POST(增)向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
    以上两个90%运用
    HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    PUT (改) 从客户端向服务器传送的数据取代指定的文档的内容。(相当于数据库中update)
    DELETE(删) 请求服务器删除指定的页面。
    CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    OPTIONS 允许客户端查看服务器的性能。
    TRACE 回显服务器收到的请求,主要用于测试或诊断。

    面试题:post和get请求区别?

    (1)post的请求参数在body中,get的请求在url上

    (2)post比get安全,请求参数在body中

    (3)get请求参数有限制,post请求参数没有限制

    (4)数据类型:get只接受asicc字符,post没有限制

    (5)get请求的参数会被保留在浏览器历史记录中,post不会保留

    (6)get可以直接在浏览器中请求,post不可以

    ===================================================================

     

    HTTP请求头和请求体、响应头和响应体
    1)请求头部信息:
    post :表示请求的方法
    HTTP/1.1 :表示超文本传输协议 版本为1.1就是版本 URL统一资源定位符
    Host:域名 Host表示请求的服务器网址 (ip地址)
    Content-Length:用来说明传输的正文大小或者内容长度 #length长度
    Connection:Keep-Alive Connection表示客户端与服务连接类型 #持续连接
    Keep-Alive:表示持久连接
    Accept:text html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 (支持的数据类型)
    浏览器支持的 MIME 消息内容类型分别是 text html、application/xhtml+xml、application/xml 和 /,优先顺序是它们从左到右的排列顺序
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8 请求的老数据类型
    origin:表示跨域资源请求

    POST http://localhost:8080/cms/manage/loginJump.do HTTP/1.1 #接口请求的方式
    Host: localhost:8080 #请求 的域名和地址
    Connection: keep-alive #持续连接
    Content-Length: 33 #连接长度
    Accept: application/json, text/javascript, /; q=0.01 #接收的数据类型
    X-Requested-With: XMLHttpRequest #标识ajax请求
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
    #用户的代理人:浏览器/5.0

    Content-Type: application/x-www-form-urlencoded; charset=UTF-8 内容类型
    Origin: http://localhost:8080 #起源
    Sec-Fetch-Site: same-origin #场地
    Sec-Fetch-Mode: cors #模式
    Sec-Fetch-Dest: empty #教育
    Referer: http://localhost:8080/cms/manage/loginOut.do
    Accept-Encoding: gzip, deflate, br # 接收的编码格式
    Accept-Language: zh-CN,zh;q=0.9 # 接收的语言
    Cookie: JSESSIONID=F6D7AE748A7C87ACC4867A362796358A #比较重要,就是客户端发服务端发送请求,就会发送一个绘画,有个sessions id ,cookie保持会话持续,保持时间一个员,或者更久,只要不是手动删除,会以cookie的方法保持在服务端

    userAccount=admin&loginPwd=123456

    rigin:标识跨域资源请求
    X-Requested-With:标识Ajax请求,大部分js框架发送请求时都会设置它为XMLHttpRequest
    User-Agent:用户代理的字符串值浏览器的身份标识字符串,user-agent会告诉网站服务器,访问者是通过什么工具来请求的
    Content-Type: 设置请求体的MIME类型 Content-Type: application/x-www-form-urlencoded
    Referer :设置前一个页面的地址,并且前一个页面中的连接指向当前请求
    Accept-Encoding :设置接受的编码格式 Accept-Encoding: gzip, deflate
    Accept-Language :设置接受的语言
    Accept-Language:en-US 是英文 zh-cn为中文

    Cookie:设置服务器使用Set-Cookie发送的http cookie Cookie的作用就是用于解决记录客户端的用户信息

    当用户下一次访问该web页面时,可以在cookie中读取用户访问记录。

    2)请求体部信息
    userAcount=admin&userPwd=123456 想做函数的入参,

    3)响应头部信息
    HTTP/1.1:表示超文本传输协议 版本为1.1版本 URL统一资源定位符
    响应状态:200
    Server:服务器名称 Server: Apache/2.4.1 (Unix)
    Set-Cookie:设置HTTP Cookie Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

    Content-Type:设置响应体的MIME类型 Content-Type: text/html; charset=utf-8
    Transfer-Encoding:设置传输实体的编码格式,目前支持的格式: chunked, compress, deflate, gzip, identity
    Date:设置消息发送的日期和时间 Date: Tue, 15 Nov 1994 08:12:31 GMT #接口响应时间

    4)响应体部信息
    {“code”:“200”,“msg”:“登录成功!”,“model”:{}}

    第二种:fiddler

  • 相关阅读:
    0x00 mysql 的安装,简单mysql命令的使用
    nuxt中定制iview主题颜色
    获取浏览器语言的解决方案
    nuxt页面切换效果
    MySQL(非sql sever)安全体系的学习心得
    My SQL日志 学习心得
    楼梯在SQL Server事务日志管理,三级:事务日志,备份和恢复(16周翻译)
    SQL Server事务日志管理的阶段,1级:事务日志概述
    楼梯在SQL Server事务日志管理,一级:事务日志的概述(15周翻译)
    数据库的独立子查询以及数据的删除、更新和建立视图的笔记
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/16371353.html
Copyright © 2020-2023  润新知