Best Python code snippet using slash
TD1_Lib_MasterLogger.py
Source:TD1_Lib_MasterLogger.py
...12"""13# User Defined Project Directory14MASTER_LOGGER_MAIN_DIR = None15main_dir = MASTER_LOGGER_MAIN_DIR if MASTER_LOGGER_MAIN_DIR is not None else MAIN_DIR16def get_log_dir():17 """18 Gets the Master Log File Directory.19 No Params Required.20 """21 log_name = "Master_Log.log"22 log_dir = os.path.join(main_dir, log_name)23 return log_dir24def get_new_log_dir():25 """26 Gets the Master Log File Directory for renaming.27 Existing Old Logs will be deleted if param: delete_old_master_log is set to True.28 No Params Required.29 """30 if delete_old_master_log is True:31 new_log_name = "Master_Log [OLD].log"32 new_log_dir = os.path.join(main_dir, new_log_name)33 if os.path.exists(new_log_dir):34 os.remove(new_log_dir)35 delete_old_logs(main_dir, "Master_Log [")36 return new_log_dir37 else:38 new_log_name = f"Master_Log [{get_last_modified_time(main_dir, 'Master_Log.log')}].log"39 new_log_dir = os.path.join(main_dir, new_log_name)40 return new_log_dir41if master_logger_enabler is True:42 if os.path.exists(get_log_dir()):43 os.rename(get_log_dir(), get_new_log_dir())44 with open(get_log_dir(), "w") as log_file:45 dt = datetime.datetime.now()46 log_file.write("TwelfthDoctor1's Master Log")47 log_file.write("\nApprentice Version: {0}".format(TD1_Lib_MasterApprentice_Control.__version__))48 log_file.write("\n==================================================================================================")49 log_file.write("\nCreation Date: {0} {1} {2} [UK] | {2} {1} {0} [US]".format(dt.day, dt.strftime("%B"), dt.year))50 log_file.write("\nCreation Time: {0}:{1}:{2} {3}".format(dt.strftime("%I"), dt.strftime("%M"), dt.strftime("%S"), dt.strftime("%p")))51 log_file.write("\n==================================================================================================")52 log_file.write("\nNEW LOG ENTRIES WILL BE APPENDED BELOW. ALL DATETIME WILL FOLLOW THE UK FORMAT.")53 log_file.write("\n==================================================================================================")54 log_file.write("\nMASTER LOG IS USED UNDER THE DIGRESSION OF TWELFTHDOCTOR1 UNDER THE USAGE OF DEBUG & TESTING.")55 log_file.write("\n==================================================================================================")56 log_file.close()57class MasterLogger:58 """59 The MasterLogger Class is a logger that logs the happenings of script when the specific functions are used.60 All logs from this class will be sent to Master_Log.log for analysis if needed.61 The MasterLogger should be used by TwelfthDoctor1 only.62 :param module_name63 :param main_owner64 :param additional_context65 """66 def __init__(self, module_name, main_owner=None, additional_context=None):67 self.module_name = module_name68 self.main_owner = main_owner69 self.addt_ctext = additional_context70 if master_logger_enabler is True:71 log_file = open(get_log_dir(), "a")72 def log(self, message, owner=None):73 """74 Logs the derived messaged onto MasterLog.75 Derived Message will be tagged as [LOG].76 :param message:77 :param owner:78 :return:79 """80 if master_logger_enabler is True:81 log_file = open(get_log_dir(), "a")82 dt_log = datetime.datetime.now()83 owner = self.main_owner or owner84 log_file.write("\n")85 log_file.write("\n[LOG: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(86 dt_log.day, dt_log.strftime("%B"),87 dt_log.year, dt_log.strftime("%I"),88 dt_log.strftime("%M"),89 dt_log.strftime("%S"),90 dt_log.strftime("%p"),91 self.module_name,92 owner93 ))94 if self.addt_ctext is not None:95 log_file.write("\n{0}".format(self.addt_ctext))96 log_file.write("\n")97 log_file.write("\n{0}".format(message))98 log_file.write("\n==================================================================================================")99 def info(self, message, owner=None):100 """101 Logs the derived message onto MasterLog.102 Derived Message will be tagged as [INFO].103 :param message:104 :param owner:105 :return:106 """107 if master_logger_enabler is True:108 log_file = open(get_log_dir(), "a")109 dt_info = datetime.datetime.now()110 owner = self.main_owner or owner111 log_file.write("\n")112 log_file.write("\n[INFO: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(113 dt_info.day, dt_info.strftime("%B"),114 dt_info.year, dt_info.strftime("%I"),115 dt_info.strftime("%M"),116 dt_info.strftime("%S"),117 dt_info.strftime("%p"),118 self.module_name,119 owner120 ))121 if self.addt_ctext is not None:122 log_file.write("\n{0}".format(self.addt_ctext))123 log_file.write("\n")124 log_file.write("\n{0}".format(message))125 log_file.write("\n==================================================================================================")126 def debug(self, message, owner=None):127 """128 Logs the derived message onto MasterLog.129 Derived Message will be tagged as [DEBUG].130 :param message:131 :param owner:132 :return:133 """134 if master_logger_enabler is True:135 log_file = open(get_log_dir(), "a")136 dt_debug = datetime.datetime.now()137 owner = self.main_owner or owner138 log_file.write("\n")139 log_file.write("\n[INFO: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(140 dt_debug.day, dt_debug.strftime("%B"),141 dt_debug.year, dt_debug.strftime("%I"),142 dt_debug.strftime("%M"),143 dt_debug.strftime("%S"),144 dt_debug.strftime("%p"),145 self.module_name,146 owner147 ))148 if self.addt_ctext is not None:149 log_file.write("\n{0}".format(self.addt_ctext))150 log_file.write("\n")151 log_file.write("\n{0}".format(message))152 log_file.write("\n==================================================================================================")153 def warn(self, message, owner=None):154 """155 Logs the derived message onto MasterLog.156 Derived Message will be tagged as [WARN].157 :param message:158 :param owner:159 :return:160 """161 if master_logger_enabler is True:162 log_file = open(get_log_dir(), "a")163 dt_warn = datetime.datetime.now()164 owner = self.main_owner or owner165 log_file.write("\n")166 log_file.write("\n[WARN: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(167 dt_warn.day, dt_warn.strftime("%B"),168 dt_warn.year, dt_warn.strftime("%I"),169 dt_warn.strftime("%M"),170 dt_warn.strftime("%S"),171 dt_warn.strftime("%p"),172 self.module_name,173 owner174 ))175 if self.addt_ctext is not None:176 log_file.write("{0}".format(self.addt_ctext))177 log_file.write("\n")178 log_file.write("\n{0}".format(message))179 log_file.write("\n==================================================================================================")180 def error(self, message, owner=None):181 """182 Logs the derived message onto MasterLog.183 Derived Message will be tagged as [ERROR].184 :param message:185 :param owner:186 :return:187 """188 if master_logger_enabler is True:189 log_file = open(get_log_dir(), "a")190 dt_error = datetime.datetime.now()191 owner = self.main_owner or owner192 log_file.write("\n")193 log_file.write("\n[ERROR: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(194 dt_error.day, dt_error.strftime("%B"),195 dt_error.year, dt_error.strftime("%I"),196 dt_error.strftime("%M"),197 dt_error.strftime("%S"),198 dt_error.strftime("%p"),199 self.module_name,200 owner201 ))202 if self.addt_ctext is not None:203 log_file.write("\n{0}".format(self.addt_ctext))204 log_file.write("\n")205 log_file.write("\n{0}".format(message))206 log_file.write("\n==================================================================================================")207 def assert_error(self, message, owner=None):208 """209 Logs the derived message onto MasterLog.210 Derived Message will be tagged as [ERROR WITH ASSERTION].211 USE WHEN NEEDED.212 :param message:213 :param owner:214 :return:215 """216 if master_logger_enabler is True:217 log_file = open(get_log_dir(), "a")218 dt_assert = datetime.datetime.now()219 owner = self.main_owner or owner220 log_file.write("\n")221 log_file.write("\n[ERROR WITH ASSERTION: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(222 dt_assert.day, dt_assert.strftime("%B"),223 dt_assert.year, dt_assert.strftime("%I"),224 dt_assert.strftime("%M"),225 dt_assert.strftime("%S"),226 dt_assert.strftime("%p"),227 self.module_name,228 owner229 ))230 if self.addt_ctext is not None:231 log_file.write("\n{0}".format(self.addt_ctext))232 log_file.write("\n")233 log_file.write("\n{0}".format(message))234 log_file.write("\n==================================================================================================")235 assert AssertionError(message)236 def exception(self, message, owner=None):237 """238 Logs the derived message onto MasterLog.239 Derived Message will be tagged as [EXCEPTION].240 :param message:241 :param owner:242 :return:243 """244 if master_logger_enabler is True:245 log_file = open(get_log_dir(), "a")246 dt_exc = datetime.datetime.now()247 owner = self.main_owner or owner248 log_file.write("\n")249 log_file.write("\n[ERROR: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(250 dt_exc.day, dt_exc.strftime("%B"),251 dt_exc.year, dt_exc.strftime("%I"),252 dt_exc.strftime("%M"),253 dt_exc.strftime("%S"),254 dt_exc.strftime("%p"),255 self.module_name,256 owner257 ))258 if self.addt_ctext is not None:259 log_file.write("\n{0}".format(self.addt_ctext))...
TD1_Lib_ApprenticeLogger.py
Source:TD1_Lib_ApprenticeLogger.py
...12"""13# User Defined Project Directory14APPRENTICE_LOGGER_MAIN_DIR = None15main_dir = APPRENTICE_LOGGER_MAIN_DIR if APPRENTICE_LOGGER_MAIN_DIR is not None else MAIN_DIR16def get_log_dir():17 """18 Gets the Apprentice Log File Directory.19 No Params Required.20 """21 log_name = "Apprentice_Log.log"22 log_dir = os.path.join(main_dir, log_name)23 return log_dir24def get_new_log_dir():25 """26 Gets the Apprentice Log File Directory for rename.27 Existing Old Logs will be deleted.28 No Params Required.29 """30 if delete_old_apprentice_log is True:31 new_log_name = "Apprentice_Log [OLD].log"32 new_log_dir = os.path.join(main_dir, new_log_name)33 if os.path.exists(new_log_dir):34 os.remove(new_log_dir)35 delete_old_logs(MAIN_DIR, "Apprentice_Log [")36 return new_log_dir37 else:38 new_log_name = f"Apprentice_Log [{get_last_modified_time(MAIN_DIR, 'Apprentice_Log.log')}].log"39 new_log_dir = os.path.join(main_dir, new_log_name)40 return new_log_dir41print(get_log_dir())42if os.path.exists(get_log_dir()):43 os.rename(get_log_dir(), get_new_log_dir())44with open(get_log_dir(), "w") as log_file:45 dt = datetime.datetime.now()46 log_file.write("TwelfthDoctor1's Apprentice Log")47 log_file.write("\nApprentice Version: {0}".format(MasterApprenticeLib.TD1_Lib_MasterApprentice_Control.__version__))48 log_file.write("\n==================================================================================================")49 log_file.write("\nCreation Date: {0} {1} {2} [UK] | {2} {1} {0} [US]".format(dt.day, dt.strftime("%B"), dt.year))50 log_file.write("\nCreation Time: {0}:{1}:{2} {3}".format(dt.strftime("%I"), dt.strftime("%M"), dt.strftime("%S"),51 dt.strftime("%p")))52 log_file.write("\n==================================================================================================")53 log_file.write("\nNEW LOG ENTRIES WILL BE APPENDED BELOW. ALL DATETIME WILL FOLLOW THE UK FORMAT.")54 log_file.write("\n==================================================================================================")55 if apprentice_version_type is not MasterApprenticeLogVersionType.DEVELOPER:56 log_file.write("\nFor any issues found, please send the Apprentice Log to TwelfthDoctor1.")57 else:58 log_file.write("\nApprentice Log under Developer Control.")59 log_file.write("\n==================================================================================================")60 log_file.close()61class ApprenticeLogger:62 """63 The ApprenticeLogger Class is a logger that logs the happenings of script when the specific functions are used.64 All logs from this class will be sent to Apprentice_Log.log for analysis if needed.65 :param module_name66 :param main_owner67 :param additional_context68 """69 def __init__(self, module_name, main_owner=None, additional_context=None):70 self.module_name = module_name71 self.main_owner = main_owner72 self.addt_ctext = additional_context73 log_file = open(get_log_dir(), "a")74 def log(self, message, owner=None):75 """76 Logs the derived messaged onto ApprenticeLog.77 Derived Message will be tagged as [LOG].78 :param message:79 :param owner:80 :return:81 """82 log_file = open(get_log_dir(), "a")83 dt_log = datetime.datetime.now()84 owner = self.main_owner or owner85 log_file.write("\n")86 log_file.write("\n[LOG: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(87 dt_log.day, dt_log.strftime("%B"),88 dt_log.year, dt_log.strftime("%I"),89 dt_log.strftime("%M"),90 dt_log.strftime("%S"),91 dt_log.strftime("%p"),92 self.module_name,93 owner94 ))95 if self.addt_ctext is not None:96 log_file.write("\n{0}".format(self.addt_ctext))97 log_file.write("\n")98 log_file.write("\n{0}".format(message))99 log_file.write("\n==================================================================================================")100 def info(self, message, owner=None):101 """102 Logs the derived message onto ApprenticeLog.103 Derived Message will be tagged as [INFO].104 :param message:105 :param owner:106 :return:107 """108 log_file = open(get_log_dir(), "a")109 dt_info = datetime.datetime.now()110 owner = self.main_owner or owner111 log_file.write("\n")112 log_file.write("\n[INFO: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(113 dt_info.day, dt_info.strftime("%B"),114 dt_info.year, dt_info.strftime("%I"),115 dt_info.strftime("%M"),116 dt_info.strftime("%S"),117 dt_info.strftime("%p"),118 self.module_name,119 owner120 ))121 if self.addt_ctext is not None:122 log_file.write("\n{0}".format(self.addt_ctext))123 log_file.write("\n")124 log_file.write("\n{0}".format(message))125 log_file.write("\n==================================================================================================")126 def debug(self, message, owner=None):127 """128 Logs the derived message onto ApprenticeLog.129 Derived Message will be tagged as [DEBUG].130 :param message:131 :param owner:132 :return:133 """134 log_file = open(get_log_dir(), "a")135 dt_debug = datetime.datetime.now()136 owner = self.main_owner or owner137 log_file.write("\n")138 log_file.write("\n[INFO: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(139 dt_debug.day, dt_debug.strftime("%B"),140 dt_debug.year, dt_debug.strftime("%I"),141 dt_debug.strftime("%M"),142 dt_debug.strftime("%S"),143 dt_debug.strftime("%p"),144 self.module_name,145 owner146 ))147 if self.addt_ctext is not None:148 log_file.write("\n{0}".format(self.addt_ctext))149 log_file.write("\n")150 log_file.write("\n{0}".format(message))151 log_file.write("\n==================================================================================================")152 def warn(self, message, owner=None):153 """154 Logs the derived message onto ApprenticeLog.155 Derived Message will be tagged as [WARN].156 :param message:157 :param owner:158 :return:159 """160 log_file = open(get_log_dir(), "a")161 dt_warn = datetime.datetime.now()162 owner = self.main_owner or owner163 log_file.write("\n")164 log_file.write("\n[WARN: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(165 dt_warn.day, dt_warn.strftime("%B"),166 dt_warn.year, dt_warn.strftime("%I"),167 dt_warn.strftime("%M"),168 dt_warn.strftime("%S"),169 dt_warn.strftime("%p"),170 self.module_name,171 owner172 ))173 if self.addt_ctext is not None:174 log_file.write("\n{0}".format(self.addt_ctext))175 log_file.write("\n")176 log_file.write("\n{0}".format(message))177 log_file.write("\n==================================================================================================")178 def error(self, message, owner=None):179 """180 Logs the derived message onto ApprenticeLog.181 Derived Message will be tagged as [ERROR].182 :param message:183 :param owner:184 :return:185 """186 log_file = open(get_log_dir(), "a")187 dt_error = datetime.datetime.now()188 owner = self.main_owner or owner189 log_file.write("\n")190 log_file.write("\n[ERROR: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(191 dt_error.day, dt_error.strftime("%B"),192 dt_error.year, dt_error.strftime("%I"),193 dt_error.strftime("%M"),194 dt_error.strftime("%S"),195 dt_error.strftime("%p"),196 self.module_name,197 owner198 ))199 if self.addt_ctext is not None:200 log_file.write("\n{0}".format(self.addt_ctext))201 log_file.write("\n")202 log_file.write("\n{0}".format(message))203 log_file.write("\n==================================================================================================")204 def assert_error(self, message, owner=None):205 """206 Logs the derived message onto ApprenticeLog.207 Derived Message will be tagged as [ERROR WITH ASSERTION].208 USE WHEN NEEDED.209 :param message:210 :param owner:211 :return:212 """213 log_file = open(get_log_dir(), "a")214 dt_assert = datetime.datetime.now()215 owner = self.main_owner or owner216 log_file.write("\n")217 log_file.write("\n[ERROR WITH ASSERTION: {0} {1} {2} | {3}:{4}:{5} {6}] {7} | {8}]".format(218 dt_assert.day, dt_assert.strftime("%B"),219 dt_assert.year, dt_assert.strftime("%I"),220 dt_assert.strftime("%M"),221 dt_assert.strftime("%S"),222 dt_assert.strftime("%p"),223 self.module_name,224 owner225 ))226 if self.addt_ctext is not None:227 log_file.write("\n{0}".format(self.addt_ctext))228 log_file.write("\n")229 log_file.write("\n{0}".format(message))230 log_file.write("\n==================================================================================================")231 assert AssertionError(message)232 def exception(self, message, owner=None):233 """234 Logs the derived message onto MasterLog.235 Derived Message will be tagged as [EXCEPTION].236 :param message:237 :param owner:238 :return:239 """240 log_file = open(get_log_dir(), "a")241 dt_exc = datetime.datetime.now()242 owner = self.main_owner or owner243 log_file.write("\n")244 log_file.write("\n[ERROR: {0} {1} {2} | {3}:{4}:{5} {6}] [{7} | {8}]".format(245 dt_exc.day, dt_exc.strftime("%B"),246 dt_exc.year, dt_exc.strftime("%I"),247 dt_exc.strftime("%M"),248 dt_exc.strftime("%S"),249 dt_exc.strftime("%p"),250 self.module_name,251 owner252 ))253 if self.addt_ctext is not None:254 log_file.write("\n{0}".format(self.addt_ctext))...
test_var_prob.py
Source:test_var_prob.py
...31 #also using kmc32 scores_kmc = get_var_probs.get_bear_probs(None, wt_seq, vars_, 0, data=data,33 mc_samples=500000, vans=vans, lag=3, alphabet='dna', kmc_path=kmc_path)34 #calc true probs35 def get_log_dir(seen, all_, van, num_samples=500000):36 return np.average(np.log(st.beta.rvs(seen+van, all_-seen+alphabet_size*van, size=num_samples)))37 true_scores = np.empty([len(vars_), len(vans)])38 for i, van in enumerate(vans):39 true_scores[0, i] = ((2*get_log_dir(4, 7, van) + 1*get_log_dir(2, 7, van))40 -(1*get_log_dir(1, 7, van) + 2*get_log_dir(1, 1, van)))41 for i, van in enumerate(vans):42 true_scores[1, i] = ((get_log_dir(1, 4, van) + get_log_dir(0, 1, van) + 2*get_log_dir(0, 0, van))43 -(get_log_dir(3, 4, van) + get_log_dir(1, 7, van) + 2*get_log_dir(1, 1, van)))44 45 #assert46 fraction_error = (np.average(scores, axis=-1)-true_scores)/true_scores47 print(np.absolute(fraction_error))48 assert np.all(np.absolute(fraction_error) < 0.01)49 50 fraction_error = (np.average(scores_kmc, axis=-1)-true_scores)/true_scores51 print(np.absolute(fraction_error))52 assert np.all(np.absolute(fraction_error) < 0.01)53 54 # Now by MAP55 scores = get_var_probs.get_bear_probs(None, wt_seq, vars_, 0, data=data, get_map=True,56 vans=vans, lag=3, alphabet='dna')57 scores_kmc = get_var_probs.get_bear_probs(None, wt_seq, vars_, 0, data=data, get_map=True,58 vans=vans, lag=3, alphabet='dna', kmc_path=kmc_path)59 60 def get_quotient(seen, all_, van):61 return np.log((seen+van) / (all_+(alphabet_size+1)*van))62 63 for i, van in enumerate(vans):64 true_scores[0, i] = ((2*get_quotient(4, 7, van) + 1*get_quotient(2, 7, van))65 -(1*get_quotient(1, 7, van) + 2*get_quotient(1, 1, van)))66 for i, van in enumerate(vans):67 true_scores[1, i] = ((get_quotient(1, 4, van) + get_quotient(0, 1, van) + 2*get_quotient(0, 0, van))68 -(get_quotient(3, 4, van) + get_quotient(1, 7, van) + 2*get_quotient(1, 1, van)))69 70 print((np.average(scores, axis=-1)-np.average(scores_kmc, axis=-1))/np.average(scores, axis=-1))71 assert np.allclose(scores, true_scores)72def test_mc_sampling_seqs():73 f_name = resource_filename('bear_model', 'data/ex_seqs_kmap_for_var_pred.csv')74 kmc_path = f_name.split('ex_seqs_kmap_for_var_pred.csv')[0] + 'kmaps/ex_seqs'75 data = dataloader.sparse_dataloader(f_name, 'dna', 500, 1)76 alphabet_size = 477 78 # Sequences are 'TTTAT', 'TTCTT', 'TTTTT', 'TTTTT'79 seqs = ['TTTAT', 'TTCAT']80 vans = np.array([0.1, 1, 10])81 82 # First by mc sampling83 scores = get_var_probs.get_bear_probs_seqs(None, seqs, 0, data=data,84 mc_samples=200000, vans=vans, lag=3, alphabet='dna')85 #also using kmc86 scores_kmc = get_var_probs.get_bear_probs_seqs(None, seqs, 0, data=data,87 mc_samples=200000, vans=vans, lag=3, alphabet='dna', kmc_path=kmc_path)88 #calc true probs89 def get_log_dir(seen, all_, van, num_samples=200000):90 return np.average(np.log(st.beta.rvs(seen+van, all_-seen+alphabet_size*van, size=num_samples)))91 true_scores = np.empty([len(seqs), len(vans)])92 for i, van in enumerate(vans):93 true_scores[0, i] = (2*get_log_dir(4, 4, van) + 1*get_log_dir(3, 4, van)94 + 1*get_log_dir(1, 7, van) + 2*get_log_dir(1, 1, van))95 for i, van in enumerate(vans):96 true_scores[1, i] = (2*get_log_dir(4, 4, van) + 1*get_log_dir(1, 4, van)97 + 1*get_log_dir(0, 1, van) + 2*get_log_dir(0, 0, van))98 99 #assert100 fraction_error = (np.average(scores, axis=-1)-true_scores)/true_scores101 assert np.all(np.absolute(fraction_error) < 0.01)102 103 fraction_error = (np.average(scores_kmc, axis=-1)-true_scores)/true_scores104 assert np.all(np.absolute(fraction_error) < 0.01)105 106 # Now by MAP107 scores = get_var_probs.get_bear_probs_seqs(None, seqs, 0, data=data, get_map=True,108 vans=vans, lag=3, alphabet='dna')109 scores_kmc = get_var_probs.get_bear_probs_seqs(None, seqs, 0, data=data, get_map=True,110 mc_samples=200000, vans=vans, lag=3, alphabet='dna', kmc_path=kmc_path)111 ...
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!!