用于goreplay中间件的python库

gor的Python项目详细描述


python库用于GoReplay Middleware,api与NodeJS library非常相似

https://badge.fury.io/py/gor.svghttps://travis-ci.org/amyangfei/GorMW.svg?branch=master

安装

要安装gormw,只需:

$ pip install gor

或来源:

python setup.py install

开始

初始化基于tornado gor的中间件,并按以下方式启动:

fromgor.middlewareimportTornadoGorproxy=TornadoGor()proxy.run()

基本思想是编写回调,以响应请求、响应、重播或消息事件,其中包含请求元信息和实际的http paylod。根据需要,您可以比较、覆盖或筛选传入的请求和响应。

您可以使用on函数响应传入的事件,方法是提供回调:

defon_request(proxy,msg,**kwargs):# do anything you want with msg# msg is a GorMessage objectpassproxy=TornadoGor()proxy.on('request',on_request)proxy.run()

您可以将请求id作为on函数的附加参数提供,该函数允许您映射相关的请求和响应。下面是一个中间件示例,它检查原始和重播的响应是否具有相同的http状态代码。

# coding: utf-8importsysfromgor.middlewareimportTornadoGordefon_request(proxy,msg,**kwargs):proxy.on('response',on_response,idx=msg.id,req=msg)defon_response(proxy,msg,**kwargs):proxy.on('replay',on_replay,idx=kwargs['req'].id,req=kwargs['req'],resp=msg)defon_replay(proxy,msg,**kwargs):replay_status=proxy.http_status(msg.http)resp_status=proxy.http_status(kwargs['resp'].http)ifreplay_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=TornadoGor()proxy.on('request',on_request)proxy.run()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要建议如何打印ArrayList的剩余容量   ApachePOI如何在java中生成多级(行和列)透视表   java如何关闭静态线程池?   日期查询使用_id,但不使用日期值MongoDB   java如何编写记录参数和返回值的拦截器?   java在安卓中使用哪种音频格式来存储录音   Java/Python在C/C++中访问的动态链接库?   来自文本文件的java hashmap字数   java为什么onClick不启动拖动侦听器,但长时间单击工作正常?[安卓]   Java字符串到字节数组,缺少特殊字符§   java Spring捕获所有响应类型   序列化Java枚举:从文件反序列化任意枚举   java将jar包装为。用于部署的应用程序(OSX)和(.exe)?   java如何使TestNG向testngcustomsuite添加参数。xml?   java动态更改操作栏中的项目标题   java为什么我的2D数组乘法输出不正确?   java我在打开和关闭键时出错   JavaEclipse:“保存操作”选项中的导入+导出操作   Eclipse无法打开,给了我一个很长的错误。[爪哇]   java Hibernate搜索使用字段点符号“a.b.c”时,我应该用@Facet注释哪些字段