示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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'])
示例#5
0
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)