ASIS是一个轻量级的Python程序通过HTTP作为-IS文档(包含标题和内容)。
当涉及到获取HTTP资源的单元测试工具,我们决定,我们希望有一种方法来方便地存储预定响应,然后从一台服务器,我们正在运行这些测试为他们服务,在相同的过程。没有猴子补丁,没有基础设施(如高速缓存代理服务器)。
值得一提的是,如果你正在寻找捕捉到从现有的服务请求,然后重放它们,录像机项目已经被移植到几种语言,是非常有用的。
什么是?
扭曲带有一个称为-是服务功能,灵感来自于Apache。但是,谁也不愿意包括扭曲的依赖?
这是基于瓶子,从而支持大量的WSGI后端(包括双绞线和GEVENT)的,并且是指以重量轻。一个原样文件是其中两个标头和用于HTTP响应的内容被存储:
HTTP / 1.0 200 OK
内容长度:137
内容类型:text / html的
 
&NBSP; <标题>基本测试页
&NBSP;
&NBSP;
&NBSP;
您好,我是一个测试页面
&NBSP;
请注意,这需要为头只换行 - 回车是为了方便自动添加。
安装
易peasy:
须藤PIP安装ASIS
或为那些从源代码谁喜欢:
混帐克隆https://github.com/seomoz/asis
CD ASIS && sudo的蟒蛇setup.py安装
用法
您可以运行ASIS服务器相对容易:
进口ASIS
#即成8080端口存储在文件'富/“
服务器= asis.Server('富',8080)
server.run()
...
server.stop()
可替代地,它可以在一个上下文管理器的方式使用:
进口ASIS
进口要求
与asis.Server('富')作为服务器:
&NBSP; requests.get('的http://本地主机:8080 /富/ bar.asis“)
还有一个命令行实用程序包括为了方便在职ASIS文件作为一个独立的服务器,这是通过看卷曲或这些文件浏览器尤其有用:
#即成文件出'富/“对8080端口
ASIS服务器富--port 8080
#相同,使用GEVENT和被详细
ASIS服务器富--port 8080 --server GEVENT --verbose
花里胡哨
有可能需要利用的几个特点:
内容编码
如果您提供的内容-Encoding头要么作为GZIP或紧缩,存储在文件中平原的内容被压缩,并通过电线发送的方式。在这些情况下,可以保留内容长度为0,而真正的内容的长度(在压缩之后)将在它的位置被发送。例如,下面的被发送作为gzip压缩的内容正确的浏览器:
HTTP / 1.0 200 OK
内容长度:0
内容类型:text / plain的
内容编码:gzip
你好世界!
字符集
如果您在您的Content-Type头一个字符集,那么你的内容将被解释为UTF-8在磁盘上,然后进行编码,在编码提供。这样做是为了帮助编辑过程,让您不必明确地保存你的例子在他们的声明的字符集。像更改内容编码,在Content-Length头被重新计算,一旦改造完成后是正确的。
模式
默认情况下,服务器开始与GEVENT服务器,它开始在后台绿色线程,它应该是准备好尽快为请求提供服务的run()的回报。
可替代地,服务器可以在两种其他模式下,叉和块开始。如果叉,那么它将运行在单独的进程的服务器,它仍然可以作为既是一个上下文管理器并调用运行后()。如果块被选中,则它运行在阻塞方式。例如:
#在一个单独的进程中运行它
与asis.Server('富',端口= 8080,模式='叉'):
&NBSP;#使一些要求
&NBSP; ...
例子和测试
包含在这里有许多的原样文档,test.py可以直接运行,以验证它们是否正确传输的例子:
./test.py
它还提供了一个如何把它变成你的单元测试的例子。
特约
,问题,意见,想法随时欢迎
要求:
- 在Python中
评论没有发现