Best Python code snippet using tempest_python
password_manager.gypi
Source:password_manager.gypi  
1# Copyright 2014 The Chromium Authors. All rights reserved.2# Use of this source code is governed by a BSD-style license that can be3# found in the LICENSE file.4{5  'targets': [6    {7      # GN version: //components/password_manager/core/browser8      'target_name': 'password_manager_core_browser',9      'type': 'static_library',10      'dependencies': [11        '../base/base.gyp:base',12        '../net/net.gyp:net',13        '../sql/sql.gyp:sql',14        '../sync/sync.gyp:sync',15        '../third_party/protobuf/protobuf.gyp:protobuf_lite',16        '../url/url.gyp:url_lib',17        'autofill_core_common',18        'components_strings.gyp:components_strings',19        'keyed_service_core',20        'os_crypt',21        '../third_party/re2/re2.gyp:re2',22        'password_manager_core_common',23        'password_manager_core_browser_proto',24      ],25      'include_dirs': [26        '..',27      ],28      'sources': [29        # Note: sources list duplicated in GN build.30        'password_manager/core/browser/affiliated_match_helper.cc',31        'password_manager/core/browser/affiliated_match_helper.h',32        'password_manager/core/browser/affiliation_backend.cc',33        'password_manager/core/browser/affiliation_backend.h',34        'password_manager/core/browser/affiliation_database.cc',35        'password_manager/core/browser/affiliation_database.h',36        'password_manager/core/browser/affiliation_fetch_throttler.cc',37        'password_manager/core/browser/affiliation_fetch_throttler.h',38        'password_manager/core/browser/affiliation_fetch_throttler_delegate.h',39        'password_manager/core/browser/affiliation_fetcher.cc',40        'password_manager/core/browser/affiliation_fetcher.h',41        'password_manager/core/browser/affiliation_fetcher_delegate.h',42        'password_manager/core/browser/affiliation_service.cc',43        'password_manager/core/browser/affiliation_service.h',44        'password_manager/core/browser/affiliation_utils.cc',45        'password_manager/core/browser/affiliation_utils.h',46        'password_manager/core/browser/browser_save_password_progress_logger.cc',47        'password_manager/core/browser/browser_save_password_progress_logger.h',48        'password_manager/core/browser/credential_manager_password_form_manager.cc',49        'password_manager/core/browser/credential_manager_password_form_manager.h',50        'password_manager/core/browser/credential_manager_pending_request_task.cc',51        'password_manager/core/browser/credential_manager_pending_request_task.h',52        'password_manager/core/browser/credential_manager_pending_require_user_mediation_task.cc',53        'password_manager/core/browser/credential_manager_pending_require_user_mediation_task.h',54        'password_manager/core/browser/export/csv_writer.cc',55        'password_manager/core/browser/export/csv_writer.h',56        'password_manager/core/browser/facet_manager.cc',57        'password_manager/core/browser/facet_manager.h',58        'password_manager/core/browser/facet_manager_host.h',59        'password_manager/core/browser/import/csv_reader.cc',60        'password_manager/core/browser/import/csv_reader.h',61        'password_manager/core/browser/keychain_migration_status_mac.h',62        'password_manager/core/browser/log_receiver.h',63        'password_manager/core/browser/log_router.cc',64        'password_manager/core/browser/log_router.h',65        'password_manager/core/browser/login_database.cc',66        'password_manager/core/browser/login_database.h',67        'password_manager/core/browser/login_database_mac.cc',68        'password_manager/core/browser/login_database_posix.cc',69        'password_manager/core/browser/login_database_win.cc',70        'password_manager/core/browser/login_model.h',71        'password_manager/core/browser/password_autofill_manager.cc',72        'password_manager/core/browser/password_autofill_manager.h',73        'password_manager/core/browser/password_bubble_experiment.cc',74        'password_manager/core/browser/password_bubble_experiment.h',75        'password_manager/core/browser/password_form_manager.cc',76        'password_manager/core/browser/password_form_manager.h',77        'password_manager/core/browser/password_generation_manager.cc',78        'password_manager/core/browser/password_generation_manager.h',79        'password_manager/core/browser/password_manager.cc',80        'password_manager/core/browser/password_manager.h',81        'password_manager/core/browser/password_manager_client.cc',82        'password_manager/core/browser/password_manager_client.h',83        'password_manager/core/browser/password_manager_driver.h',84        'password_manager/core/browser/password_manager_internals_service.cc',85        'password_manager/core/browser/password_manager_internals_service.h',86        'password_manager/core/browser/password_manager_metrics_util.cc',87        'password_manager/core/browser/password_manager_metrics_util.h',88        'password_manager/core/browser/password_manager_util.cc',89        'password_manager/core/browser/password_manager_util.h',90        'password_manager/core/browser/password_store.cc',91        'password_manager/core/browser/password_store.h',92        'password_manager/core/browser/password_store_change.h',93        'password_manager/core/browser/password_store_consumer.cc',94        'password_manager/core/browser/password_store_consumer.h',95        'password_manager/core/browser/password_store_default.cc',96        'password_manager/core/browser/password_store_default.h',97        'password_manager/core/browser/password_store_sync.cc',98        'password_manager/core/browser/password_store_sync.h',99        'password_manager/core/browser/password_syncable_service.cc',100        'password_manager/core/browser/password_syncable_service.h',101        'password_manager/core/browser/psl_matching_helper.cc',102        'password_manager/core/browser/psl_matching_helper.h',103        'password_manager/core/browser/statistics_table.cc',104        'password_manager/core/browser/statistics_table.h',105        'password_manager/core/browser/test_affiliation_fetcher_factory.h',106        'password_manager/core/browser/webdata/logins_table.cc',107        'password_manager/core/browser/webdata/logins_table.h',108        'password_manager/core/browser/webdata/logins_table_win.cc',109        'password_manager/core/browser/webdata/password_web_data_service_win.cc',110        'password_manager/core/browser/webdata/password_web_data_service_win.h',111      ],112      'conditions': [113        ['OS=="mac"', {114          'sources!': [115            # TODO(blundell): Provide the iOS login DB implementation and then116            # also exclude the POSIX one from iOS. http://crbug.com/341429117            'password_manager/core/browser/login_database_posix.cc',118          ],119        }],120      ],121      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.122      'msvs_disabled_warnings': [ 4267, ],123    },124    {125      # GN version: //components/password_manager/core/browser:proto126      'target_name': 'password_manager_core_browser_proto',127      'type': 'static_library',128      'sources': [129        'password_manager/core/browser/affiliation_api.proto'130      ],131      'variables': {132        'proto_in_dir': 'password_manager/core/browser',133        'proto_out_dir': 'components/password_manager/core/browser',134      },135      'includes': ['../build/protoc.gypi'],136    },137    {138      # GN version: //components/password_manager/core/browser:test_support139      'target_name': 'password_manager_core_browser_test_support',140      'type': 'static_library',141      'dependencies': [142        'autofill_core_common',143        '../base/base.gyp:base',144        '../testing/gmock.gyp:gmock',145        '../testing/gtest.gyp:gtest',146      ],147      'include_dirs': [148        '..',149      ],150      'sources': [151        # Note: sources list duplicated in GN build.152        'password_manager/core/browser/fake_affiliation_api.cc',153        'password_manager/core/browser/fake_affiliation_api.h',154        'password_manager/core/browser/fake_affiliation_fetcher.cc',155        'password_manager/core/browser/fake_affiliation_fetcher.h',156        'password_manager/core/browser/mock_affiliation_consumer.cc',157        'password_manager/core/browser/mock_affiliation_consumer.h',158        'password_manager/core/browser/mock_password_store.cc',159        'password_manager/core/browser/mock_password_store.h',160        'password_manager/core/browser/password_manager_test_utils.cc',161        'password_manager/core/browser/password_manager_test_utils.h',162        'password_manager/core/browser/stub_password_manager_client.cc',163        'password_manager/core/browser/stub_password_manager_client.h',164        'password_manager/core/browser/stub_password_manager_driver.cc',165        'password_manager/core/browser/stub_password_manager_driver.h',166        'password_manager/core/browser/test_password_store.cc',167        'password_manager/core/browser/test_password_store.h',168      ],169    },170    {171      # GN version: //components/password_manager/core/common172      'target_name': 'password_manager_core_common',173      'type': 'static_library',174      'dependencies': [175        '../base/base.gyp:base',176      ],177      'include_dirs': [178        '..',179      ],180      'sources': [181        # Note: sources list duplicated in GN build.182        'password_manager/core/common/credential_manager_types.cc',183        'password_manager/core/common/credential_manager_types.h',184        'password_manager/core/common/experiments.cc',185        'password_manager/core/common/experiments.h',186        'password_manager/core/common/password_manager_pref_names.cc',187        'password_manager/core/common/password_manager_pref_names.h',188        'password_manager/core/common/password_manager_switches.cc',189        'password_manager/core/common/password_manager_switches.h',190        'password_manager/core/common/password_manager_ui.h',191      ],192    },193  ],194  'conditions': [195    ['OS != "ios"', {196      'targets': [197        {198          # GN version: //components/password_manager/content/common199          'target_name': 'password_manager_content_common',200          'type': 'static_library',201          'dependencies': [202            '../base/base.gyp:base',203            '../content/content.gyp:content_common',204            '../ipc/ipc.gyp:ipc',205            '../third_party/WebKit/public/blink.gyp:blink_minimal',206            'password_manager_core_common',207          ],208          'include_dirs': [209            '..',210          ],211          'sources': [212            'password_manager/content/common/credential_manager_content_utils.cc',213            'password_manager/content/common/credential_manager_content_utils.h',214            'password_manager/content/common/credential_manager_message_generator.cc',215            'password_manager/content/common/credential_manager_message_generator.h',216            'password_manager/content/common/credential_manager_messages.h',217          ],218        },219        {220          # GN version: //components/password_manager/content/renderer221          'target_name': 'password_manager_content_renderer',222          'type': 'static_library',223          'dependencies': [224            '../base/base.gyp:base',225            '../content/content.gyp:content_common',226            '../ipc/ipc.gyp:ipc',227            '../third_party/WebKit/public/blink.gyp:blink',228            'password_manager_core_common',229            'password_manager_content_common',230          ],231          'include_dirs': [232            '..',233          ],234          'sources': [235            'password_manager/content/renderer/credential_manager_client.cc',236            'password_manager/content/renderer/credential_manager_client.h',237          ],238        },239        {240          # GN version: //components/password_manager/content/browser241          'target_name': 'password_manager_content_browser',242          'type': 'static_library',243          'dependencies': [244            '../base/base.gyp:base',245            '../content/content.gyp:content_browser',246            '../content/content.gyp:content_common',247            '../ipc/ipc.gyp:ipc',248            '../net/net.gyp:net',249            'autofill_content_browser',250            'autofill_content_common',251            'autofill_core_common',252            'keyed_service_content',253            'password_manager_core_browser',254            'password_manager_content_common',255          ],256          'include_dirs': [257            '..',258          ],259          'sources': [260            # Note: sources list duplicated in GN build.261            'password_manager/content/browser/content_password_manager_driver.cc',262            'password_manager/content/browser/content_password_manager_driver.h',263            'password_manager/content/browser/content_password_manager_driver_factory.cc',264            'password_manager/content/browser/content_password_manager_driver_factory.h',265            'password_manager/content/browser/credential_manager_dispatcher.cc',266            'password_manager/content/browser/credential_manager_dispatcher.h',267            'password_manager/content/browser/password_manager_internals_service_factory.cc',268            'password_manager/content/browser/password_manager_internals_service_factory.h',269          ],270        },271      ],272    }],273  ],...test_password_history.py
Source:test_password_history.py  
...14class TestPasswordHistory(TestCase):15    """16    All the tests that assert proper behavior regarding password history17    """18    def _change_password(self, user, password):19        """20        Helper method to change password on user and record in the PasswordHistory21        """22        user.set_password(password)23        user.save()24        history = PasswordHistory()25        history.create(user)26    def _user_factory_with_history(self, is_staff=False, set_initial_history=True):27        """28        Helper method to generate either an Admin or a User29        """30        if is_staff:31            user = AdminFactory()32        else:33            user = UserFactory()34        user.date_joined = timezone.now()35        if set_initial_history:36            history = PasswordHistory()37            history.create(user)38        return user39    @patch.dict("django.conf.settings.FEATURES", {'ADVANCED_SECURITY': False})40    def test_disabled_feature(self):41        """42        Test that behavior is normal when this feature is not turned on43        """44        user = UserFactory()45        staff = AdminFactory()46        # if feature is disabled user can keep reusing same password47        self.assertTrue(PasswordHistory.is_allowable_password_reuse(user, "test"))48        self.assertTrue(PasswordHistory.is_allowable_password_reuse(staff, "test"))49        self.assertFalse(PasswordHistory.should_user_reset_password_now(user))50        self.assertFalse(PasswordHistory.should_user_reset_password_now(staff))51    @patch.dict("django.conf.settings.ADVANCED_SECURITY_CONFIG", {'MIN_DIFFERENT_STAFF_PASSWORDS_BEFORE_REUSE': 2})52    @patch.dict("django.conf.settings.ADVANCED_SECURITY_CONFIG", {'MIN_DIFFERENT_STUDENT_PASSWORDS_BEFORE_REUSE': 1})53    def test_accounts_password_reuse(self):54        """55        Assert against the password reuse policy56        """57        user = self._user_factory_with_history()58        staff = self._user_factory_with_history(is_staff=True)59        # students need to user at least one different passwords before reuse60        self.assertFalse(PasswordHistory.is_allowable_password_reuse(user, "test"))61        self.assertTrue(PasswordHistory.is_allowable_password_reuse(user, "different"))62        self._change_password(user, "different")63        self.assertTrue(PasswordHistory.is_allowable_password_reuse(user, "test"))64        # staff needs to use at least two different passwords before reuse65        self.assertFalse(PasswordHistory.is_allowable_password_reuse(staff, "test"))66        self.assertTrue(PasswordHistory.is_allowable_password_reuse(staff, "different"))67        self._change_password(staff, "different")68        self.assertFalse(PasswordHistory.is_allowable_password_reuse(staff, "test"))69        self.assertFalse(PasswordHistory.is_allowable_password_reuse(staff, "different"))70        self.assertTrue(PasswordHistory.is_allowable_password_reuse(staff, "third"))71        self._change_password(staff, "third")72        self.assertTrue(PasswordHistory.is_allowable_password_reuse(staff, "test"))73    @override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.PBKDF2PasswordHasher'))74    @patch.dict("django.conf.settings.ADVANCED_SECURITY_CONFIG", {'MIN_DIFFERENT_STAFF_PASSWORDS_BEFORE_REUSE': 2})75    @patch.dict("django.conf.settings.ADVANCED_SECURITY_CONFIG", {'MIN_DIFFERENT_STUDENT_PASSWORDS_BEFORE_REUSE': 1})76    def test_pbkdf2_sha256_password_reuse(self):77        """78        Assert against the password reuse policy but using the normal Django PBKDF279        """80        user = self._user_factory_with_history()81        staff = self._user_factory_with_history(is_staff=True)82        # students need to user at least one different passwords before reuse83        self.assertFalse(PasswordHistory.is_allowable_password_reuse(user, "test"))84        self.assertTrue(PasswordHistory.is_allowable_password_reuse(user, "different"))85        self._change_password(user, "different")86        self.assertTrue(PasswordHistory.is_allowable_password_reuse(user, "test"))87        # staff needs to use at least two different passwords before reuse88        self.assertFalse(PasswordHistory.is_allowable_password_reuse(staff, "test"))89        self.assertTrue(PasswordHistory.is_allowable_password_reuse(staff, "different"))90        self._change_password(staff, "different")91        self.assertFalse(PasswordHistory.is_allowable_password_reuse(staff, "test"))92        self.assertFalse(PasswordHistory.is_allowable_password_reuse(staff, "different"))93        self.assertTrue(PasswordHistory.is_allowable_password_reuse(staff, "third"))94        self._change_password(staff, "third")95        self.assertTrue(PasswordHistory.is_allowable_password_reuse(staff, "test"))96    @patch.dict("django.conf.settings.ADVANCED_SECURITY_CONFIG", {'MIN_DAYS_FOR_STAFF_ACCOUNTS_PASSWORD_RESETS': 1})97    @patch.dict("django.conf.settings.ADVANCED_SECURITY_CONFIG", {'MIN_DAYS_FOR_STUDENT_ACCOUNTS_PASSWORD_RESETS': 5})98    def test_forced_password_change(self):99        """100        Assert when passwords must be reset101        """102        student = self._user_factory_with_history()103        staff = self._user_factory_with_history(is_staff=True)104        grandfathered_student = self._user_factory_with_history(set_initial_history=False)105        self.assertFalse(PasswordHistory.should_user_reset_password_now(student))106        self.assertFalse(PasswordHistory.should_user_reset_password_now(staff))107        self.assertFalse(PasswordHistory.should_user_reset_password_now(grandfathered_student))108        staff_reset_time = timezone.now() + timedelta(days=1)109        with freeze_time(staff_reset_time):110            self.assertFalse(PasswordHistory.should_user_reset_password_now(student))111            self.assertFalse(PasswordHistory.should_user_reset_password_now(grandfathered_student))112            self.assertTrue(PasswordHistory.should_user_reset_password_now(staff))113            self._change_password(staff, 'Different')114            self.assertFalse(PasswordHistory.should_user_reset_password_now(staff))115        student_reset_time = timezone.now() + timedelta(days=5)116        with freeze_time(student_reset_time):117            self.assertTrue(PasswordHistory.should_user_reset_password_now(student))118            self.assertTrue(PasswordHistory.should_user_reset_password_now(grandfathered_student))119            self.assertTrue(PasswordHistory.should_user_reset_password_now(staff))120            self._change_password(student, 'Different')121            self.assertFalse(PasswordHistory.should_user_reset_password_now(student))122            self._change_password(grandfathered_student, 'Different')123            self.assertFalse(PasswordHistory.should_user_reset_password_now(grandfathered_student))124            self._change_password(staff, 'Different')125            self.assertFalse(PasswordHistory.should_user_reset_password_now(staff))126    @patch.dict("django.conf.settings.ADVANCED_SECURITY_CONFIG", {'MIN_DAYS_FOR_STAFF_ACCOUNTS_PASSWORD_RESETS': None})127    @patch.dict("django.conf.settings.ADVANCED_SECURITY_CONFIG", {'MIN_DAYS_FOR_STUDENT_ACCOUNTS_PASSWORD_RESETS': None})128    def test_no_forced_password_change(self):129        """130        Assert that if we skip configuration, then user will never have to force reset password131        """132        student = self._user_factory_with_history()133        staff = self._user_factory_with_history(is_staff=True)134        # also create a user who doesn't have any history135        grandfathered_student = UserFactory()136        grandfathered_student.date_joined = timezone.now()137        self.assertFalse(PasswordHistory.should_user_reset_password_now(student))138        self.assertFalse(PasswordHistory.should_user_reset_password_now(staff))...ddos.py
Source:ddos.py  
...10password_dict = {}11password_list = []12word_pass = []13password = ""14def generate_password(website, digit_length, symbols, capitals):15    global password16    digiter = digit_length17    while digiter > 0:18        if symbols == "No" and capitals == "No":19            if ((digit_length % 2) == 0):20                num_letters = int(digit_length / 2)21                num_numbers = int(digit_length / 2)22            if ((digit_length % 2) != 0):23                num_numbers = int(digit_length / 2)24                num_letters = digit_length - num_numbers25            word = random.choices(alphabets, k=num_letters)26            first = 027            if ((word in password_list) == False) and len(password_list) == 0:28                for letter in word:29                    password_list.append(letter)30            num = random.choices(ran, k=num_numbers)31            if ((num in password_list) == False) and len(password_list) == num_letters:32                for number in num:33                    password_list.append(str(number))34            random.shuffle(password_list)35            password = "".join(password_list)363738        if symbols == "Yes" and capitals == "No":39            num_symbols = int(int(digit_length / 2) / 2)40            remainder = digit_length - num_symbols41            if ((remainder % 2) == 0):42                num_letters = int(remainder / 2)43                num_numbers = int(remainder / 2)44            if ((remainder % 2) != 0):45                num_numbers = int(remainder / 2)46                num_letters = remainder - num_numbers47            word = random.choices(alphabets, k=num_letters)48            if ((word in password_list) == False) and len(password_list) == 0:49                for letter in word:50                    password_list.append(letter)51            num = random.choices(ran, k=num_numbers)52            if ((num in password_list) == False) and len(password_list) == num_letters:53                for number in num:54                    password_list.append(str(number))55            symb = random.choices(symb_list, k=num_symbols)56            if ((symb in password_list) == False) and len(password_list) == remainder:57                for symbol in symb:58                    password_list.append(symbol)59            random.shuffle(password_list)60            password = "".join(password_list)6162        if symbols == "No" and capitals == "Yes":63            if ((digit_length % 2) == 0):64                num_letters = int(digit_length / 2)65                num_numbers = int(digit_length / 2)66            if ((digit_length % 2) != 0):67                num_numbers = int(digit_length / 2)68                num_letters = digit_length - num_numbers69            num_capitals = int(num_letters / 2)70            num_littles = num_letters - num_capitals71            word = random.choices(alphabets, k=num_littles)72            cap_word = random.choices(block_alphabets, k=num_capitals)73            if ((word in password_list) == False) and len(password_list) == 0:74                for letter in word:75                    password_list.append(letter)76            if ((cap_word in password_list) == False) and len(password_list) == num_littles:77                for cap_letter in cap_word:78                    password_list.append(cap_letter)79            num = random.choices(ran, k=num_numbers)80            if ((num in password_list) == False) and len(password_list) == num_letters:81                for number in num:82                    password_list.append(str(number))83            random.shuffle(password_list)84            password = "".join(password_list)8586        if symbols == "Yes" and capitals == "Yes":87            num_symbols = int(int(digit_length / 2) / 2)88            remainder = digit_length - num_symbols89            if ((remainder % 2) == 0):90                num_letters = int(remainder / 2)91                num_numbers = int(remainder / 2)92            if ((remainder % 2) != 0):93                num_numbers = int(remainder / 2)94                num_letters = remainder - num_numbers95            num_capitals = int(num_letters / 2)96            num_littles = num_letters - num_capitals97            word = random.choices(alphabets, k=num_littles)98            if ((word in password_list) == False) and len(password_list) == 0:99                for letter in word:100                    password_list.append(letter)101            num = random.choices(ran, k=num_numbers)102            cap_word = random.choices(block_alphabets, k=num_capitals)103            if ((cap_word in password_list) == False) and len(password_list) == num_littles:104                for cap_letter in cap_word:105                    password_list.append(cap_letter)106            if ((num in password_list) == False) and len(password_list) == num_letters:107                for number in num:108                    password_list.append(str(number))109            symb = random.choices(symb_list, k=num_symbols)110            if ((symb in password_list) == False) and len(password_list) == remainder:111                for symbol in symb:112                    password_list.append(symbol)113            random.shuffle(password_list)114            #global password115            password = "".join(password_list)116        digiter -= 1117118    print("""119    Your new password is {password}120    """.format(password=password))121    question = input("Would you like to keep it? ")122    if question == "Yes":123      with open("passwords.csv", "a") as passwords:124        fieldnames = ["website", "password"]125        passwords_file = csv.DictWriter(passwords, fieldnames = fieldnames)126        passwords_file.writeheader()127        passwords_file.writerow({"website": website, "password": password})128      print("""129      Your password '{password}' for the website '{website}' has been saved successfully""".format(website=website, password=password))130    elif question == "No":131      generate_password(website, digit_length, symbols, capitals)132    else:133        print("INVALID RESPONSE!!")134135if task == "1":136    website = input("What website do you want create a password for? ")137    digit_length = int(input("How many characters do you want your password to have? "))138    symbols = input("Do you want your password to have symbols (!@#$%^)? Reply(Yes/No) ")139    capitals = input("Do you want to include capital letters in your password? Reply(Yes/No) ")140    generate_password(website, digit_length, symbols, capitals)141if task == "2":142    diction = {}143    with open("passwords.csv") as passwords:144        passwar = csv.DictReader(passwords)145        for row in passwar:146            if row["website"] != "website":147                diction[row["website"]] = row["password"]148    specify = input(149        "Reply '1' if you have a specific website you want to retrieve and reply '2' if you want to view all your passwords: ")150    if specify == "1":151        site_retrieve = input("Which website's password would you like to retrieve? Please make no mistakes: ")152        if ((site_retrieve in diction) == True):153            print("Your password for '{site}' is '{passtw}'".format(site=site_retrieve, passtw=diction[site_retrieve]))154        else:
...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!!
