How to use get_instance_id method in localstack

Best Python code snippet using localstack_python

test_sparkevents.py

Source:test_sparkevents.py Github

copy

Full Screen

...18 pass19@with_setup(_setup, _teardown)20def test_emit_library_loaded_event():21 event_name = constants.LIBRARY_LOADED_EVENT22 kwargs_list = [(INSTANCE_ID, get_instance_id()),23 (EVENT_NAME, event_name),24 (TIMESTAMP, time_stamp)]25 spark_events.emit_library_loaded_event()26 spark_events.get_utc_date_time.assert_called_with()27 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)28@with_setup(_setup, _teardown)29def test_emit_cluster_change_event():30 status_code = 20031 event_name = constants.CLUSTER_CHANGE_EVENT32 kwargs_list = [(INSTANCE_ID, get_instance_id()),33 (EVENT_NAME, event_name),34 (TIMESTAMP, time_stamp),35 (constants.CLUSTER_DNS_NAME, guid1),36 (constants.STATUS_CODE, status_code),37 (constants.SUCCESS, True),38 (constants.ERROR_MESSAGE, None)]39 spark_events.emit_cluster_change_event(guid1, status_code, True, None)40 spark_events.get_utc_date_time.assert_called_with()41 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)42@with_setup(_setup, _teardown)43def test_emit_session_creation_start_event():44 language = constants.SESSION_KIND_SPARK45 event_name = constants.SESSION_CREATION_START_EVENT46 kwargs_list = [(INSTANCE_ID, get_instance_id()),47 (EVENT_NAME, event_name),48 (TIMESTAMP, time_stamp),49 (constants.SESSION_GUID, guid1),50 (constants.LIVY_KIND, language)]51 spark_events.emit_session_creation_start_event(guid1, language)52 spark_events._verify_language_ok.assert_called_once_with(language)53 spark_events.get_utc_date_time.assert_called_with()54 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)55@with_setup(_setup, _teardown)56def test_emit_session_creation_end_event():57 language = constants.SESSION_KIND_SPARK58 event_name = constants.SESSION_CREATION_END_EVENT59 status = constants.BUSY_SESSION_STATUS60 session_id = 061 kwargs_list = [(INSTANCE_ID, get_instance_id()),62 (EVENT_NAME, event_name),63 (TIMESTAMP, time_stamp),64 (constants.SESSION_GUID, guid1),65 (constants.LIVY_KIND, language),66 (constants.SESSION_ID, session_id),67 (constants.STATUS, status),68 (constants.SUCCESS, True),69 (constants.EXCEPTION_TYPE, ""),70 (constants.EXCEPTION_MESSAGE, "")]71 spark_events.emit_session_creation_end_event(guid1, language, session_id, status, True, "", "")72 spark_events._verify_language_ok.assert_called_once_with(language)73 spark_events.get_utc_date_time.assert_called_with()74 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)75@with_setup(_setup, _teardown)76def test_emit_session_deletion_start_event():77 language = constants.SESSION_KIND_SPARK78 event_name = constants.SESSION_DELETION_START_EVENT79 status = constants.BUSY_SESSION_STATUS80 session_id = 081 kwargs_list = [(INSTANCE_ID, get_instance_id()),82 (EVENT_NAME, event_name),83 (TIMESTAMP, time_stamp),84 (constants.SESSION_GUID, guid1),85 (constants.LIVY_KIND, language),86 (constants.SESSION_ID, session_id),87 (constants.STATUS, status)]88 spark_events.emit_session_deletion_start_event(guid1, language, session_id, status)89 spark_events._verify_language_ok.assert_called_once_with(language)90 spark_events.get_utc_date_time.assert_called_with()91 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)92@with_setup(_setup, _teardown)93def test_emit_session_deletion_end_event():94 language = constants.SESSION_KIND_SPARK95 event_name = constants.SESSION_DELETION_END_EVENT96 status = constants.BUSY_SESSION_STATUS97 session_id = 098 kwargs_list = [(INSTANCE_ID, get_instance_id()),99 (EVENT_NAME, event_name),100 (TIMESTAMP, time_stamp),101 (constants.SESSION_GUID, guid1),102 (constants.LIVY_KIND, language),103 (constants.SESSION_ID, session_id),104 (constants.STATUS, status),105 (constants.SUCCESS, True),106 (constants.EXCEPTION_TYPE, ""),107 (constants.EXCEPTION_MESSAGE, "")]108 spark_events.emit_session_deletion_end_event(guid1, language, session_id, status, True, "", "")109 spark_events._verify_language_ok.assert_called_once_with(language)110 spark_events.get_utc_date_time.assert_called_with()111 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)112@with_setup(_setup, _teardown)113def test_emit_statement_execution_start_event():114 language = constants.SESSION_KIND_PYSPARK115 session_id = 7116 event_name = constants.STATEMENT_EXECUTION_START_EVENT117 kwargs_list = [(INSTANCE_ID, get_instance_id()),118 (EVENT_NAME, event_name),119 (TIMESTAMP, time_stamp),120 (constants.SESSION_GUID, guid1),121 (constants.LIVY_KIND, language),122 (constants.SESSION_ID, session_id),123 (constants.STATEMENT_GUID, guid2)]124 spark_events.emit_statement_execution_start_event(guid1, language, session_id, guid2)125 spark_events._verify_language_ok.assert_called_once_with(language)126 spark_events.get_utc_date_time.assert_called_with()127 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)128@with_setup(_setup, _teardown)129def test_emit_statement_execution_end_event():130 language = constants.SESSION_KIND_SPARK131 session_id = 7132 statement_id = 400133 event_name = constants.STATEMENT_EXECUTION_END_EVENT134 success = True135 exception_type = ''136 exception_message = 'foo'137 kwargs_list = [(INSTANCE_ID, get_instance_id()),138 (EVENT_NAME, event_name),139 (TIMESTAMP, time_stamp),140 (constants.SESSION_GUID, guid1),141 (constants.LIVY_KIND, language),142 (constants.SESSION_ID, session_id),143 (constants.STATEMENT_GUID, guid2),144 (constants.STATEMENT_ID, statement_id),145 (constants.SUCCESS, success),146 (constants.EXCEPTION_TYPE, exception_type),147 (constants.EXCEPTION_MESSAGE, exception_message)]148 spark_events.emit_statement_execution_end_event(guid1, language, session_id, guid2, statement_id, success,149 exception_type, exception_message)150 spark_events._verify_language_ok.assert_called_once_with(language)151 spark_events.get_utc_date_time.assert_called_with()152 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)153@with_setup(_setup, _teardown)154def test_emit_sql_execution_start_event():155 event_name = constants.SQL_EXECUTION_START_EVENT156 session_id = 22157 language = constants.SESSION_KIND_SPARK158 samplemethod = 'sample'159 maxrows = 12160 samplefraction = 0.5161 kwargs_list = [(INSTANCE_ID, get_instance_id()),162 (EVENT_NAME, event_name),163 (TIMESTAMP, time_stamp),164 (constants.SESSION_GUID, guid1),165 (constants.LIVY_KIND, language),166 (constants.SESSION_ID, session_id),167 (constants.SQL_GUID, guid2),168 (constants.SAMPLE_METHOD, samplemethod),169 (constants.MAX_ROWS, maxrows),170 (constants.SAMPLE_FRACTION, samplefraction)]171 spark_events.emit_sql_execution_start_event(guid1, language, session_id, guid2, samplemethod,172 maxrows, samplefraction)173 spark_events._verify_language_ok.assert_called_once_with(language)174 spark_events.get_utc_date_time.assert_called_with()175 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)176@with_setup(_setup, _teardown)177def test_emit_sql_execution_end_event():178 event_name = constants.SQL_EXECUTION_END_EVENT179 session_id = 17180 language = constants.SESSION_KIND_SPARK181 success = False182 exception_type = 'ValueError'183 exception_message = 'You screwed up'184 kwargs_list = [(INSTANCE_ID, get_instance_id()),185 (EVENT_NAME, event_name),186 (TIMESTAMP, time_stamp),187 (constants.SESSION_GUID, guid1),188 (constants.LIVY_KIND, language),189 (constants.SESSION_ID, session_id),190 (constants.SQL_GUID, guid2),191 (constants.STATEMENT_GUID, guid3),192 (constants.SUCCESS, success),193 (constants.EXCEPTION_TYPE, exception_type),194 (constants.EXCEPTION_MESSAGE, exception_message)]195 spark_events.emit_sql_execution_end_event(guid1, language, session_id, guid2, guid3,196 success, exception_type, exception_message)197 spark_events._verify_language_ok.assert_called_once_with(language)198 spark_events.get_utc_date_time.assert_called_with()199 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)200@with_setup(_setup, _teardown)201def test_emit_magic_execution_start_event():202 event_name = constants.MAGIC_EXECUTION_START_EVENT203 magic_name = 'sql'204 language = constants.SESSION_KIND_SPARKR205 kwargs_list = [(INSTANCE_ID, get_instance_id()),206 (EVENT_NAME, event_name),207 (TIMESTAMP, time_stamp),208 (constants.MAGIC_NAME, magic_name),209 (constants.LIVY_KIND, language),210 (constants.MAGIC_GUID, guid1)]211 spark_events.emit_magic_execution_start_event(magic_name, language, guid1)212 spark_events._verify_language_ok.assert_called_once_with(language)213 spark_events.get_utc_date_time.assert_called_with()214 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)215@with_setup(_setup, _teardown)216def test_emit_magic_execution_end_event():217 event_name = constants.MAGIC_EXECUTION_END_EVENT218 magic_name = 'sql'219 language = constants.SESSION_KIND_SPARKR220 success = True221 exception_type = ''222 exception_message = ''223 kwargs_list = [(INSTANCE_ID, get_instance_id()),224 (EVENT_NAME, event_name),225 (TIMESTAMP, time_stamp),226 (constants.MAGIC_NAME, magic_name),227 (constants.LIVY_KIND, language),228 (constants.MAGIC_GUID, guid1),229 (constants.SUCCESS, success),230 (constants.EXCEPTION_TYPE, exception_type),231 (constants.EXCEPTION_MESSAGE, exception_message)]232 spark_events.emit_magic_execution_end_event(magic_name, language, guid1, success,233 exception_type, exception_message)234 spark_events._verify_language_ok.assert_called_once_with(language)235 spark_events.get_utc_date_time.assert_called_with()236 spark_events.handler.handle_event.assert_called_once_with(kwargs_list)237def test_magic_verify_language_ok():...

