Beispiel #1
0
    def test_missing_env_variables(self):
        roles = ['master', 'slave']

        for role in roles:
            os.environ['ROLE'] = role
            with self.assertRaises(RuntimeError):
                bootstrap()
Beispiel #2
0
    def test_slaves_not_fully_connected(self, mocked_timeout, mocked_dir, mocked_open, mocked_request):
        os.environ['ROLE'] = 'controller'
        os.environ['AUTOMATIC'] = str(True)
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['TOTAL_SLAVES'] = '3'
        os.environ['USERS'] = '100'
        os.environ['HATCH_RATE'] = '5'
        os.environ['DURATION'] = '10'
        os.environ['SLAVES_CHECK_TIMEOUT'] = '0.3'
        os.environ['SLAVES_CHECK_INTERVAL'] = '0.1'

        MASTER_URL = 'http://127.0.0.1:8089'
        mocked_request.get(url=MASTER_URL, text='ok')
        mocked_request.get(url=MASTER_URL + '/stats/requests', json={'slave_count': 1})
        mocked_request.post(url='/'.join([MASTER_URL, 'swarm']), text='ok')
        for endpoint in ['stop', 'stats/requests/csv', 'stats/distribution/csv', 'htmlreport']:
            mocked_request.get(url='/'.join([MASTER_URL, endpoint]), text='ok')

        self.assertFalse(mocked_timeout.called)
        self.assertFalse(mocked_request.called)
        #self.assertFalse(mocked_dir.called)
        self.assertFalse(mocked_open.called)
        bootstrap()
        self.assertTrue(mocked_timeout.called)
        self.assertTrue(mocked_request.called)
        #self.assertTrue(mocked_dir.called)
        self.assertTrue(mocked_open.called)
Beispiel #3
0
    def test_valid_master(self, popen):
        os.environ['ROLE'] = 'master'
        os.environ['TARGET_HOST'] = 'https://test.com'

        with mock.patch('src.app.get_locust_file') as file:
            bootstrap()
            self.assertTrue(file.called)
            self.assertTrue(popen.called)
Beispiel #4
0
    def test_invalid_env_variables(self):
        os.environ['ROLE'] = 'controller'
        os.environ['AUTOMATIC'] = str(True)
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['USERS'] = 'test'

        bootstrap()
        self.assertRaises(ValueError)
Beispiel #5
0
 def test_standalone_automatic(self, mocked_bootstrap):
     os.environ['ROLE'] = 'standalone'
     os.environ['AUTOMATIC'] = str(True)
     with self.assertRaises(SystemExit) as exit_code:
         with mock.patch('src.app.send_usage_statistics'):
             bootstrap()
     self.assertEqual(mocked_bootstrap.call_count, 3)
     self.assertEqual(exit_code.exception.code, 0)
    def test_invalid_env_variables(self):
        os.environ['ROLE'] = 'controller'
        os.environ['AUTOMATIC'] = str(True)
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['USERS'] = 'test'

        bootstrap()
        self.assertRaises(ValueError)
    def test_missing_env_variables(self, mocked_send_usage):
        roles = ['master', 'slave']

        for role in roles:
            os.environ['ROLE'] = role
            with self.assertRaises(RuntimeError):
                bootstrap()
                self.assertTrue(mocked_send_usage.called)
Beispiel #8
0
    def test_missing_env_variables(self, mocked_send_usage):
        roles = ['master', 'slave']

        for role in roles:
            os.environ['ROLE'] = role
            with self.assertRaises(RuntimeError):
                bootstrap()
                self.assertTrue(mocked_send_usage.called)
 def test_standalone_automatic(self, mocked_bootstrap):
     os.environ['ROLE'] = 'standalone'
     os.environ['AUTOMATIC'] = str(True)
     with self.assertRaises(SystemExit) as exit_code:
         with mock.patch('src.app.send_usage_statistics'):
             bootstrap()
     self.assertEqual(mocked_bootstrap.call_count, 3)
     self.assertEqual(exit_code.exception.code, 0)
Beispiel #10
0
    def test_valid_master(self, popen, mocked_send_usage):
        os.environ['ROLE'] = 'master'
        os.environ['TARGET_HOST'] = 'https://test.com'

        with mock.patch('src.app.get_locust_file') as file:
            bootstrap()
            self.assertTrue(file.called)
            self.assertTrue(popen.called)
            self.assertTrue(mocked_send_usage.called)
