GoReplay中间件python版本使用教程,


目录
  • GoReplay的middlware原理
  • python版本环境搭建
    • python环境安装
    • gor库环境安装
  • python代码编写
    • goreplay中间件使用

      GoReplay的middlware原理

      中间件是一个程序,它在 STDIN 上接受请求和响应负载,并在 STDOUT 上发出修改后的请求。您可以实现任何自定义逻辑,例如剥离私有数据、高级重写、支持 oAuth 等。

      中间件可以用任何语言编写,请参阅examples/middleware文件夹中的示例。
      中间件程序应该接受这样一个事实:所有与 Gor 的通信都是异步的,不能保证原始请求和响应消息会相继到来。如果逻辑依赖于原始或重播的响应,您的应用程序应该处理状态,请参见examples/middleware/token_modifier.go示例。

      python版本环境搭建

      python环境安装

      首先安装python环境,由于版本 v0.2.x 不再支持 Python2.7 和 Python3.4,因此支持的最低 Python 版本为 3.5.2。此外,v0.1.x 版本仍然兼容 Python2.7 和 Python3.4。“
      python版本,建议使用3.5.2以上版本。我这里演示用的Python 3.9.6

      安装好python环境后,使用python3 -V查看自己的版本号,出现版本号说明环境已经安装完成

      gor库环境安装

      在python环境中使用pip3命令安装gor库,gor版本建议下载最新版,我这里用的是gor 0.2.3版本

      pip3 install gor

      如果需要使用虚拟环境,需要先进入虚拟环境再安装,pycharm自带了虚拟环境,如果当面文件存在venv文件夹说明已有虚拟环境,进入自带的虚拟环境安装

      source venv/bin/activate

      看到前面出现venv,说明成功进入虚拟环境

      在python中导入gor库,没有报错说明gor库环境安装完成

      from gor.middleware import AsyncioGor

      python代码编写

      首先导入gor库

      from gor.middleware import AsyncioGor

      然后在代码内定义三个函数,分别负责请求,响应,重播的处理

      以下是一个简单的demo,具体的使用可以查看官方文档,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):    
          # do anything you want with msg
          # msg is a GorMessage object
          pass
      if __name__ == '__main__':
          proxy = AsyncioGor()
          proxy.on('request', on_request)
          proxy.run()

      具体代码细节实现,代码里实现了三个函数分别处理请求、响应、重播等
      请求部分,对请求进行重写消息头,body,param参数等,把处理完的请求url的数量
      响应部分,对响应进行判断,状态码是否等于200,等于200的记录url的数量记录到日志,不等于200的url,req,res记录到日志
      重播部分,对重播进行判断,状态码是否等于200,等于200的记录url的数量记录到日志,不等于200的url,req,res记录到日志使用命令启动python的middleware

      goreplay中间件使用

      中间件跟命令结合使用,先后顺序为,先中间件处理,处理完再使用命令进行过滤,过滤的命令应该是中间件处理完的数据,具体顺序如下

      需要同时处理req、res、rep,可以使用如下命令

      sudo gor --input-raw :5000 --output-file 'test.gor' --output-stdout --middleware 'python3 middleware.py' --output-http-track-response --input-raw-track-response

      到此这篇关于GoReplay中间件python版本使用的文章就介绍到这了,更多相关GoReplay中间件python使用内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程!

      您可能感兴趣的文章:
      • Python Flask请求扩展与中间件相关知识总结
      • Python Django中间件使用原理及流程分析
      • Python Django中间件,中间件函数,全局异常处理操作示例
      • 详解Python的Django框架中的中间件

      评论关闭