Full Screen

Full Screen

make_choice.py

Source:make_choice.py Github

copy

Full Screen

1# -*- coding: utf8 -*-2from utils import * 3import sys4sys.path.append("module")5import os6yun_api = {}7files = os.listdir('module')8for i in files:9 name = i.split('.')[0]10 yun_api[name] = __import__(name) 11 12def get_from_action(args):13 pass14def init():15 required_dict = {}16 required_dict['CreateParamTemplate'] = [{'name':'Name', 'type': 'str', 'required': 'yes', 'method': random_string, 'args': ''}, 17 {'name':'Description', 'type': 'str', 'required': 'no', 'method': random_string, 'args': ''},18 {'name':'EngineVersion', 'type':'str', 'required': 'yes', 'method': random_choice, 'args': ['5.1', '5.5', '5.6', '5.7']}19 ]20 required_dict['DeleteParamTemplate'] = [{'name':'TemplateId', 'type': 'int', 'required': 'yes', 'method': get_from_action, 'args': ''}]21 required_dict['DescribeDefaultParams'] = [{'name':'EngineVersion', 'type': 'str', 'required': 'yes', 'method': random_choice, 'args': ['5.1', '5.5', '5.6', '5.7']}]22 required_dict['DescribeInstanceParamRecords'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]23 required_dict['DescribeInstanceParams'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'aargs':''}]24 required_dict['DescribeParamTemplateInfo'] = [{'name':'TemplateId', 'type': 'int', 'required': 'yes', 'method': get_from_action, 'args': ''}]25 required_dict['DescribeParamTemplates'] = []26 required_dict['DescribeRollbackRangeTime'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]27 required_dict['StartBatchRollback'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]28 required_dict['CreateBackup'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},29 {'name':'BackupMethod', 'type': 'str', 'required': 'yes', 'method': random_choice, 'args': ['logical', 'physical']}30 ]31 required_dict['DeleteBackup'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},32 {'name':'BackupMethod', 'type': 'str', 'required': 'yes', 'method': random_choice, 'args': ['logical', 'physical']}33 ]34 required_dict['DescribeBackupConfig'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]35 required_dict['DescribeBackupDatabases'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},36 {'name':'StartTime', 'type': 'time', 'required': 'yes', 'method': get_random_time, 'args':''}37 #{'name':'SearchDatabase','type':'str', 'required':'no', 'method': random_string, 'args':''}38 ]39 required_dict['DescribeBackupTables'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},40 {'name':'StartTime', 'type': 'time', 'required': 'yes', 'method': get_random_time, 'args':''},41 {'name':'DatabaseName', 'type': 'str', 'required': 'yes', 'method': get_from_action, 'args':''}42 ]43 required_dict['DescribeBackups'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]44 required_dict['DescribeBinlogs'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]45 required_dict['DescribeSlowLogs'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]46 required_dict['ModifyBackupConfig'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},47 {'name':'BackupMethod', 'type': 'str', 'required': 'yes', 'method': random_choice, 'args': ['logical', 'physical']}48 ]49 required_dict['AssociateSecurityGroups'] = [{'name':'SecurityGroupId', 'type': 'str', 'required': 'yes', 'method': get_sg_id, 'args':''},50 {'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}51 ]52 required_dict['DescribeDBSecurityGroups'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]53 required_dict['DescribeProjectSecurityGroups'] = [{'name':'ProjectId', 'type':'int', 'required': 'yes', 'method': get_from_action, 'args':''}]54 required_dict['DisassociateSecurityGroups'] = [{'name':'SecurityGroupId', 'type': 'str', 'required': 'yes', 'method': get_sg_id, 'args':''},55 {'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}56 ]57 required_dict['ModifyDBInstanceSecurityGroups'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},58 {'name':'SecurityGroupIds', 'type':'str_array', 'required':'yes', 'method': get_sg_ids, 'args':''}59 ]60 required_dict['CloseWanService'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]61 required_dict['DescribeDBInstanceCharset'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]62 required_dict['DescribeDBInstanceConfig'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]63 required_dict['DescribeDBInstanceRebootTime'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]64 required_dict['DescribeDBInstances'] = []65 required_dict['DescribeDBSwitchRecords'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]66 required_dict['DescribeTagsOfInstanceIds'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]67 required_dict['ModifyDBInstanceProject'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]68 required_dict['ModifyDBInstanceVipVport'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},69 {'name':'DstPort', 'type': 'int', 'required': 'yes', 'method': random_int, 'args': [1024, 65535]}70 ]71 required_dict['ModifyInstanceTag'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},72 {'name':'ReplaceTags.', 'type': 'array of tag info', 'required': 'yes', 'method': random_tags, 'args':''}73 ]74 required_dict['OpenWanService'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]75 required_dict['RestartDBInstances'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]76 77 required_dict['DescribeDatabases'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]78 required_dict['DescribeTables'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},79 {'name':'Database', 'type': 'str', 'required': 'yes', 'method': get_from_action, 'args':''}80 ] 81 required_dict['CreateAccounts'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},82 {'name':'Accounts.', 'type': 'array of account', 'required': 'yes', 'method': random_string, 'args': ''},83 {'name':'Password', 'type': 'str', 'required': 'yes', 'method': random_string, 'args': ''}84 ]85 required_dict['DeleteAccounts'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},86 {'name':'Accounts.', 'type': 'array of account', 'required': 'yes', 'method': random_string, 'args': ''}87 ]88 required_dict['DescribeAccountPrivileges'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},89 {'name':'User', 'type': 'str', 'required': 'yes', 'method': random_string, 'args': ''},90 {'name':'Host', 'type': 'str', 'required': 'yes', 'method': random_string, 'args': '%'}91 ]92 required_dict['DescribeAccounts'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]93 required_dict['DescribeSupportedPrivileges'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''}]94 required_dict['ModifyAccountDescription'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},95 {'name':'Accounts.', 'type': 'array of account', 'required': 'yes', 'method': random_string, 'args': ''},96 {'name':'Description', 'type': 'str', 'required': 'yes', 'method': random_string, 'args': ''}97 ]98 required_dict['ModifyAccountPassword'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},99 {'name':'Accounts.', 'type': 'array of account', 'required': 'yes', 'method': random_string, 'args': ''},100 {'name':'NewPassword', 'type': 'str', 'required': 'yes', 'method': random_string, 'args': ''}101 ]102 103 required_dict['ModifyAccountPrivileges'] = [{'name':'InstanceId', 'type': 'str', 'required': 'yes', 'method': get_instance_id, 'args':''},104 {'name':'Accounts.', 'type': 'array of account', 'required': 'yes', 'method': random_string, 'args': ''},105 {'name':'GlobalPrivileges.', 'type': 'str', 'required': 'yes', 'method': get_from_action, 'args': ''}106 ]107 108 109 output_dict = {}110 output_dict['CreateParamTemplate'] = [{'name':'TemplateId', 'type': 'int'}]111 output_dict['DescribeParamTemplates'] = [{'name':'TemplateId', 'type': 'int'}]112def ExecuteChoice(choice):113 pass114 115 116def MakeChoice():117 choice = random.sample(yun_api.keys(), 1)118 print choice119 yun_api[choice[0]].fun()120if __name__ == '__main__':121 init()...

