ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

服务端接口测试

2021-04-17 22:33:07  阅读:228  来源: 互联网

标签:http 请求 get 接口 mitmproxy json cookie 测试 服务端


常见接口协议解析

TCP:面向连接、错误重传、拥塞控制,适用于可靠性高的场景
UDP:不需要提前建立连接,实现简单,适用于实时性高的场景
Restful:representational State Transfer
借助于http协议的基本请求方法代表资源的状态切换
post:新增或者更新
get:获取资源
put:更新资源
delete:删除资源
RPC协议:Remote Procedure Call, 以本地代码调用的方式实现远程执行
Dubbo:java上的高性能RPC协议,Apache开源项目,由阿里捐赠;底层应用层协议支持dubbo缺省tcp协议、http、hessian、thrift、grpc等
gRPC:高性能通用RPC框架,基于Protocol Buffers;PB是一个语言中立、平台中立的数据序列化框架,google开源项目
Thrift:与gRPC类似的多语言RPC框架,Apache开源项目

使用curl发送请求

我们可以使用浏览器里面的copy as cURL的作用

  1. 把浏览器发送的请求真实的还原出来
  2. 附带了认证信息,所以可以脱离浏览器执行
  3. 可以方便开发者重放请求、修改参数调试以及编写脚本
    curl命令是最常用的http请求工具
    使用规则
    发送get请求:curl URL
    发送post请求:curl -d ‘XXX’ URL
    proxy使用代理:curl -x ‘ip:端口’ URL
    -H “Content-Type:application/json”消息头设置
    -u username:password用户认证
    -d 要发送的POST数据@file表示来自于文件
    –data-urlencode’page_size=50’对内容进行url编码
    -G 把data数据当成get请求的参数发送,与–data-urlencode结合使用
    -o 写文件
    -x 代理http代理
    -v verbose打印更详细日志 -s 关闭一些提示输出

常用代理工具

代理工具:charles fiddler burpsuite mitmproxy
高性能代理服务器:squid dante
反向代理:nginx
流量转发与复制:em-proxy gor iptable nginx
sock5代理:ssh -d参数

get与post区别

http的method字段不同
post可以附件body,可以支持form, json,xml,binary等各种数据格式
行业通用规范:
1、无状态变化的建议使用get请求
2、数据的写入以及状态修改建议使用post

session,cookie,token区别

cookie:浏览器接收服务器的Set-cookie指令,并把cookie保存到电脑上,每个网站保存的cookie只作用于自己的网站
session:数据存储到服务端,只把关联数据的一个加密串放到cookie中标记;session可以基于cookie,也可以基于query参数,用于关联用户相关数据
token是一个用户请求时附带的请求字段,用于验证身份和权限
跨端应用的时候,比如说安卓原生系统不支持cookie,需要用token识别用户,需要把session_id保存到http请求中的header或者query字段中

mitmproxy:

mitmproxy 工具有以下三部分组成
1、mitmproxy 是 命令行工具
2、mitmdump可以用来加载 python 脚本
3、mitmweb是一个web 界面工具
python的第三方库
地址:https://docs.mitmproxy.org/stable/addons-scripting/
我们使用mitmproxy实现maplocal功能
接口返回数据文件page.json
在这里插入图片描述
写一个代理文件mitmsct.py,如下

import json
from mitmproxy import http

def response(flow: http.HTTPFlow):
    if "page" in flow.request.pretty_url:
        with open('D:\\test\\untitled\page.json', encoding='utf-8') as f:
             data = json.load(f)
        flow.response.text = json.dumps(data)

cmd管理员身份运行启动创建的脚本文件mitmdump -p 8080 --set block_global=false -s D:\test\untitled\mitmsct.py
本地服务器默认使用8080端口
在这里插入图片描述
最后访问我们的请求网址:
在这里插入图片描述

标签:http,请求,get,接口,mitmproxy,json,cookie,测试,服务端
来源: https://blog.csdn.net/qq_41780297/article/details/114855332

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有