Giter Club home page Giter Club logo

copyflow's Introduction

项目概述

本项目功能是将某台机器的某个端口的流量回放到指定的机器上,支持同步\异步方式

gor工具原理

基于github上的一个Go语言写的开源流量复制工具gor的扩展

  1. 在本机8080端口部署一个web应用
  2. 在另外一台机器比如192.168.11.22的8080端口部署同样的应用
  3. 在本机有sudo权限的用户下执行如下命令 sudo ./gor --input-raw :8080 --output-http http://192.168.11.22:8080 即可将当前机器的8080端口流量同步回放到http://192.168.11.22:8080端口 所以访问本机8080的应用就可以看到同时在http://192.168.11.22:8080也有请求过去了
  • gor工具所有的命令参数说明可以看执行sudo ./gor -h 命令查看

基于gor工具的扩展

添加了一个java的class文件,go.middleware.Stdout,该功能支持在配置文件中用添加url表达式,用于只将指定的URL复制出来

  • 源码见src目录下
  • 执行的命令是 ./gor --input-raw-track-response --input-raw :8082 --middleware "java go.middleware.Stdout" --output-file 即加一个参数: --middleware "java go.middleware.Stdout"
  • 注意,要将该文件路径放置到与gor文件同级目录下的gor/middleware/下面
  • 生产上执行的命令如下 nohup ./gor --input-raw-track-response --input-raw :8082 --middleware "java go.middleware.Stdout" --output-file gor-online-%Y-%m-%d-%H.log --output-file-append >dev/null & 将请求保存到文件中用于异步回放

文件结果比对

CompareHttpLog文件用于将两个文件结果进行比对,支持json格式结果中只比较部分json节点

copyflow's People

Contributors

niweicumt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.