Full Screen

Full Screen

test_scheduler.py

Source:test_scheduler.py Github

copy

Full Screen

1import unittest2from mock import patch, MagicMock3from botocore.exceptions import ClientError4from flotilla.cli.scheduler import start_scheduler5REGIONS = ['us-east-1']6ENVIRONMENT = 'develop'7DOMAIN = 'test.com'8class TestScheduler(unittest.TestCase):9 @patch('flotilla.cli.scheduler.get_instance_id')10 @patch('flotilla.cli.scheduler.DynamoDbTables')11 @patch('flotilla.cli.scheduler.RepeatingFunc')12 @patch('boto.dynamodb2.connect_to_region')13 @patch('boto3.resource')14 def test_start_scheduler(self, sqs, dynamo, repeat, tables,15 get_instance_id):16 get_instance_id.return_value = 'i-123456'17 start_scheduler(ENVIRONMENT, DOMAIN, REGIONS, 0.1, 0.1, 0.1)18 self.assertEquals(4, repeat.call_count)19 @patch('flotilla.cli.scheduler.get_instance_id')20 @patch('flotilla.cli.scheduler.DynamoDbTables')21 @patch('flotilla.cli.scheduler.RepeatingFunc')22 @patch('boto.dynamodb2.connect_to_region')23 @patch('boto3.resource')24 def test_start_scheduler_multiregion(self, sqs, dynamo, repeat, tables,25 get_instance_id):26 get_instance_id.return_value = 'i-123456'27 start_scheduler(ENVIRONMENT, DOMAIN, ['us-east-1', 'us-west-2'], 0.1,28 0.1, 0.1)29 self.assertEquals(8, repeat.call_count)30 @patch('flotilla.cli.scheduler.get_instance_id')31 @patch('flotilla.cli.scheduler.DynamoDbTables')32 @patch('flotilla.cli.scheduler.RepeatingFunc')33 @patch('flotilla.cli.scheduler.get_queue')34 @patch('boto.dynamodb2.connect_to_region')35 @patch('boto3.resource')36 def test_start_scheduler_without_messaging(self, sqs, dynamo, get_queue,37 repeat,38 tables, get_instance_id):39 get_queue.return_value = None40 start_scheduler(ENVIRONMENT, DOMAIN, REGIONS, 0.1, 0.1, 0.1)...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run localstack automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful