简单的网络服务器或网络的测试框架
问题描述:
需要测试用例复杂的Web应用程序,做一些互动与远程第三方CGI基于web服务。Iam计划在虚拟网络服务器上实现一些第三方服务,以便我可以完全控制测试用例。 寻找一个简单的python http webserver或框架来模拟第三方接口。简单的网络服务器或网络的测试框架
答
使用cherrypy,看一看的Hello World:
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
运行这段代码,你有一个非常快的Hello World服务器上localhost
端口8080
准备!很容易吧?
答
答
这可能是简单意义上嘲笑(或存根,或任何期限)的urllib,或者你使用任何模块与远程网络服务进行通信?
甚至干脆重写urllib.urlopen
可能就足够了:
import urllib
from StringIO import StringIO
class mock_response(StringIO):
def info(self):
raise NotImplementedError("mocked urllib response has no info method")
def getinfo():
raise NotImplementedError("mocked urllib response has no getinfo method")
def urlopen(url):
if url == "http://example.com/api/something":
resp = mock_response("<xml></xml>")
return resp
else:
urllib.urlopen(url)
is_unittest = True
if is_unittest:
urllib.urlopen = urlopen
print urllib.urlopen("http://example.com/api/something").read()
我用很相似here的东西,来模拟一个简单的API,之前,我有一个API密钥。
+1:我同意,其中包括服务器的wsgiref大概够他的需求。 – nosklo 2009-04-22 12:22:18