首页 > 编程语言 >【goreplay】python简单使用goreplay中间件功能

【goreplay】python简单使用goreplay中间件功能

时间:2024-07-09 16:42:34浏览次数:19  
标签:status python 中间件 replay proxy msg goreplay response gor

一、场景

    流量录制,需要对播放的流量进程定制化处理,那么可以使用中间件来实现

 

 

二、官网

https://pypi.org/project/gor/

 

 

三、编写中间件代码

# coding: utf-8
import sys
from gor.middleware import AsyncioGor


def on_request(proxy, msg, **kwargs):
    proxy.on('response', on_response, idx=msg.id, req=msg)

def on_response(proxy, msg, **kwargs):
    proxy.on('replay', on_replay, idx=kwargs['req'].id, req=kwargs['req'], resp=msg)

def on_replay(proxy, msg, **kwargs):
    replay_status = proxy.http_status(msg.http)
    resp_status = proxy.http_status(kwargs['resp'].http)
    if replay_status != resp_status:
        sys.stderr.write('replay status [%s] diffs from response status [%s]\n' % (replay_status, resp_status))
    else:
        sys.stderr.write('replay status is same as response status\n')
    sys.stderr.flush()

if __name__ == '__main__':
    proxy = AsyncioGor()
    proxy.on('request', on_request)
    proxy.run()

有on_request, on_response, on_replay三个关键方法

 

四、使用

sudo ./gor --input-raw :8000 --middleware "python3 /path/to/middleware.py" --output-http-track-response --input-raw-track-response --output-http="http://192.168.3.123:8001"

可能会报错

 需要使用sudo安装gor库

$ sudo pip3 install gor
Collecting gor
  Downloading gor-0.2.3-py3-none-any.whl (6.9 kB)
Installing collected packages: gor
Successfully installed gor-0.2.3

 

五、我们查看效果

 

参考链接:

https://pypi.org/project/gor/

 

标签:status,python,中间件,replay,proxy,msg,goreplay,response,gor
From: https://www.cnblogs.com/fireblackman/p/18292246

相关文章

  • 1 python介绍、基本语法、流程控制
     一、Python介绍python的创始人为吉多·范罗苏姆(GuidovanRossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美、清晰、简单,是......
  • [转]MQ详解以及各种消息中间件说明
    转自:https://blog.csdn.net/forebe/article/details/117993082 消息中间件相关知识1、概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间......
  • 【Python】Word文档操作
     一、全文替换不是创建word文档写入内容,而是基于现有的Word文档进行替换处理使用run.text直接赋值修改发现样式会丢失,而网上大部分办法都是这么写的...直到我看到这篇文章的评论:https://blog.csdn.net/qq_40222956/article/details/106098464 除了段落替换后,Word文档......
  • Python酷库之旅-第三方库Pandas(012)
    目录一、用法精讲28、pandas.HDFStore.keys函数28-1、语法28-2、参数28-3、功能28-4、返回值28-5、说明28-6、用法28-6-1、数据准备28-6-2、代码示例28-6-3、结果输出29、pandas.HDFStore.groups函数29-1、语法29-2、参数29-3、功能29-4、返回值29-5、说明29......
  • Python实战训练(方程与拟合曲线)
    1.方程求e^x-派(3.14)的解用二分法来求解,先简单算出解所在的区间,然后用迭代法求逼近解,一般不能得到精准的解,所以设置一个能满足自己进度的标准来判断解是否满足这里打印出解x0是因为在递归过程中没有变量去接收返回值,所以返回x0,再打印x0得到的是None,再用numpy自带的log(pi)就查......
  • 爆赞!GitHub首本Python开发实战背记手册,标星果然百万名不虚传
    Python (发音:['paiθ(ə)n;(US)'paiθɔn]n.蟒蛇,巨蛇),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。Python语言的特点......
  • C#将文件以byte[]形式传给python的sanic接口
    C#如何将文件以byte[]形式传给python的sanic接口?C#调用的部分你可以按照以下步骤进行:1)读取文件,将文件转换成byte[];2)定义类,将byte[]内容转成json格式传输;3)使用post请求将content传输到接口,返回结果;C#调用部分代码:/*将文件转换成byte[]格式*/protectedstaticbyte[]GetFileD......
  • Python函数进阶:高阶函数与函数式编程实战
    前言大家好!今天我们来探讨一个非常有趣且实用的话题——Python函数进阶,特别是高阶函数与函数式编程。记得上次我在一个项目中需要处理复杂的数据流,通过高阶函数和函数式编程,我不仅简化了代码,还提高了运行效率。说到这里,大家是否也想掌握这门技术呢?让我们一起深入了解Pytho......
  • Python多线程与多进程编程:提升程序性能的实用技巧
    前言大家好!今天我们要深入探讨Python中的多线程与多进程编程,这可是提升程序并发性能的关键技能之一。记得我在处理大量数据时,通过多线程和多进程技术,大大提高了程序的执行效率。为了让大家也能掌握这些实用技巧,我将通过多个具体案例,详细讲解如何在Python中实现多线程和多......
  • 用Python1000多行代码实现ATM操作系统
    基于Python实现ATM操作系统概要基于Python语言,实现ATM的基本功能,包括查询余额、存款、取款、转账、注册等基本功能。能够实现用户和管理员两种身份识别,管理员有权限对系统做出修改,包括提升用户级别、关闭系统等操作。用户信息保存于user_data.txt文件中,也可自行接入数据库......