2009-04-22 199 views
2

需要測試用例複雜的Web應用程序,做一些互動與遠程第三方CGI基於web服務。Iam計劃在虛擬網絡服務器上實現一些第三方服務,以便我可以完全控制測試用例。 尋找一個簡單的python http webserver或框架來模擬第三方接口。簡單的網絡服務器或網絡的測試框架

回答

4

使用cherrypy,看一看的Hello World:

import cherrypy 

class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 

cherrypy.quickstart(HelloWorld()) 

運行這段代碼,你有一個非常快的Hello World服務器上localhost端口8080準備!很容易吧?

0

我會去了解一下Django

2

你可能是最幸福的一個WSGI服務,因爲它是最喜歡CGI。

werkzeug

0

這可能是簡單意義上嘲笑(或存根,或任何期限)的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密鑰。