Beispiel #11
0
    def test_valid_slave(self, mocked_popen):
        os.environ['ROLE'] = 'slave'
        os.environ['TARGET_HOST'] = 'https://test.com'
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['SLAVE_MUL'] = '3'

        with mock.patch('src.app.get_locust_file') as file:
            bootstrap()
            self.assertTrue(file.called)
            self.assertTrue(mocked_popen.called)
    def test_valid_slave(self, mocked_popen, mocked_request):
        os.environ['ROLE'] = 'slave'
        os.environ['TARGET_HOST'] = 'https://test.com'
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['SLAVE_MUL'] = '3'
        os.environ['SLAVES_CHECK_TIMEOUT'] = '0.3'
        os.environ['SLAVES_CHECK_INTERVAL'] = '0.1'

        MASTER_URL = 'http://127.0.0.1:8089'
        mocked_request.get(url=MASTER_URL, text='ok')
        with mock.patch('src.app.get_locust_file') as file:
            bootstrap()
            self.assertTrue(file.called)
            self.assertTrue(mocked_popen.called)
    def test_master_not_ready_in_time(self, popen):
        os.environ['ROLE'] = 'slave'
        os.environ['TARGET_HOST'] = 'https://test.com'
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['SLAVE_MUL'] = '1'
        os.environ['MASTER_CHECK_TIMEOUT'] = '0.3'
        os.environ['MASTER_CHECK_INTERVAL'] = '0.1'

        with mock.patch('src.app.get_locust_file') as file:
            with self.assertRaises(RuntimeError) as e:
                bootstrap()
                self.assertFalse(file.called)
                self.assertFalse(popen.called)
            self.assertEqual('The master did not start in time.', str(e.exception))
    def test_valid_controller_automatic(self, mocked_timeout, mocked_dir, mocked_open, mocked_request):
        os.environ['ROLE'] = 'controller'
        os.environ['AUTOMATIC'] = str(True)
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['TOTAL_SLAVES'] = '3'
        os.environ['USERS'] = '100'
        os.environ['HATCH_RATE'] = '5'
        os.environ['DURATION'] = '10'

        MASTER_URL = 'http://127.0.0.1:8089'
        mocked_request.get(url=MASTER_URL, text='ok')
        mocked_request.get(url=MASTER_URL + '/stats/requests', json={'slave_count': 3})
        mocked_request.post(url='/'.join([MASTER_URL, 'swarm']), text='ok')
        for endpoint in ['stop', 'stats/requests/csv', 'stats/distribution/csv', 'htmlreport']:
            mocked_request.get(url='/'.join([MASTER_URL, endpoint]), text='ok')

        bootstrap()
        self.assertTrue(mocked_timeout.called)
        self.assertTrue(mocked_request.called)
        self.assertTrue(mocked_open.called)
Beispiel #15
0
    def test_valid_controller_automatic(self, mocked_timeout, mocked_dir, mocked_open, mocked_request):
        os.environ['ROLE'] = 'controller'
        os.environ['AUTOMATIC'] = str(True)
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['SLAVE_MUL'] = '3'
        os.environ['USERS'] = '100'
        os.environ['HATCH_RATE'] = '5'
        os.environ['DURATION'] = '10'

        mocked_request.get(url='http://127.0.0.1:8089', text='ok')
        mocked_request.post(url='http://127.0.0.1:8089/swarm', text='ok')
        mocked_request.get(url='http://127.0.0.1:8089/stop', text='ok')
        mocked_request.get(url='http://127.0.0.1:8089/htmlreport', text='ok')
        self.assertFalse(mocked_timeout.called)
        self.assertFalse(mocked_request.called)
        self.assertFalse(mocked_dir.called)
        self.assertFalse(mocked_open.called)
        bootstrap()
        self.assertTrue(mocked_timeout.called)
        self.assertTrue(mocked_request.called)
        self.assertTrue(mocked_dir.called)
        self.assertTrue(mocked_open.called)
Beispiel #16
0
    def test_slaves_not_fully_connected(self, mocked_timeout, mocked_dir, mocked_open, mocked_request):
        os.environ['ROLE'] = 'controller'
        os.environ['AUTOMATIC'] = str(True)
        os.environ['MASTER_HOST'] = '127.0.0.1'
        os.environ['TOTAL_SLAVES'] = '3'
        os.environ['USERS'] = '100'
        os.environ['HATCH_RATE'] = '5'
        os.environ['DURATION'] = '10'
        os.environ['SLAVES_CHECK_TIMEOUT'] = '0.3'
        os.environ['SLAVES_CHECK_INTERVAL'] = '0.1'

        MASTER_URL = 'http://127.0.0.1:8089'
        mocked_request.get(url=MASTER_URL, text='ok')
        mocked_request.get(url=MASTER_URL + '/stats/requests', json={'slave_count': 1})
        mocked_request.post(url='/'.join([MASTER_URL, 'swarm']), text='ok')
        for endpoint in ['stop', 'stats/requests/csv', 'stats/distribution/csv', 'htmlreport']:
            mocked_request.get(url='/'.join([MASTER_URL, endpoint]), text='ok')

        with self.assertRaises(RuntimeError):
            bootstrap()
            self.assertFalse(mocked_request.called)
            self.assertFalse(mocked_open.called)
Beispiel #17
0
 def test_standalone_manual(self, mocked_bootstrap):
     os.environ['ROLE'] = 'standalone'
     with mock.patch('src.app.send_usage_statistics'):
         bootstrap()
     self.assertEqual(mocked_bootstrap.call_count, 2)
Beispiel #18
0
    def test_valid_controller_manual(self, mocked_timeout):
        os.environ['ROLE'] = 'controller'
        os.environ['AUTOMATIC'] = str(False)

        bootstrap()
        self.assertFalse(mocked_timeout.called)
Beispiel #19
0
 def test_standalone_manual(self, mocked_bootstrap):
     os.environ['ROLE'] = 'standalone'
     with mock.patch('src.app.send_usage_statistics'):
         bootstrap()
     self.assertEqual(mocked_bootstrap.call_count, 2)
Beispiel #20
0
    def test_valid_controller_manual(self, mocked_timeout):
        os.environ['ROLE'] = 'controller'
        os.environ['AUTOMATIC'] = str(False)

        bootstrap()
        self.assertFalse(mocked_timeout.called)
Beispiel #21
0
 def test_invalid_role(self):
     os.environ['ROLE'] = 'unknown'
     with self.assertRaises(RuntimeError):
         bootstrap()
Beispiel #22
0
 def test_invalid_role(self):
     os.environ['ROLE'] = 'unknown'
     with self.assertRaises(RuntimeError):
         bootstrap()