def test_full_collection(self): obj = CloudProvisioning() obj.engine = EngineEmul() obj.engine.config.merge({ ScenarioExecutor.EXEC: { "executor": "mock", "concurrency": 5500, "locations": { "us-east-1": 1, "us-west": 2 } }, "modules": { "mock": ModuleMock.__module__ + "." + ModuleMock.__name__ }, "provisioning": "mock" }) obj.parameters = obj.engine.config['execution'] obj.engine.aggregator = ConsolidatingAggregator() obj.settings["token"] = "FakeToken" obj.settings["browser-open"] = False obj.settings["use-deprecated-api"] = False obj.client = client = BlazeMeterClientEmul(obj.log) client.results.append({"result": []}) # collections client.results.append({"result": []}) # tests client.results.append(self.__get_user_info()) # user client.results.append({"files": []}) # upload files client.results.append( {"result": { "name": "Taurus Collection", "items": [] }}) # transform config to collection client.results.append({"result": { "id": id(client) }}) # create collection client.results.append({"result": {"id": id(obj)}}) # start client.results.append({"result": { "id": id(obj), "sessions": [] }}) # get master client.results.append({"result": []}) # get master sessions client.results.append({}) # terminate obj.prepare() self.assertEquals(1, obj.executors[0].execution['locations']['us-east-1']) self.assertEquals(2, obj.executors[0].execution['locations']['us-west']) obj.startup() obj.check() obj.shutdown() obj.post_process()
def test_case1(self): mock = BZMock() mock.mock_get.update({ 'https://a.blazemeter.com/api/v4/multi-tests?projectId=1&name=Taurus+Cloud+Test': {"result": []}, 'https://a.blazemeter.com/api/v4/tests?projectId=1&name=Taurus+Cloud+Test': {"result": []}, 'https://a.blazemeter.com/api/v4/masters/1/multi-tests': {"result": []}, 'https://a.blazemeter.com/api/v4/masters/1/sessions': {"result": {"sessions": []}}, 'https://a.blazemeter.com/api/v4/masters/1/full': {"result": {"sessions": []}}, 'https://a.blazemeter.com/api/v4/masters/1': {"result": {"note": "message"}}, 'https://a.blazemeter.com/api/v4/masters/1/status': [ {"result": {"id": 1, "status": "CREATE"}}, {"result": {"id": 1, "status": "ENDED", "progress": 101}} ], }) mock.mock_post = { 'https://a.blazemeter.com/api/v4/projects': {"result": {"id": 1, "workspaceId": 1}}, 'https://a.blazemeter.com/api/v4/tests': {"result": {"id": 1, "configuration": {"type": "taurus"}}}, 'https://a.blazemeter.com/api/v4/tests/1/files': {"result": None}, 'https://a.blazemeter.com/api/v4/tests/1/start': {"result": {"id": 1}}, 'https://a.blazemeter.com/api/v4/masters/1/stop': {"result": None}, 'https://a.blazemeter.com/api/v4/masters/1/public-token': {"result": {"publicToken": "token"}}, } mock.mock_patch = { 'https://a.blazemeter.com/api/v4/tests/1': {"result": {}} } prov = CloudProvisioning() prov.browser_open = None prov.public_report = True prov.user.token = "test" prov.engine = EngineEmul() prov.engine.aggregator = ConsolidatingAggregator() prov.engine.config.merge({ ScenarioExecutor.EXEC: [{ "executor": "mock", "locations": { "aws": 1}, "files": ModuleMock().get_resource_files()}]}) mock.apply(prov.user) prov.prepare() prov.startup() prov.check() prov._last_check_time = 0 prov.check() prov.shutdown() prov.post_process()
def test_collection_simultaneous_start(self): obj = CloudProvisioning() obj.engine = EngineEmul() obj.engine.config.merge({ ScenarioExecutor.EXEC: { "executor": "mock", "concurrency": 5500, "locations": { "us-east-1": 1, "us-west": 1, } }, "modules": { "mock": ModuleMock.__module__ + "." + ModuleMock.__name__ }, "provisioning": "mock" }) obj.parameters = obj.engine.config['execution'] obj.engine.aggregator = ConsolidatingAggregator() obj.settings["token"] = "FakeToken" obj.settings["browser-open"] = False obj.settings["check-interval"] = "0ms" # do not skip checks obj.settings["use-deprecated-api"] = False obj.client = client = BlazeMeterClientEmul(obj.log) client.results.append({"result": []}) # find collection client.results.append({"result": []}) # find test client.results.append(self.__get_user_info()) # user client.results.append({}) # upload files client.results.append({"result": {"name": "Taurus Collection", "items": []}}) # transform config to collection client.results.append({"result": {"id": 42}}) # create collection client.results.append({"result": {"id": id(obj)}}) # start client.results.append({"result": {"id": id(obj), "sessions": [{"id": "s1", "status": "JMETER_CONSOLE_INIT"}, {"id": "s2", "status": "INIT_SCRIPT"}]}}) # status client.results.append({"result": []}) # sessions client.results.append({"result": {"id": id(obj), "sessions": [{"id": "s1", "status": "JMETER_CONSOLE_INIT"}, {"id": "s2", "status": "JMETER_CONSOLE_INIT"}]}}) client.results.append({"result": []}) # sessions client.results.append({"result": {}}) # force start client.results.append({"result": {"id": id(obj)}}) # master status client.results.append({"result": []}) # sessions client.results.append({}) # graceful shutdown client.results.append({"result": {"status": "ENDED"}}) # master status obj.prepare() obj.startup() obj.check() obj.check() # this one should trigger force start obj.check() obj.shutdown() obj.post_process() self.assertEqual(client.results, [])
def test_case1(self): mock = BZMock() mock.mock_get.update({ 'https://a.blazemeter.com/api/v4/masters/1/sessions': {"result": {"sessions": []}}, 'https://a.blazemeter.com/api/v4/masters/1/full': {"result": {"sessions": []}}, 'https://a.blazemeter.com/api/v4/masters/1': {"result": {"note": "message"}}, 'https://a.blazemeter.com/api/v4/masters/1/status': [ {"result": {"id": 1, "status": "CREATE"}}, {"result": {"id": 1, "status": "ENDED", "progress": 101}} ], }) mock.mock_post = { 'https://a.blazemeter.com/api/v4/projects': {"result": {"id": 1, "workspaceId": 1}}, 'https://a.blazemeter.com/api/v4/tests': {"result": {"id": 1}}, 'https://a.blazemeter.com/api/v4/tests/1/files': {"result": None}, 'https://a.blazemeter.com/api/v4/tests/1/start': {"result": {"id": 1}}, 'https://a.blazemeter.com/api/v4/masters/1/stop': {"result": None}, 'https://a.blazemeter.com/api/v4/masters/1/public-token': {"result": {"publicToken": "token"}}, } mock.mock_patch = { 'https://a.blazemeter.com/api/v4/tests/1': {"result": {}} } prov = CloudProvisioning() prov.browser_open = None prov.public_report = True prov.user.token = "test" prov.engine = EngineEmul() prov.engine.aggregator = ConsolidatingAggregator() # prov.engine.config.merge({"modules": {"blazemeter": {"browser-open": False}}}) prov.engine.config[ScenarioExecutor.EXEC] = [{ "executor": "mock", "locations": { "aws": 1 }, "files": ModuleMock().get_resource_files() }] mock.apply(prov.user) prov.prepare() prov.startup() prov.check() prov._last_check_time = 0 prov.check() prov.shutdown() prov.post_process()
def test_simple(self): obj = CloudProvisioning() obj.engine = EngineEmul() obj.engine.config.merge({ "execution": { "executor": "mock", "concurrency": 5500, "locations": { "us-east-1": 1, "us-west": 2 } }, "modules": { "mock": ModuleMock.__module__ + "." + ModuleMock.__name__ }, "provisioning": "mock" }) obj.parameters = obj.engine.config['execution'] obj.engine.aggregator = ConsolidatingAggregator() obj.settings["token"] = "FakeToken" obj.client = client = BlazeMeterClientEmul(obj.log) client.results.append(self.__get_user_info()) # user client.results.append({"result": []}) # tests client.results.append({"result": {"id": id(client)}}) # create test client.results.append({}) # upload files client.results.append({"result": {"id": id(obj)}}) # start client.results.append({"result": {"id": id(obj)}}) # get master client.results.append({}) # terminate obj.prepare() widget = obj.get_widget() self.assertEquals(2, obj.executors[0].execution['locations']['us-east-1']) self.assertEquals(4, obj.executors[0].execution['locations']['us-west']) obj.startup() obj.check() widget.render((200, ), False) txt = widget.text.get_text()[0] logging.info("Text: '%s'", txt) self.assertIn("us-east-1: 2", txt) self.assertIn("us-west: 4", txt) obj.shutdown() obj.post_process()
def test_simple(self): obj = CloudProvisioning() obj.engine = EngineEmul() obj.engine.config.merge({ "execution": { "executor": "mock", "concurrency": 5500, "locations": { "us-east-1": 1, "us-west": 2 } }, "modules": { "mock": ModuleMock.__module__ + "." + ModuleMock.__name__ }, "provisioning": "mock" }) obj.parameters = obj.engine.config['execution'] obj.engine.aggregator = ConsolidatingAggregator() obj.settings["token"] = "FakeToken" obj.client = client = BlazeMeterClientEmul(obj.log) client.results.append(self.__get_user_info()) # user client.results.append({"result": []}) # tests client.results.append({"result": {"id": id(client)}}) # create test client.results.append({}) # upload files client.results.append({"result": {"id": id(obj)}}) # start client.results.append({"result": {"id": id(obj)}}) # get master client.results.append({}) # terminate obj.prepare() widget = obj.get_widget() self.assertEquals(2, obj.executors[0].execution['locations']['us-east-1']) self.assertEquals(4, obj.executors[0].execution['locations']['us-west']) obj.startup() obj.check() widget.render((200,), False) txt = widget.text.get_text()[0] logging.info("Text: '%s'", txt) self.assertIn("us-east-1: 2", txt) self.assertIn("us-west: 4", txt) obj.shutdown() obj.post_process()
def test_full_collection(self): obj = CloudProvisioning() obj.engine = EngineEmul() obj.engine.config.merge({ ScenarioExecutor.EXEC: { "executor": "mock", "concurrency": 5500, "locations": { "us-east-1": 1, "us-west": 2 } }, "modules": { "mock": ModuleMock.__module__ + "." + ModuleMock.__name__ }, "provisioning": "mock" }) obj.parameters = obj.engine.config['execution'] obj.engine.aggregator = ConsolidatingAggregator() obj.settings["token"] = "FakeToken" obj.settings["browser-open"] = False obj.settings["use-deprecated-api"] = False obj.client = client = BlazeMeterClientEmul(obj.log) client.results.append({"result": []}) # collections client.results.append({"result": []}) # tests client.results.append(self.__get_user_info()) # user client.results.append({"files": []}) # upload files client.results.append({"result": {"name": "Taurus Collection", "items": []}}) # transform config to collection client.results.append({"result": {"id": id(client)}}) # create collection client.results.append({"result": {"id": id(obj)}}) # start client.results.append({"result": {"id": id(obj), "sessions": []}}) # get master client.results.append({"result": []}) # get master sessions client.results.append({}) # terminate obj.prepare() self.assertEquals(1, obj.executors[0].execution['locations']['us-east-1']) self.assertEquals(2, obj.executors[0].execution['locations']['us-west']) obj.startup() obj.check() obj.shutdown() obj.post_process()
def test_detach(self): obj = CloudProvisioning() obj.engine = EngineEmul() obj.engine.config.merge({ ScenarioExecutor.EXEC: { "executor": "mock", "concurrency": 55, "locations": { "us-east-1": 1, "us-west": 2 } }, "modules": { "mock": ModuleMock.__module__ + "." + ModuleMock.__name__ }, "provisioning": "mock" }) obj.parameters = obj.engine.config['execution'] obj.settings["token"] = "FakeToken" obj.settings["detach"] = True obj.settings["browser-open"] = False obj.client = client = BlazeMeterClientEmul(obj.log) client.results.append({"result": []}) # collections client.results.append({"result": []}) # tests client.results.append(self.__get_user_info()) # user client.results.append({"result": {"id": id(client)}}) # create test client.results.append({"files": []}) # create test client.results.append({}) # upload files client.results.append({"result": {"id": id(obj)}}) # start obj.prepare() self.assertEqual(1, len(client.results)) obj.startup() self.assertEqual([], client.results) obj.check() obj.shutdown() obj.post_process()
def test_dump_locations_new_style(self): obj = CloudProvisioning() obj.engine = EngineEmul() log_recorder = RecordingHandler() obj.log.addHandler(log_recorder) obj.settings["dump-locations"] = True obj.settings["token"] = "FakeToken" obj.settings["use-deprecated-api"] = False obj.client = BlazeMeterClientEmul(obj.log) obj.client.results.append(self.__get_user_info()) self.assertRaises(ManualShutdown, obj.prepare) warnings = log_recorder.warn_buff.getvalue() self.assertIn( "Dumping available locations instead of running the test", warnings) info = log_recorder.info_buff.getvalue() self.assertIn("Location: DFW Dallas (Rackspace)", info) self.assertIn("Location: us-west-2 US West (Oregon)", info) self.assertIn("Location: harbor-5591335d8588531f5cde3a04 Sandbox", info) obj.post_process()
def test_terminate_only(self): "test is terminated only when it was started and didn't finished" obj = CloudProvisioning() obj.engine = EngineEmul() obj.engine.config.merge({ ScenarioExecutor.EXEC: { "executor": "mock", "concurrency": 5500, "locations": { "us-east-1": 1, "us-west": 1, } }, "modules": { "mock": ModuleMock.__module__ + "." + ModuleMock.__name__ }, "provisioning": "mock" }) obj.parameters = obj.engine.config['execution'] obj.engine.aggregator = ConsolidatingAggregator() obj.settings["token"] = "FakeToken" obj.settings["browser-open"] = False obj.settings["check-interval"] = "0ms" # do not skip checks obj.settings["use-deprecated-api"] = False obj.client = client = BlazeMeterClientEmul(obj.log) client.results.append({"result": []}) # find collection client.results.append({"result": []}) # find test client.results.append(self.__get_user_info()) # user client.results.append({}) # upload files client.results.append( {"result": { "name": "Taurus Collection", "items": [] }}) # transform config to collection client.results.append({"result": {"id": 42}}) # create collection client.results.append({"result": {"id": id(obj)}}) # start client.results.append({ "result": { "id": id(obj), "sessions": [{ "id": "s1", "status": "JMETER_CONSOLE_INIT" }, { "id": "s2", "status": "JMETER_CONSOLE_INIT" }] } }) client.results.append({"result": []}) # sessions client.results.append({"result": {}}) # force start client.results.append({"result": { "progress": 120, "status": "ENDED" }}) # status should trigger shutdown client.results.append({"result": []}) # sessions obj.prepare() obj.startup() obj.check() # this one should trigger force start self.assertTrue(obj.check()) obj.shutdown() obj.post_process() self.assertEqual(client.results, [])