def test_proxy(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({ "marker": "test-create", 'result': { 'id': 'unittest1' } }) obj = BlazeMeterUploader() obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() obj.engine.config.merge({ "settings": { 'proxy': { "username": "******", "password": "******", "address": "http://127.0.0.1:8080" } } }) obj.client = client try: from urllib2 import _opener except ImportError: from urllib.request import _opener old_opener = _opener obj.prepare() try: from urllib2 import _opener except ImportError: from urllib.request import _opener new_opener = _opener self.assertNotEqual(old_opener, new_opener) # test if opener installed obj = BlazeMeterUploader() obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({ "marker": "test-create", 'result': { 'id': 'unittest1' } }) obj.client = client try: from urllib2 import _opener except ImportError: from urllib.request import _opener _opener = None obj.prepare() self.assertIsNone(_opener)
def test_no_notes_for_public_reporting(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.extend([{'result': {}} for _ in range(6)]) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '' # public reporting obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() obj.client = client obj.prepare() client.session_id = 'sess1' client.master_id = 'master1' obj.engine.stopping_reason = ValueError('wrong value') obj.aggregated_second(random_datapoint(10)) obj.kpi_buffer[-1][DataPoint.CUMULATIVE][''][KPISet.ERRORS] = [ {'msg': 'Forbidden', 'cnt': 10, 'type': KPISet.ERRTYPE_ASSERT, 'urls': [], KPISet.RESP_CODES: '111'}, {'msg': 'Allowed', 'cnt': 20, 'type': KPISet.ERRTYPE_ERROR, 'urls': [], KPISet.RESP_CODES: '222'}] obj.send_monitoring = obj.send_custom_metrics = obj.send_custom_tables = False obj.post_process() # check for note appending in _postproc_phase3() reqs = [{'url': '', 'data': ''} for _ in range(4)] # add template for minimal size reqs = (reqs + obj.client.requests)[-4:] self.assertNotIn('api/latest/sessions/sess1', reqs[0]['url']) self.assertNotIn('api/latest/sessions/sess1', reqs[1]['url']) self.assertNotIn('api/latest/masters/master1', reqs[2]['url']) self.assertNotIn('api/latest/masters/master1', reqs[3]['url']) if reqs[1]['data']: self.assertNotIn('ValueError: wrong value', reqs[1]['data']) if reqs[3]['data']: self.assertNotIn('ValueError: wrong value', reqs[3]['data'])
def test_some_errors(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "projects", 'result': []}) client.results.append({"marker": "project-create", 'result': { "id": time.time(), "name": "boo", "userId": time.time(), "description": None, "created": time.time(), "updated": time.time(), "organizationId": None }}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) client.results.append( {"marker": "sess-start", "result": { 'session': {'id': 'sess1', 'userId': 1}, 'master': {'id': 'master1', 'userId': 1}, 'signature': ''}}) client.results.append({"marker": "post-proc push", 'result': {'session': {}}}) client.results.append({"marker": "upload1", "result": True}) # post-proc error stats client.results.append({"marker": "terminate", 'result': {'session': {}}}) client.results.append({"marker": "terminate2", 'result': {'session': {}}}) client.results.append({"marker": "sess-e", "result": {'session': {'id': 'sess1', 'note': 'n'}}}) client.results.append({"marker": "sess-e", "result": {'session': {}}}) client.results.append({"marker": "sess-e", "result": {'master': {'id': 'sess1', 'note': 'n'}}}) client.results.append({"marker": "sess-e", "result": {'master': {}}}) client.results.append({"marker": "upload-file", "result": {}}) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() obj.client = client obj.prepare() obj.startup() obj.engine.stopping_reason = ValueError('wrong value') obj.aggregated_second(random_datapoint(10)) obj.kpi_buffer[-1][DataPoint.CURRENT][''][KPISet.ERRORS] = [ {'msg': 'Forbidden', 'cnt': 10, 'type': KPISet.ERRTYPE_ASSERT, 'urls': [], KPISet.RESP_CODES: '111'}, {'msg': 'Allowed', 'cnt': 20, 'type': KPISet.ERRTYPE_ERROR, 'urls': [], KPISet.RESP_CODES: '222'}] obj.post_process() self.assertEqual(0, len(client.results)) data = json.loads(client.requests[6]['data']) self.assertEqual(1, len(data['labels'])) total_item = data['labels'][0] self.assertEqual('ALL', total_item['name']) self.assertEqual(total_item['assertions'], [{ 'failureMessage': 'Forbidden', 'failures': 10, 'name': 'All Assertions'}]) self.assertEqual(total_item['errors'], [{ 'm': 'Allowed', 'count': 20, 'rc': '222'}])
def test_multiple_reporters_one_monitoring(self): obj1 = BlazeMeterUploader() obj1.engine = EngineEmul() obj1.client = BlazeMeterClientEmul(logging.getLogger('')) obj1.client.results.append({"marker": "ping", 'result': {}}) obj2 = BlazeMeterUploader() obj2.engine = EngineEmul() obj2.client = BlazeMeterClientEmul(logging.getLogger('')) obj2.client.results.append({"marker": "ping", 'result': {}}) obj1.prepare() obj2.prepare() for i in range(10): mon = [{"ts": i, "source": "local", "cpu": float(i) / 1000 * 100, "mem": 2, "bytes-recv": 100, "other": 0}] obj1.monitoring_data(mon) obj2.monitoring_data(mon)
def test_monitoring_buffer_limit_option(self): obj = BlazeMeterUploader() obj.engine = EngineEmul() obj.client = BlazeMeterClientEmul(logging.getLogger('')) obj.client.results.append({"marker": "ping", 'result': {}}) obj.settings["monitoring-buffer-limit"] = 100 obj.prepare() for i in range(1000): mon = [{"ts": i, "source": "local", "cpu": float(i) / 1000 * 100, "mem": 2, "bytes-recv": 100, "other": 0}] obj.monitoring_data(mon) for source, buffer in iteritems(obj.monitoring_buffer.data): self.assertLessEqual(len(buffer), 100)
def test_proxy(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) obj = BlazeMeterUploader() obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() obj.engine.config.merge( {"settings": {'proxy': {"username": "******", "password": "******", "address": "http://127.0.0.1:8080"}}}) obj.client = client try: from urllib2 import _opener except ImportError: from urllib.request import _opener old_opener = _opener obj.prepare() try: from urllib2 import _opener except ImportError: from urllib.request import _opener new_opener = _opener self.assertNotEqual(old_opener, new_opener) # test if opener installed obj = BlazeMeterUploader() obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) obj.client = client try: from urllib2 import _opener except ImportError: from urllib.request import _opener _opener = None obj.prepare() self.assertIsNone(_opener)
def test_monitoring_buffer_limit_option(self): obj = BlazeMeterUploader() obj.engine = EngineEmul() obj.client = BlazeMeterClientEmul(logging.getLogger('')) obj.client.results.append({"marker": "ping", 'result': {}}) obj.settings["monitoring-buffer-limit"] = 100 obj.prepare() for i in range(1000): mon = [{"ts": i, "source": "local", "cpu": float(i) / 1000 * 100, "mem": 2, "bytes-recv": 100, "other": 0}] obj.monitoring_data(mon) for source, buffer in iteritems(obj.monitoring_buffer.data): self.assertLessEqual(len(buffer), 100) self.assertEqual(0, len(obj.client.results))
def test_check(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "projects", 'result': []}) client.results.append({"marker": "project-create", 'result': { "id": time.time(), "name": "boo", "userId": time.time(), "description": None, "created": time.time(), "updated": time.time(), "organizationId": None }}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) client.results.append( {"marker": "sess-start", 'result': {'session': {'id': 'sess1', 'userId': 1}, 'signature': ''}}) client.results.append({"marker": "first push", 'result': {'session': {}}}) # client.results.append(None) # first check error stats client.results.append({"marker": "mon push", "result": True}) client.results.append({"marker": "second push", 'result': {'session': {"statusCode": 140, 'status': 'ENDED'}}}) # client.results.append(None) # second check error stats client.results.append({"marker": "post-proc push", 'result': {'session': {}}}) client.results.append({"marker": "upload1", "result": True}) # post-proc error stats client.results.append({"marker": "terminate", 'result': {'session': {}}}) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() shutil.copy(__file__, obj.engine.artifacts_dir + os.path.basename(__file__)) obj.client = client obj.prepare() obj.startup() for x in range(0, 31): obj.aggregated_second(random_datapoint(x)) mon = [{"ts": 1, "source": "local", "cpu": 1, "mem": 2, "bytes-recv": 100, "other": 0}] obj.monitoring_data(mon) obj.check() for x in range(32, 65): obj.aggregated_second(random_datapoint(x)) try: obj.check() self.fail() except KeyboardInterrupt: pass obj.aggregated_second(random_datapoint(10)) obj.shutdown() obj.post_process()
def test_check(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "projects", 'result': []}) client.results.append({"marker": "project-create", 'result': { "id": time.time(), "name": "boo", "userId": time.time(), "description": None, "created": time.time(), "updated": time.time(), "organizationId": None }}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) client.results.append( {"marker": "sess-start", 'result': {'session': {'id': 'sess1', 'userId': 1}, 'signature': ''}}) client.results.append({"marker": "first push", 'result': {'session': {}}}) # client.results.append(None) # first check error stats client.results.append( {"marker": "second push", 'result': {'session': {"statusCode": 140, 'status': 'ENDED'}}}) # client.results.append(None) # second check error stats client.results.append({"marker": "post-proc push", 'result': {'session': {}}}) client.results.append({"marker": "upload1", "result": True}) # post-proc error stats client.results.append({"marker": "terminate", 'result': {'session': {}}}) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() shutil.copy(__file__, obj.engine.artifacts_dir + os.path.basename(__file__)) obj.client = client obj.prepare() obj.startup() for x in range(0, 31): obj.aggregated_second(random_datapoint(x)) obj.check() for x in range(32, 65): obj.aggregated_second(random_datapoint(x)) try: obj.check() self.fail() except KeyboardInterrupt: pass obj.aggregated_second(random_datapoint(10)) obj.shutdown() obj.post_process()
def test_some_errors(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "projects", 'result': []}) client.results.append({"marker": "project-create", 'result': { "id": time.time(), "name": "boo", "userId": time.time(), "description": None, "created": time.time(), "updated": time.time(), "organizationId": None }}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) client.results.append( {"marker": "sess-start", "result": { 'session': {'id': 'sess1', 'userId': 1}, 'master': {'id': 'master1', 'userId': 1}, 'signature': ''}}) client.results.append({"marker": "post-proc push", 'result': {'session': {}}}) client.results.append({"marker": "upload1", "result": True}) # post-proc error stats client.results.append({"marker": "terminate", 'result': {'session': {}}}) client.results.append({"marker": "terminate2", 'result': {'session': {}}}) client.results.append({"marker": "sess-e", "result": {'session': {'id': 'sess1', 'note': 'n'}}}) client.results.append({"marker": "sess-e", "result": {'session': {}}}) client.results.append({"marker": "sess-e", "result": {'master': {'id': 'sess1', 'note': 'n'}}}) client.results.append({"marker": "sess-e", "result": {'master': {}}}) client.results.append({"marker": "upload-file", "result": {}}) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() obj.client = client obj.prepare() obj.startup() obj.engine.stopping_reason = ValueError('wrong value') obj.aggregated_second(random_datapoint(10)) obj.kpi_buffer[-1][DataPoint.CUMULATIVE][''][KPISet.ERRORS] = [ {'msg': 'Forbidden', 'cnt': 7373, 'type': KPISet.ERRTYPE_ASSERT, 'urls': [], KPISet.RESP_CODES: '403'}, {'msg': 'Allowed', 'cnt': 7373, 'type': KPISet.ERRTYPE_ERROR, 'urls': [], KPISet.RESP_CODES: '403'}] obj.post_process()
def test_check(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) client.results.append( {"marker": "sess-start", 'result': {'session': {'id': 'sess1', 'userId': 1}, 'signature': ''}}) client.results.append({"marker": "first push", 'result': {'session': {}}}) # client.results.append(None) # first check error stats client.results.append( {"marker": "second push", 'result': {'session': {"statusCode": 140, 'status': 'ENDED'}}}) # client.results.append(None) # second check error stats client.results.append({"marker": "post-proc push", 'result': {'session': {}}}) client.results.append({"marker": "upload1", "result": True}) # post-proc error stats client.results.append({"marker": "terminate", 'result': {'session': {}}}) obj = BlazeMeterUploader() obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() shutil.copy(__file__, obj.engine.artifacts_dir + os.path.basename(__file__)) obj.client = client obj.prepare() obj.startup() obj.aggregated_second(random_datapoint(0)) obj.aggregated_second(random_datapoint(1)) obj.aggregated_second(random_datapoint(2)) obj.aggregated_second(random_datapoint(3)) obj.aggregated_second(random_datapoint(4)) obj.check() obj.aggregated_second(random_datapoint(5)) obj.aggregated_second(random_datapoint(6)) obj.aggregated_second(random_datapoint(7)) obj.aggregated_second(random_datapoint(8)) obj.aggregated_second(random_datapoint(9)) try: obj.check() self.fail() except KeyboardInterrupt: pass obj.aggregated_second(random_datapoint(10)) obj.shutdown() obj.post_process()
def test_public_report(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.timeout = 1 client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) client.results.append( {"marker": "sess-start", "result": { 'session': {'id': 'sess1', 'userId': 1}, 'master': {'id': 'master1', 'userId': 1}, 'signature': ''}}) client.results.append({"marker": "share-report", 'result': {'publicToken': 'publicToken'}}) client.results.append({"marker": "first push", 'result': {'session': {}}}) client.results.append({"marker": "post-proc push", 'result': {'session': {}}}) client.results.append({"marker": "artifacts push", 'result': True}) client.results.append({"marker": "logs push", 'result': True}) client.results.append({"marker": "terminate", 'result': {'session': {}}}) log_recorder = RecordingHandler() obj = BlazeMeterUploader() obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.settings['public-report'] = True obj.settings['send-monitoring'] = False obj.engine = EngineEmul() obj.client = client obj.log.addHandler(log_recorder) obj.prepare() obj.startup() obj.aggregated_second(random_datapoint(10)) obj.check() obj.shutdown() obj.post_process() self.assertEqual(0, len(client.results)) log_buff = log_recorder.info_buff.getvalue() log_line = "Public report link: https://a.blazemeter.com/app/?public-token=publicToken#/masters/master1/summary" self.assertIn(log_line, log_buff)
def test_some_errors(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "projects", 'result': []}) client.results.append({"marker": "project-create", 'result': { "id": time.time(), "name": "boo", "userId": time.time(), "description": None, "created": time.time(), "updated": time.time(), "organizationId": None }}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) client.results.append( {"marker": "sess-start", "result": { 'session': {'id': 'sess1', 'userId': 1}, 'master': {'id': 'master1', 'userId': 1}, 'signature': ''}}) client.results.append({"marker": "post-proc push", 'result': {'session': {}}}) client.results.append({"marker": "upload1", "result": True}) # post-proc error stats client.results.append({"marker": "terminate", 'result': {'session': {}}}) client.results.append({"marker": "terminate2", 'result': {'session': {}}}) client.results.append({"marker": "sess-e", "result": {'session': {'id': 'sess1', 'note': 'n'}}}) client.results.append({"marker": "sess-e", "result": {'session': {}}}) client.results.append({"marker": "sess-e", "result": {'master': {'id': 'sess1', 'note': 'n'}}}) client.results.append({"marker": "sess-e", "result": {'master': {}}}) client.results.append({"marker": "upload-file", "result": {}}) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() obj.client = client obj.prepare() obj.startup() obj.engine.stopping_reason = ValueError('wrong value') obj.aggregated_second(random_datapoint(10)) obj.kpi_buffer[-1][DataPoint.CUMULATIVE][''][KPISet.ERRORS] = [ {'msg': 'Forbidden', 'cnt': 10, 'type': KPISet.ERRTYPE_ASSERT, 'urls': [], KPISet.RESP_CODES: '111'}, {'msg': 'Allowed', 'cnt': 20, 'type': KPISet.ERRTYPE_ERROR, 'urls': [], KPISet.RESP_CODES: '222'}] obj.post_process() # check for note appending in _postproc_phase3() reqs = obj.client.requests[-4:] self.assertIn('api/latest/sessions/sess1', reqs[0]['url']) self.assertIn('api/latest/sessions/sess1', reqs[1]['url']) self.assertIn('api/latest/masters/master1', reqs[2]['url']) self.assertIn('api/latest/masters/master1', reqs[3]['url']) self.assertIn('ValueError: wrong value', reqs[1]['data']) self.assertIn('ValueError: wrong value', reqs[3]['data']) self.assertEqual(0, len(client.results)) data = json.loads(client.requests[6]['data']) self.assertEqual(1, len(data['labels'])) total_item = data['labels'][0] self.assertEqual('ALL', total_item['name']) self.assertEqual(total_item['assertions'], [{ 'failureMessage': 'Forbidden', 'failures': 10, 'name': 'All Assertions'}]) self.assertEqual(total_item['errors'], [{ 'm': 'Allowed', 'count': 20, 'rc': '222'}])
def test_some_errors(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "projects", 'result': []}) client.results.append({ "marker": "project-create", 'result': { "id": time.time(), "name": "boo", "userId": time.time(), "description": None, "created": time.time(), "updated": time.time(), "organizationId": None } }) client.results.append({"marker": "tests", 'result': {}}) client.results.append({ "marker": "test-create", 'result': { 'id': 'unittest1' } }) client.results.append({ "marker": "sess-start", "result": { 'session': { 'id': 'sess1', 'userId': 1 }, 'master': { 'id': 'master1', 'userId': 1 }, 'signature': '' } }) client.results.append({ "marker": "post-proc push", 'result': { 'session': {} } }) client.results.append({ "marker": "upload1", "result": True }) # post-proc error stats client.results.append({ "marker": "terminate", 'result': { 'session': {} } }) client.results.append({ "marker": "terminate2", 'result': { 'session': {} } }) client.results.append({ "marker": "sess-e", "result": { 'session': { 'id': 'sess1', 'note': 'n' } } }) client.results.append({"marker": "sess-e", "result": {'session': {}}}) client.results.append({ "marker": "sess-e", "result": { 'master': { 'id': 'sess1', 'note': 'n' } } }) client.results.append({"marker": "sess-e", "result": {'master': {}}}) client.results.append({"marker": "upload-file", "result": {}}) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() obj.client = client obj.prepare() obj.startup() obj.engine.stopping_reason = ValueError('wrong value') obj.aggregated_second(random_datapoint(10)) obj.kpi_buffer[-1][DataPoint.CUMULATIVE][''][KPISet.ERRORS] = [{ 'msg': 'Forbidden', 'cnt': 7373, 'type': KPISet.ERRTYPE_ASSERT, 'urls': [], KPISet.RESP_CODES: '403' }, { 'msg': 'Allowed', 'cnt': 7373, 'type': KPISet.ERRTYPE_ERROR, 'urls': [], KPISet.RESP_CODES: '403' }] obj.post_process() self.assertEqual(0, len(client.results))
def test_check(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.timeout = 1 client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "projects", 'result': []}) client.results.append({ "marker": "project-create", 'result': { "id": time.time(), "name": "boo", "userId": time.time(), "description": None, "created": time.time(), "updated": time.time(), "organizationId": None } }) client.results.append({"marker": "tests", 'result': {}}) client.results.append({ "marker": "test-create", 'result': { 'id': 'unittest1' } }) client.results.append({ "marker": "sess-start", "result": { 'session': { 'id': 'sess1', 'userId': 1 }, 'master': { 'id': 'master1', 'userId': 1 }, 'signature': '' } }) client.results.append({ "marker": "first push", 'result': { 'session': {} } }) client.results.append(IOError("monitoring push expected fail")) client.results.append({"marker": "mon push", "result": True}) client.results.append(IOError("custom metric push expected fail")) client.results.append({ "marker": "custom metrics push", "result": True }) client.results.append({ "marker": "second push", 'result': { 'session': { "statusCode": 140, 'status': 'ENDED' } } }) client.results.append({ "marker": "post-proc push", 'result': { 'session': {} } }) client.results.append({ "marker": "post process monitoring push", "result": True }) client.results.append({ "marker": "post process custom metrics push", "result": True }) client.results.append({"marker": "artifacts push", 'result': True}) client.results.append({"marker": "logs push", 'result': True}) client.results.append({ "marker": "terminate", 'result': { 'session': {} } }) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.settings['send-custom-metrics'] = True obj.settings['send-custom-tables'] = True obj.engine = EngineEmul() shutil.copy(__file__, obj.engine.artifacts_dir + os.path.basename(__file__)) obj.client = client obj.prepare() obj.startup() for x in range(0, 31): obj.aggregated_second(random_datapoint(x)) mon = [{ "ts": 1, "source": "local", "cpu": 1, "mem": 2, "bytes-recv": 100, "other": 0 }, { "ts": 1, "source": "chrome", "memory": 32, "cpu": 23 }] obj.monitoring_data(mon) obj.check() for x in range(32, 65): obj.aggregated_second(random_datapoint(x)) self.assertRaises(KeyboardInterrupt, obj.check) obj.aggregated_second(random_datapoint(10)) obj.shutdown() log_file = obj.engine.create_artifact('log', '.tmp') obj.engine.log.parent.handlers.append(logging.FileHandler(log_file)) obj.post_process() self.assertEqual(0, len(client.results))
def test_check(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.timeout = 1 client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "projects", 'result': []}) client.results.append({"marker": "project-create", 'result': { "id": time.time(), "name": "boo", "userId": time.time(), "description": None, "created": time.time(), "updated": time.time(), "organizationId": None }}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({"marker": "test-create", 'result': {'id': 'unittest1'}}) client.results.append( {"marker": "sess-start", "result": { 'session': {'id': 'sess1', 'userId': 1}, 'master': {'id': 'master1', 'userId': 1}, 'signature': ''}}) client.results.append({"marker": "first push", 'result': {'session': {}}}) client.results.append(IOError("monitoring push expected fail")) client.results.append({"marker": "mon push", "result": True}) client.results.append(IOError("custom metric push expected fail")) client.results.append({"marker": "custom metrics push", "result": True}) client.results.append({"marker": "second push", 'result': {'session': {"statusCode": 140, 'status': 'ENDED'}}}) client.results.append({"marker": "post-proc push", 'result': {'session': {}}}) client.results.append({"marker": "post process monitoring push", "result": True}) client.results.append({"marker": "post process custom metrics push", "result": True}) client.results.append({"marker": "artifacts push", 'result': True}) client.results.append({"marker": "logs push", 'result': True}) client.results.append({"marker": "terminate", 'result': {'session': {}}}) obj = BlazeMeterUploader() obj.parameters['project'] = 'Proj name' obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.settings['send-custom-metrics'] = True obj.settings['send-custom-tables'] = True obj.engine = EngineEmul() shutil.copy(__file__, obj.engine.artifacts_dir + os.path.basename(__file__)) obj.client = client obj.prepare() obj.startup() for x in range(0, 31): obj.aggregated_second(random_datapoint(x)) mon = [{"ts": 1, "source": "local", "cpu": 1, "mem": 2, "bytes-recv": 100, "other": 0}, {"ts": 1, "source": "chrome", "memory": 32, "cpu": 23}] obj.monitoring_data(mon) obj.check() for x in range(32, 65): obj.aggregated_second(random_datapoint(x)) self.assertRaises(KeyboardInterrupt, obj.check) obj.aggregated_second(random_datapoint(10)) obj.shutdown() log_file = obj.engine.create_artifact('log', '.tmp') obj.engine.log.parent.handlers.append(logging.FileHandler(log_file)) obj.engine.config.get('modules').get('shellexec').get('env')['TAURUS_INDEX_ALL'] = 1 obj.post_process() self.assertEqual(0, len(client.results))
def test_check(self): client = BlazeMeterClientEmul(logging.getLogger('')) client.results.append({"marker": "ping", 'result': {}}) client.results.append({"marker": "tests", 'result': {}}) client.results.append({ "marker": "test-create", 'result': { 'id': 'unittest1' } }) client.results.append({ "marker": "sess-start", 'result': { 'session': { 'id': 'sess1', 'userId': 1 }, 'signature': '' } }) client.results.append({ "marker": "first push", 'result': { 'session': {} } }) # client.results.append(None) # first check error stats client.results.append({ "marker": "second push", 'result': { 'session': { "statusCode": 140, 'status': 'ENDED' } } }) # client.results.append(None) # second check error stats client.results.append({ "marker": "post-proc push", 'result': { 'session': {} } }) client.results.append({ "marker": "upload1", "result": True }) # post-proc error stats client.results.append({ "marker": "terminate", 'result': { 'session': {} } }) obj = BlazeMeterUploader() obj.settings['token'] = '123' obj.settings['browser-open'] = 'none' obj.engine = EngineEmul() shutil.copy(__file__, obj.engine.artifacts_dir + os.path.basename(__file__)) obj.client = client obj.prepare() obj.startup() obj.aggregated_second(random_datapoint(0)) obj.aggregated_second(random_datapoint(1)) obj.aggregated_second(random_datapoint(2)) obj.aggregated_second(random_datapoint(3)) obj.aggregated_second(random_datapoint(4)) obj.check() obj.aggregated_second(random_datapoint(5)) obj.aggregated_second(random_datapoint(6)) obj.aggregated_second(random_datapoint(7)) obj.aggregated_second(random_datapoint(8)) obj.aggregated_second(random_datapoint(9)) try: obj.check() self.fail() except KeyboardInterrupt: pass obj.aggregated_second(random_datapoint(10)) obj.shutdown() obj.post_process()