def setUp(): #startup 'timer' service url = '%s/service/echo' % config.service_center() data = json.dumps({'prefix': config.prefix('service.echo')}) r = requests.post(url=url, data=data) assert r.status_code == 200 url = '%s/service/call' % config.service_center() data = json.dumps({'prefix': config.prefix('service.call')}) # r = requests.post(url=url, data=data) assert r.status_code == 200
class testCallConcurrency(): url = 'http://%(hostname)s%(prefix)s/call-concurrency' % { 'hostname': 'localhost', 'prefix': config.prefix('service.call') } echo_url = 'http://%(hostname)s%(prefix)s/echo' % { 'hostname': 'localhost', 'prefix': config.prefix('service.echo') } data = "" params = {"times": 1000, 'echo-service': echo_url} def setUp(self): for i in range(1, 1024): self.data += 'a' pass # def tearDown(self): pass # def testGet(self): r = requests.get(url=self.url, params=self.params) assert r.status_code == 200 j = json.loads(r.text) #print "Get : microsecond per request : %s "%j["microsecond-per-request"] assert j["microsecond-per-request"] < 1000 * 10 def testPost(self): r = requests.post(url=self.url, params=self.params, data=self.data) assert r.status_code == 200 j = json.loads(r.text) #print "Post : microsecond per request (data size=%d): %s "%( len(self.data),j["microsecond-per-request"]) assert j["microsecond-per-request"] < 1000 * 10 def testPut(self): r = requests.put(url=self.url, params=self.params, data=self.data) assert r.status_code == 200 j = json.loads(r.text) #print "Put : microsecond per request (data size=%d): %s "%( len(self.data),j["microsecond-per-request"]) assert j["microsecond-per-request"] < 1000 * 10 def testDelete(self): r = requests.delete(url=self.url, params=self.params, data=self.data) assert r.status_code == 200 j = json.loads(r.text) #print "Delete : microsecond per request (data size=%d): %s "%( len(self.data),j["microsecond-per-request"]) assert j["microsecond-per-request"] < 1000 * 10
class testEcho(): # url = 'http://%(hostname)s%(prefix)s/echo' % { 'hostname': 'localhost', 'prefix': config.prefix('service.echo') } def setUp(self): pass # def tearDown(self): pass # def testGet(self): r = requests.get(url=self.url) assert r.status_code == 200 def testPost(self): data = "testPost" r = requests.post(url=self.url, data=data) assert r.status_code == 200 assert r.text == data def testPut(self): data = "testPut" r = requests.post(url=self.url, data=data) assert r.status_code == 200 assert r.text == data def testDelete(self): data = "testDelete" r = requests.post(url=self.url, data=data) assert r.status_code == 200 assert r.text == data
class testSetTimer(): url = 'http://%(hostname)s%(prefix)s/timer/settimer'%{ 'hostname': 'localhost', 'prefix': config.prefix('service.timer') } def setUp(self): pass def tearDown(self): pass def testSetTimer(self): timers = [100,200,300,400,500, 600,700,800,900,1000, 1100,1200,1300,1400,1500] s = json.dumps(timers) r = requests.get( url = self.url,params={'timers': s}) assert r.status_code == 200 data = json.loads( r.text) for t in data: deta = abs(t['actual'] - t['expect']) assert deta < 80, " [inaccuracy : %sms %d%%]"%(deta, deta/t['expect']) def testLargVolume(self): timers = [100,200,300,400,500] groups = 2000/len(timers) s = json.dumps(timers) r = requests.get( url = self.url,params={'timers': s,'groups': groups}) assert r.status_code == 200 data = json.loads( r.text) for t in data: deta = abs(t['actual'] - t['expect']) assert deta < 100, " [inaccuracy : %sms %d%%]"%(deta, deta/t['expect'])
class testKillTimer(): url = 'http://%(hostname)s%(prefix)s/timer/killtimer'%{ 'hostname': 'localhost', 'prefix': config.prefix('service.timer') } def setUp(self): pass def tearDown(self): pass def testSetTimer(self): timers = [100,200,300,400,500, 600,700,800,900,1000 ] kill_time = 550 r = requests.get( url = self.url,params={'kill_time': kill_time, 'timers': json.dumps(timers) }) assert r.status_code == 200 data = json.loads( r.text) for t in data: assert t < kill_time, " %d < %d" %(t,kill_time)