2013-04-29 78 views
0

我正在使用Django-TastyPie开发API。如何使用异步请求测试django API

API是做什么的?

它检查服务器是否有两个或更多的请求,如果是,它交换两个请求的数据并在7秒延迟后返回一个json响应。

我需要做的是发送多个异步请求到服务器来测试这个API。 我正在使用Django-Unit Test和Tasty-Pie来测试这个功能。

问题

Django的农业开发服务器是单线程的,因此不支持异步请求

解决方案的尝试:

我试图用多来解决这个问题:

class MatchResourceTest(ResourceTestCase): 

def setUp(self): 
    super(MatchResourceTest, self).setUp() 

    self.user="" 
    self.user_list = [] 
    self.thread_list = [] 

    # Create and get user 
    self.assertHttpCreated(self.api_client.post('/api/v2/user/', format='json', data={'username': '123456','device': 'abc'})) 
    self.user_list.append(User.objects.get(username='123456')) 

    # Create and get other_user 
    self.assertHttpCreated(self.api_client.post('/api/v2/user/', format='json', data={'username': '456789','device': 'xyz'})) 
    self.user_list.append(User.objects.get(username='456789')) 

def get_credentials(self): 
    return self.create_apikey(username=self.user.username, api_key=self.user.api_key.key) 

def get_url(self): 
    resp = urllib2.urlopen(self.list_url).read() 
    self.assertHttpOK(resp) 

def test_get_list_json(self): 

    for user in self.user_list: 
     self.user = user 
     self.list_url = 'http://127.0.0.1:8000/api/v2/match/?name=hello' 

     t = multiprocessing.Process(target=self.get_url) 
     t.start() 
     self.thread_list.append(t) 

    for t in self.thread_list: 
     t.join() 
     print ContactCardShare.objects.all() 

请sugg EST我的任何解决方案,通过发送台异步请求

任何应用程序,库或任何这种允许Django开发服务器来处理多个请求异步地

回答