Best Python code snippet using splinter
wikidata_template.py
Source:wikidata_template.py
...251 template = WikidataTemplate(query_string)252 slots = template.get_slots()253 return list(dict(slot=slot, label=entity_name) for entity_name, slot in slots.items())254 @property255 def query_string(self) -> str:256 return str(self.query)257 @property258 def triples(self) -> List[QueryTriple]:259 QUERY_TRIPLES_PATTERN = WikidataQueryPatternHelper.get_query_triples_matches()...
analysis.py
Source:analysis.py
1"""2Module to provide functions to query the verdict database for the analysis library.3"""4from .utils import get_connection, query_db_all, query_db_one5import sqlite36import json7def list_functions():8 query_string = "select * from function"9 return query_db_all(query_string, [])10def list_calls_function(id):11 # based on the name of the function, list all function calls of the function with that name12 query_string = "select * from function_call where function = ?"13 return query_db_all(query_string, [id])14def list_properties_function(id):15 query_string = """select property.hash, property.serialised_structure, property.index_in_specification_file16 from (property inner join function_property_pair on property.hash == function_property_pair.property_hash)17 where function_property_pair.function = ?"""18 return query_db_all(query_string, [id])19def list_calls_transaction(transaction_id):20 # list all function_calls during the given transaction21 query_string = "select * from function_call where trans = ?"22 return query_db_all(query_string, [transaction_id])23def list_calls_transactionid(transaction_id, function_id):24 # a combination of the previous two functions: lists calls of given function during the given request25 query_string = "select * from function_call where trans=? and function=?"26 return query_db_all(query_string, [transaction_id, function_id])27def list_calls_verdict(function_id, verdict_value):28 # returns a list of dictionaries with calls of the given function29 # such that their verdict value is 0 or 1 (verdict_value)30 query_string = """select function_call.id, function_call.function,31 function_call.time_of_call, function_call.end_time_of_call,32 function_call.trans, function_call.path_condition_id_sequence from33 function_call inner join verdict on verdict.function_call=function_call.id34 inner join function on function_call.function=function.id35 where function.id=? and verdict.verdict=?"""36 return query_db_all(query_string, [function_id, verdict_value])37def list_function_calls_between_times(start_time, end_time):38 query_string = "select * from function_call where time_of_call > ? and end_time_of_call < ?"39 return query_db_all(query_string, [start_time, end_time])40def get_f_byname(function_name):41 query_string = "select * from function where fully_qualified_name = ?"42 return query_db_all(query_string, [function_name])43def get_f_byid(function_id):44 query_string = "select * from function where id = ?"45 return query_db_one(query_string, [function_id])46def list_test_data():47 query_string = "select * from test_data"48 return query_db_all(query_string, [])49def get_transaction_byid(transaction_id):50 query_string = "select * from trans where id=?"51 return query_db_one(query_string, [transaction_id])52def get_transaction_in_interval(lower_bound, upper_bound):53 query_string = "select * from trans where time_of_transaction >= ? and time_of_transaction <= ?"54 print(lower_bound, upper_bound)55 return query_db_all(query_string, [lower_bound, upper_bound])56def get_call_byid(call_id):57 query_string = "select * from function_call where id=?"58 return query_db_one(query_string, [call_id])59def get_transaction_bytime(time):60 query_string = "select * from trans where time_of_transaction=?"61 return query_db_one(query_string, [time])62def get_verdict_byid(verdict_id):63 query_string = "select * from verdict where id=?"64 return query_db_one(query_string, [verdict_id])65def get_atom_byid(atom_id):66 query_string = "select * from atom where id=?"67 return query_db_one(query_string, [atom_id])68def get_atom_by_index_and_property(atom_index, property_hash):69 query_string = """select * from atom where index_in_atoms=?70 and property_hash=?"""71 return query_db_one(query_string, [atom_index, property_hash])72def list_atoms_verdict(verdict_value):73 query_string = """select atom.id,atom.property_hash,atom.serialised_structure,atom.index_in_atoms74 from (verdict inner join atom on verdict.collapsing_atom=atom.index_in_atoms)75 where verdict.verdict=?"""76 return query_db_all(query_string, [verdict_value])77def get_falsifying_observation_call(call_id):78 # inner join three tables: observation-verdict-function_call79 # find rows corresponding to the given call_id and with verdict value zero80 # order by verdict limit 1 in order to find the first one wrt verdicts81 query_string = """select observation.id,observation.instrumentation_point,82 observation.verdict,observation.observed_value,observation.atom_index,83 observation.previous_condition_offset from84 (observation inner join verdict on observation.verdict=verdict.id85 inner join function_call on verdict.function_call=function_call.id)86 where function_call.id=? and verdict.verdict=087 order by verdict.time_obtained limit 1"""88 return query_db_one(query_string, [call_id])89def get_property_byhash(hash):90 query_string = "select * from property where hash=?"91 return query_db_one(query_string, [hash])92def get_point_byid(id):93 query_string = "select * from instrumentation_point where id=?"94 return query_db_one(query_string, [id])95def get_binding_byid(id):96 query_string = "select * from binding where id=?"97 return query_db_one(query_string, [id])98def get_bindings_from_function_property_pair(id):99 #TODO CHANGE100 query_string = "select * from binding where function=?"101 return query_db_all(query_string, [id])102def get_observation_byid(id):103 query_string = "select * from observation where id=?"104 return query_db_one(query_string, [id])105def get_assignment_byid(id):106 query_string = "select * from assignment where id=?"107 return query_db_one(query_string, [id])108def get_pcs_byid(id):109 query_string = "select * from path_condition_structure where id=?"110 return query_db_one(query_string, [id])111def get_pathcon_byid(id):112 query_string = "select * from path_condition where id=?"113 return query_db_one(query_string, [id])114def get_path_conditions_by_function_call_id(call_id):115 """Given a function call id, get the serialised conditions used for path reconstruction through that function116 call. """117 connection = get_connection()118 connection.row_factory = sqlite3.Row119 cursor = connection.cursor()120 path_condition_ids =\121 json.loads(122 cursor.execute("select path_condition_id_sequence from function_call where id = ?", [call_id]).fetchone()[0]123 )124 # extract the path condition ids, then get the serialised path conditions125 serialised_conditions = list(map(126 lambda path_condition_id : cursor.execute(127 "select serialised_condition from path_condition_structure where id=?",128 [path_condition_id]129 ).fetchone()["serialised_condition"],130 path_condition_ids131 ))132 serialised_conditions = serialised_conditions[1:]133 connection.close()134 return json.dumps(serialised_conditions)135def get_searchtree_byid(id):136 query_string = "select * from search_tree where id=?"137 return query_db_one(query_string, [id])138def get_searchtreevertex_byid(id):139 query_string = "select * from search_tree_vertex where id=?"140 return query_db_one(query_string, [id])141def get_intersection_byid(id):142 query_string = "select * from intersection where id=?"143 return query_db_one(query_string, [id])144def list_assignments_obs(observation_id):145 query_string = """select assignment.id, assignment.variable,146 assignment.value,assignment.type147 from assignment inner join observation_assignment_pair148 on assignment.id=observation_assignment_pair.assignment149 where observation_assignment_pair.observation =?"""150 return query_db_all(query_string, [observation_id])151def list_verdicts_byvalue(value):152 query_string = "select * from verdict where verdict.verdict=?"153 return query_db_all(query_string, [value])154def list_verdicts_function_property_byvalue(value):155 #TODO CHANGE156 query_string = """select verdict.id, verdict.binding, verdict.verdict,157 verdict.time_obtained, function_call.function, function.fully_qualified_name,158 function_call.time_of_call, function.property159 from (verdict inner join function_call on verdict.function_call=function_call.id160 inner join function on function_call.function=function.id)161 where verdict.verdict=?"""162 return query_db_all(query_string, [value])163def list_verdicts_call(call_id):164 query_string = "select * from verdict where function_call=?"165 return query_db_all(query_string, [call_id])166def list_verdicts_from_binding(binding_id):167 query_string = "select * from verdict where binding=?"168 return query_db_all(query_string, [binding_id])169def list_observations_call(call_id):170 query_string = """select observation.id, observation.instrumentation_point,171 observation.verdict,observation.observed_value,observation.atom_index,172 observation.previous_condition_offset from173 observation inner join verdict on observation.verdict=verdict.id174 inner join function_call on verdict.function_call=function_call.id175 where function_call.id=?"""176 return query_db_all(query_string, [call_id])177def list_observations():178 query_string = "select * from observation;"179 return query_db_all(query_string, [])180def list_observations_of_point(point_id):181 query_string = """select observation.id, observation.instrumentation_point,182 observation.verdict,observation.observed_value,observation.atom_index,183 observation.previous_condition_offset from observation184 where observation.instrumentation_point=?"""185 return query_db_all(query_string, [point_id])186def list_verdicts_with_value_of_call(call_id, verdict_value):187 query_string = "select * from verdict where function_call=? and verdict=?"188 return query_db_all(query_string, [call_id, verdict_value])189def list_verdicts_of_call_by_property(call_id, property_hash):190 query_string = """select verdict.id, verdict.binding, verdict.verdict, verdict.time_obtained,191 verdict.function_call, verdict.collapsing_atom from (verdict inner join binding192 on verdict.binding == binding.id) where verdict.function_call = ? and binding.property_hash = ? """193 return query_db_all(query_string, [call_id, property_hash])194def list_verdicts_with_value_of_call_by_property(call_id, verdict_value, property_hash):195 query_string = """select verdict.id, verdict.binding, verdict.verdict, verdict.time_obtained,196 verdict.function_call, verdict.collapsing_atom from (verdict inner join binding197 on verdict.binding == binding.id) where verdict.function_call = ? and binding.property_hash = ?198 and verdict.verdict = ?"""199 return query_db_all(query_string, [call_id, property_hash, verdict_value])200def list_verdicts_of_function(function_id):201 query_string = """select * from verdict inner join binding202 on verdict.binding=binding.id203 where binding.function=?"""204 return query_db_all(query_string, [function_id])205def list_verdicts_of_function_with_value(function_id, verdict_value):206 query_string = """select * from verdict inner join binding207 on verdict.binding=binding.id208 where binding.function=? and verdict.verdict=?"""209 return query_db_all(query_string, [function_id, verdict_value])210def get_assignment_dict_from_observation(id):211 """212 Given an observation ID, construct a dictionary mapping213 variable names to values collected during monitoring.214 """215 connection = get_connection()216 cursor = connection.cursor()217 list1 = cursor.execute(218 """219select assignment.variable, assignment.value, assignment.type from220((observation inner join observation_assignment_pair221 on observation_assignment_pair.observation == observation.id)222 inner join assignment223 on assignment.id == observation_assignment_pair.assignment)224where observation.id = ?225""",226 [id]227 ).fetchall()228 final_dict = {}229 for row in list1:230 final_dict[row[0]] = (row[1], row[2])231 connection.close()232 return json.dumps(final_dict)233def get_observations_from_verdict(verdict_id):234 """235 Given a verdict ID, return a list of verdict dictionaries.236 """237 query_string = "select * from observation where verdict = ?"...
test_master_data_controller.py
Source:test_master_data_controller.py
1# coding: utf-82from __future__ import absolute_import3from flask import json4from six import BytesIO5from swagger_server.models.bank_results_object import BankResultsObject # noqa: E5016from swagger_server.models.business_category_results_object import BusinessCategoryResultsObject # noqa: E5017from swagger_server.models.business_file_type_code_results_object import BusinessFileTypeCodeResultsObject # noqa: E5018from swagger_server.models.business_sub_category_results_object import BusinessSubCategoryResultsObject # noqa: E5019from swagger_server.models.city_summary_results_object import CitySummaryResultsObject # noqa: E50110from swagger_server.models.customer_category_results_object import CustomerCategoryResultsObject # noqa: E50111from swagger_server.models.error_object import ErrorObject # noqa: E50112from swagger_server.models.operating_type_results_object import OperatingTypeResultsObject # noqa: E50113from swagger_server.models.pin_code_summary_results_object import PinCodeSummaryResultsObject # noqa: E50114from swagger_server.models.relationship_results_object import RelationshipResultsObject # noqa: E50115from swagger_server.models.state_results_object import StateResultsObject # noqa: E50116from swagger_server.test import BaseTestCase17class TestMasterDataController(BaseTestCase):18 """MasterDataController integration test stubs"""19 def test_find_all_banks(self):20 """Test case for find_all_banks21 Get all Banks22 """23 query_string = [('offset', 100),24 ('limit', 200),25 ('query', 'query_example')]26 response = self.client.open(27 '/api_cas_fundscorner/v1//masterData/banks',28 method='GET',29 content_type='application/json',30 query_string=query_string)31 self.assert200(response,32 'Response body is : ' + response.data.decode('utf-8'))33 def test_find_all_business_categories(self):34 """Test case for find_all_business_categories35 Get all BusinessCategories36 """37 query_string = [('offset', 100),38 ('limit', 200),39 ('query', 'query_example')]40 response = self.client.open(41 '/api_cas_fundscorner/v1//masterData/businessCategories',42 method='GET',43 content_type='application/json',44 query_string=query_string)45 self.assert200(response,46 'Response body is : ' + response.data.decode('utf-8'))47 def test_find_all_business_file_types(self):48 """Test case for find_all_business_file_types49 Get all Business File Types50 """51 query_string = [('offset', 100),52 ('limit', 200),53 ('query', 'query_example')]54 response = self.client.open(55 '/api_cas_fundscorner/v1//masterData/businessFileTypes',56 method='GET',57 content_type='application/json',58 query_string=query_string)59 self.assert200(response,60 'Response body is : ' + response.data.decode('utf-8'))61 def test_find_all_business_sub_categories(self):62 """Test case for find_all_business_sub_categories63 Get all BusinessSubCategories64 """65 query_string = [('offset', 100),66 ('limit', 200),67 ('query', 'query_example')]68 response = self.client.open(69 '/api_cas_fundscorner/v1//masterData/businessSubCategories',70 method='GET',71 content_type='application/json',72 query_string=query_string)73 self.assert200(response,74 'Response body is : ' + response.data.decode('utf-8'))75 def test_find_all_cities(self):76 """Test case for find_all_cities77 Get all cities78 """79 query_string = [('offset', 100),80 ('limit', 200),81 ('query', 'query_example')]82 response = self.client.open(83 '/api_cas_fundscorner/v1//masterData/cities',84 method='GET',85 content_type='application/json',86 query_string=query_string)87 self.assert200(response,88 'Response body is : ' + response.data.decode('utf-8'))89 def test_find_all_customer_categories(self):90 """Test case for find_all_customer_categories91 Get all CustomerCategories92 """93 query_string = [('offset', 100),94 ('limit', 200),95 ('query', 'query_example')]96 response = self.client.open(97 '/api_cas_fundscorner/v1//masterData/customerCategories',98 method='GET',99 content_type='application/json',100 query_string=query_string)101 self.assert200(response,102 'Response body is : ' + response.data.decode('utf-8'))103 def test_find_all_operating_types(self):104 """Test case for find_all_operating_types105 Get all operatingTypes106 """107 query_string = [('offset', 100),108 ('limit', 200),109 ('query', 'query_example')]110 response = self.client.open(111 '/api_cas_fundscorner/v1//masterData/operatingTypes',112 method='GET',113 content_type='application/json',114 query_string=query_string)115 self.assert200(response,116 'Response body is : ' + response.data.decode('utf-8'))117 def test_find_all_pin_codes(self):118 """Test case for find_all_pin_codes119 Get all pin codes120 """121 query_string = [('offset', 100),122 ('limit', 200),123 ('query', 'query_example')]124 response = self.client.open(125 '/api_cas_fundscorner/v1//masterData/pinCodes',126 method='GET',127 content_type='application/json',128 query_string=query_string)129 self.assert200(response,130 'Response body is : ' + response.data.decode('utf-8'))131 def test_find_all_relationships(self):132 """Test case for find_all_relationships133 Get all Relationships134 """135 query_string = [('offset', 100),136 ('limit', 200),137 ('query', 'query_example')]138 response = self.client.open(139 '/api_cas_fundscorner/v1//masterData/relationships',140 method='GET',141 content_type='application/json',142 query_string=query_string)143 self.assert200(response,144 'Response body is : ' + response.data.decode('utf-8'))145 def test_find_all_retailers(self):146 """Test case for find_all_retailers147 Get all retailers148 """149 query_string = [('offset', 100),150 ('limit', 200),151 ('query', 'query_example')]152 response = self.client.open(153 '/api_cas_fundscorner/v1//masterData/retailers',154 method='GET',155 content_type='application/json',156 query_string=query_string)157 self.assert200(response,158 'Response body is : ' + response.data.decode('utf-8'))159 def test_find_all_states(self):160 """Test case for find_all_states161 Get all States162 """163 query_string = [('offset', 100),164 ('limit', 200),165 ('query', 'query_example')]166 response = self.client.open(167 '/api_cas_fundscorner/v1//masterData/states',168 method='GET',169 content_type='application/json',170 query_string=query_string)171 self.assert200(response,172 'Response body is : ' + response.data.decode('utf-8'))173 def test_get_pin_code_summary_by_city_id(self):174 """Test case for get_pin_code_summary_by_city_id175 Get all pin codes summary by cityId176 """177 query_string = [('offset', 100),178 ('limit', 200),179 ('cityId', 56),180 ('stateId', 56),181 ('cityName', 'cityName_example'),182 ('stateName', 'stateName_example')]183 response = self.client.open(184 '/api_cas_fundscorner/v1//masterData/pinCodes/findByCityOrState',185 method='GET',186 content_type='application/json',187 query_string=query_string)188 self.assert200(response,189 'Response body is : ' + response.data.decode('utf-8'))190 def test_get_pin_code_summary_by_pin_code(self):191 """Test case for get_pin_code_summary_by_pin_code192 Get all pin codes summary by pinCode193 """194 query_string = [('offset', 100),195 ('limit', 200)]196 response = self.client.open(197 '/api_cas_fundscorner/v1//masterData/pinCodes/{pinCode}'.format(pinCode='pinCode_example'),198 method='GET',199 content_type='application/json',200 query_string=query_string)201 self.assert200(response,202 'Response body is : ' + response.data.decode('utf-8'))203if __name__ == '__main__':204 import unittest...
test_default_controller.py
Source:test_default_controller.py
1# coding: utf-82from __future__ import absolute_import3from flask import json4from six import BytesIO5from swagger_server.models.image_url import ImageUrl # noqa: E5016from swagger_server.test import BaseTestCase7class TestDefaultController(BaseTestCase):8 """DefaultController integration test stubs"""9 def test_165c19b6a1574d4c8971af47(self):10 """Test case for 165c19b6a1574d4c8971af4711 Get Batch List (Internal)12 """13 response = self.client.open(14 '/vision/v3.2/batch/analyze',15 method='GET')16 self.assert200(response,17 'Response body is : ' + response.data.decode('utf-8'))18 def test_56f91f2e778daf14a499f200(self):19 """Test case for 56f91f2e778daf14a499f20020 Tag Image21 """22 body = None23 query_string = [('language', 'en'),24 ('model_version', 'latest')]25 response = self.client.open(26 '/vision/v3.2/tag',27 method='POST',28 data=json.dumps(body),29 content_type='application/json',30 query_string=query_string)31 self.assert200(response,32 'Response body is : ' + response.data.decode('utf-8'))33 def test_56f91f2e778daf14a499f20c(self):34 """Test case for 56f91f2e778daf14a499f20c35 Get Thumbnail36 """37 body = None38 query_string = [('smartCropping', true),39 ('width', 8.14),40 ('height', 8.14),41 ('model_version', 'latest')]42 response = self.client.open(43 '/vision/v3.2/generateThumbnail',44 method='POST',45 data=json.dumps(body),46 content_type='application/json',47 query_string=query_string)48 self.assert200(response,49 'Response body is : ' + response.data.decode('utf-8'))50 def test_56f91f2e778daf14a499f20d(self):51 """Test case for 56f91f2e778daf14a499f20d52 OCR53 """54 body = None55 query_string = [('language', 'unk'),56 ('detectOrientation', true),57 ('model_version', 'latest')]58 response = self.client.open(59 '/vision/v3.2/ocr',60 method='POST',61 data=json.dumps(body),62 content_type='application/json',63 query_string=query_string)64 self.assert200(response,65 'Response body is : ' + response.data.decode('utf-8'))66 def test_56f91f2e778daf14a499f20e(self):67 """Test case for 56f91f2e778daf14a499f20e68 List Domain Specific Models69 """70 response = self.client.open(71 '/vision/v3.2/models',72 method='GET')73 self.assert200(response,74 'Response body is : ' + response.data.decode('utf-8'))75 def test_56f91f2e778daf14a499f21b(self):76 """Test case for 56f91f2e778daf14a499f21b77 Analyze Image78 """79 body = None80 query_string = [('visualFeatures', 'Categories'),81 ('details', 'details_example'),82 ('language', 'en'),83 ('model_version', 'latest')]84 response = self.client.open(85 '/vision/v3.2/analyze',86 method='POST',87 data=json.dumps(body),88 content_type='application/json',89 query_string=query_string)90 self.assert200(response,91 'Response body is : ' + response.data.decode('utf-8'))92 def test_56f91f2e778daf14a499f21f(self):93 """Test case for 56f91f2e778daf14a499f21f94 Describe Image95 """96 body = None97 query_string = [('maxCandidates', '1'),98 ('language', 'en'),99 ('model_version', 'latest')]100 response = self.client.open(101 '/vision/v3.2/describe',102 method='POST',103 data=json.dumps(body),104 content_type='application/json',105 query_string=query_string)106 self.assert200(response,107 'Response body is : ' + response.data.decode('utf-8'))108 def test_56f91f2e778daf14a499f311(self):109 """Test case for 56f91f2e778daf14a499f311110 Recognize Domain Specific Content111 """112 body = None113 query_string = [('language', 'en'),114 ('model_version', 'latest')]115 response = self.client.open(116 '/vision/v3.2/models/{model}/analyze'.format(model='model_example'),117 method='POST',118 data=json.dumps(body),119 content_type='application/json',120 query_string=query_string)121 self.assert200(response,122 'Response body is : ' + response.data.decode('utf-8'))123 def test_5d9869604be85dee480c8750(self):124 """Test case for 5d9869604be85dee480c8750125 Get Read Result126 """127 response = self.client.open(128 '/vision/v3.2/read/analyzeResults/{operationId}'.format(operationId='operationId_example'),129 method='GET')130 self.assert200(response,131 'Response body is : ' + response.data.decode('utf-8'))132 def test_5d986960601faab4bf452005(self):133 """Test case for 5d986960601faab4bf452005134 Read135 """136 imageUrl = ImageUrl()137 query_string = [('language', 'language_example'),138 ('pages', 'pages_example'),139 ('readingOrder', 'readingOrder_example'),140 ('model_version', 'model_version_example')]141 response = self.client.open(142 '/vision/v3.2/read/analyze',143 method='POST',144 data=json.dumps(imageUrl),145 content_type='application/json',146 query_string=query_string)147 self.assert200(response,148 'Response body is : ' + response.data.decode('utf-8'))149 def test_5e0cdeda77a84fcd9a6d4e1b(self):150 """Test case for 5e0cdeda77a84fcd9a6d4e1b151 Detect Objects152 """153 body = None154 query_string = [('model_version', 'latest')]155 response = self.client.open(156 '/vision/v3.2/detect',157 method='POST',158 data=json.dumps(body),159 content_type='application/json',160 query_string=query_string)161 self.assert200(response,162 'Response body is : ' + response.data.decode('utf-8'))163 def test_6255e4f0fe1a47d79b577145(self):164 """Test case for 6255e4f0fe1a47d79b577145165 Batch (Internal)166 """167 response = self.client.open(168 '/vision/v3.2/batch/analyze/{name}'.format(name='name_example'),169 method='PUT')170 self.assert200(response,171 'Response body is : ' + response.data.decode('utf-8'))172 def test_650d21697bf6473aa7011a06(self):173 """Test case for 650d21697bf6473aa7011a06174 Get Batch (Internal)175 """176 response = self.client.open(177 '/vision/v3.2/batch/analyzeStatus/{name}'.format(name='name_example'),178 method='GET')179 self.assert200(response,180 'Response body is : ' + response.data.decode('utf-8'))181 def test_b156d0f5e11e492d9f64418d(self):182 """Test case for b156d0f5e11e492d9f64418d183 Get Area of Interest184 """185 body = None186 query_string = [('model_version', 'latest')]187 response = self.client.open(188 '/vision/v3.2/areaOfInterest',189 method='POST',190 data=json.dumps(body),191 content_type='application/json',192 query_string=query_string)193 self.assert200(response,194 'Response body is : ' + response.data.decode('utf-8'))195if __name__ == '__main__':196 import unittest...
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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!