How to use create_certificate method in tempest

Best Python code snippet using tempest_python

test_trust.py

Source:test_trust.py Github

copy

Full Screen

...51 assert kwargs["all_fingerprints"] == test_all_fingerprints52 fingerprint = Fingerprint(source.name)53 assert Trust.full == trusts[fingerprint]54 assert len(trusts) == len(sources)55@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")], keyring_type="main")56def test_certificate_trust_main_key_has_full_trust(working_dir: Path, keyring_dir: Path) -> None:57 trust = certificate_trust(58 test_keyring_certificates[Username("foobar")][0],59 test_main_fingerprints,60 test_all_fingerprints,61 )62 assert Trust.full == trust63@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")], keyring_type="main")64@create_key_revocation(username=Username("foobar"), keyring_type="main")65def test_certificate_trust_main_key_revoked(working_dir: Path, keyring_dir: Path) -> None:66 trust = certificate_trust(67 test_keyring_certificates[Username("foobar")][0],68 test_main_fingerprints,69 test_all_fingerprints,70 )71 assert Trust.revoked == trust72@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")], keyring_type="main")73@create_key_revocation(username=Username("foobar"), keyring_type="main")74def test_certificate_trust_main_key_revoked_unknown_fingerprint_lookup(working_dir: Path, keyring_dir: Path) -> None:75 fingerprint = Fingerprint(test_keyring_certificates[Username("foobar")][0].name)76 revocation = list((keyring_dir / "main" / "foobar" / fingerprint / "revocation").iterdir())[0]77 revocation.rename(revocation.parent / "12341234.asc")78 with raises(Exception):79 certificate_trust(80 test_keyring_certificates[Username("foobar")][0],81 test_main_fingerprints,82 {Fingerprint("12341234")},83 )84@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")], keyring_type="main")85@create_key_revocation(username=Username("foobar"), keyring_type="main")86def test_certificate_trust_main_key_revoked_unknown_self_revocation(working_dir: Path, keyring_dir: Path) -> None:87 fingerprint = Fingerprint(test_keyring_certificates[Username("foobar")][0].name)88 revocation = list((keyring_dir / "main" / "foobar" / fingerprint / "revocation").iterdir())[0]89 revocation.rename(revocation.parent / "12341234.asc")90 with raises(Exception):91 certificate_trust(92 test_keyring_certificates[Username("foobar")][0],93 test_main_fingerprints,94 set(),95 )96@create_certificate(username=Username("main"), uids=[Uid("main <foo@bar.xyz>")])97@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])98def test_certificate_trust_no_signature_is_unknown(working_dir: Path, keyring_dir: Path) -> None:99 trust = certificate_trust(100 test_keyring_certificates[Username("foobar")][0],101 test_main_fingerprints,102 test_all_fingerprints,103 )104 assert Trust.unknown == trust105@create_certificate(username=Username("main"), uids=[Uid("main <foo@bar.xyz>")], keyring_type="main")106@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])107@create_uid_certification(issuer=Username("main"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))108def test_certificate_trust_one_signature_is_marginal(working_dir: Path, keyring_dir: Path) -> None:109 trust = certificate_trust(110 test_keyring_certificates[Username("foobar")][0],111 test_main_fingerprints,112 test_all_fingerprints,113 )114 assert Trust.marginal == trust115@create_certificate(username=Username("main"), uids=[Uid("main <foo@bar.xyz>")], keyring_type="main")116@create_certificate(username=Username("not_main"), uids=[Uid("main <foo@bar.xyz>")])117@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])118@create_uid_certification(issuer=Username("not_main"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))119def test_certificate_trust_one_none_main_signature_gives_no_trust(working_dir: Path, keyring_dir: Path) -> None:120 trust = certificate_trust(121 test_keyring_certificates[Username("foobar")][0],122 test_main_fingerprints,123 test_all_fingerprints,124 )125 assert Trust.unknown == trust126@create_certificate(username=Username("main1"), uids=[Uid("main1 <foo@bar.xyz>")], keyring_type="main")127@create_certificate(username=Username("main2"), uids=[Uid("main2 <foo@bar.xyz>")], keyring_type="main")128@create_certificate(username=Username("main3"), uids=[Uid("main3 <foo@bar.xyz>")], keyring_type="main")129@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])130@create_uid_certification(issuer=Username("main1"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))131@create_uid_certification(issuer=Username("main2"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))132@create_uid_certification(issuer=Username("main3"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))133def test_certificate_trust_three_main_signature_gives_full_trust(working_dir: Path, keyring_dir: Path) -> None:134 trust = certificate_trust(135 test_keyring_certificates[Username("foobar")][0],136 test_main_fingerprints,137 test_all_fingerprints,138 )139 assert Trust.full == trust140@create_certificate(username=Username("main"), uids=[Uid("main <foo@bar.xyz>")], keyring_type="main")141@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])142@create_key_revocation(username=Username("foobar"))143def test_certificate_trust_revoked_key(working_dir: Path, keyring_dir: Path) -> None:144 trust = certificate_trust(145 test_keyring_certificates[Username("foobar")][0],146 test_main_fingerprints,147 test_all_fingerprints,148 )149 assert Trust.revoked == trust150@create_certificate(username=Username("main"), uids=[Uid("main <foo@bar.xyz>")], keyring_type="main")151@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])152@create_uid_certification(issuer=Username("main"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))153@create_signature_revocation(issuer=Username("main"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))154def test_certificate_trust_one_signature_revoked(working_dir: Path, keyring_dir: Path) -> None:155 trust = certificate_trust(156 test_keyring_certificates[Username("foobar")][0],157 test_main_fingerprints,158 test_all_fingerprints,159 )160 assert Trust.revoked == trust161@create_certificate(username=Username("main1"), uids=[Uid("main1 <foo@bar.xyz>")], keyring_type="main")162@create_certificate(username=Username("main2"), uids=[Uid("main2 <foo@bar.xyz>")], keyring_type="main")163@create_certificate(username=Username("main3"), uids=[Uid("main3 <foo@bar.xyz>")], keyring_type="main")164@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])165@create_uid_certification(issuer=Username("main1"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))166@create_uid_certification(issuer=Username("main2"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))167@create_uid_certification(issuer=Username("main3"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))168@create_signature_revocation(issuer=Username("main3"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))169def test_certificate_trust_revoked_if_below_full(working_dir: Path, keyring_dir: Path) -> None:170 trust = certificate_trust(171 test_keyring_certificates[Username("foobar")][0],172 test_main_fingerprints,173 test_all_fingerprints,174 )175 assert Trust.revoked == trust176@create_certificate(username=Username("main1"), uids=[Uid("main1 <foo@bar.xyz>")], keyring_type="main")177@create_certificate(username=Username("main2"), uids=[Uid("main2 <foo@bar.xyz>")], keyring_type="main")178@create_certificate(username=Username("main3"), uids=[Uid("main3 <foo@bar.xyz>")], keyring_type="main")179@create_certificate(username=Username("main4"), uids=[Uid("main4 <foo@bar.xyz>")], keyring_type="main")180@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])181@create_uid_certification(issuer=Username("main1"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))182@create_uid_certification(issuer=Username("main2"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))183@create_uid_certification(issuer=Username("main3"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))184@create_uid_certification(issuer=Username("main4"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))185@create_signature_revocation(issuer=Username("main4"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))186def test_certificate_trust_full_remains_if_enough_sigs_present(working_dir: Path, keyring_dir: Path) -> None:187 trust = certificate_trust(188 test_keyring_certificates[Username("foobar")][0],189 test_main_fingerprints,190 test_all_fingerprints,191 )192 assert Trust.full == trust193@create_certificate(username=Username("main1"), uids=[Uid("main1 <foo@bar.xyz>")], keyring_type="main")194@create_certificate(username=Username("main2"), uids=[Uid("main2 <foo@bar.xyz>")], keyring_type="main")195@create_certificate(username=Username("main3"), uids=[Uid("main3 <foo@bar.xyz>")], keyring_type="main")196@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>"), Uid("old <old@old.old>")])197@create_uid_certification(issuer=Username("main1"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))198@create_uid_certification(issuer=Username("main2"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))199@create_signature_revocation(issuer=Username("foobar"), certified=Username("foobar"), uid=Uid("old <old@old.old>"))200def test_certificate_trust_not_revoked_if_only_one_uid_is_self_revoked(working_dir: Path, keyring_dir: Path) -> None:201 trust = certificate_trust(202 test_keyring_certificates[Username("foobar")][0],203 test_main_fingerprints,204 test_all_fingerprints,205 )206 assert Trust.marginal == trust207@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>"), Uid("old <old@old.old>")])208@create_signature_revocation(issuer=Username("foobar"), certified=Username("foobar"), uid=Uid("old <old@old.old>"))209def test_certificate_trust_unknown_if_only_contains_self_revoked(working_dir: Path, keyring_dir: Path) -> None:210 trust = certificate_trust(211 test_keyring_certificates[Username("foobar")][0],212 test_main_fingerprints,213 test_all_fingerprints,214 )215 assert Trust.unknown == trust216@create_certificate(username=Username("main1"), uids=[Uid("main1 <foo@bar.xyz>")], keyring_type="main")217@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>"), Uid("old <old@old.old>")])218@create_uid_certification(issuer=Username("main1"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))219def test_certificate_trust_missing_signature_fingerprint_lookup(working_dir: Path, keyring_dir: Path) -> None:220 with raises(Exception):221 certificate_trust(222 test_keyring_certificates[Username("foobar")][0],223 test_main_fingerprints,224 set(),225 )226@create_certificate(username=Username("foobar"), uids=[Uid("old <old@old.old>")])227@create_signature_revocation(issuer=Username("foobar"), certified=Username("foobar"), uid=Uid("old <old@old.old>"))228def test_certificate_trust_missing_revocation_fingerprint_lookup(working_dir: Path, keyring_dir: Path) -> None:229 with raises(Exception):230 certificate_trust(231 test_keyring_certificates[Username("foobar")][0],232 test_main_fingerprints,233 set(),234 )235@create_certificate(username=Username("main1"), uids=[Uid("main1 <foo@bar.xyz>")], keyring_type="main")236@create_certificate(username=Username("foobar"), uids=[Uid("foobar <foo@bar.xyz>")])237@create_certificate(username=Username("packager"), uids=[Uid("packager <packager@bar.xyz>")])238@create_uid_certification(issuer=Username("main1"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))239@create_uid_certification(issuer=Username("packager"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))240@create_signature_revocation(issuer=Username("packager"), certified=Username("foobar"), uid=Uid("foobar <foo@bar.xyz>"))241def test_certificate_trust_ignore_3rd_party_revocation(working_dir: Path, keyring_dir: Path) -> None:242 trust = certificate_trust(243 test_keyring_certificates[Username("foobar")][0],244 test_main_fingerprints,245 test_all_fingerprints,246 )247 assert Trust.marginal == trust248@mark.parametrize(249 "trust, result",250 [251 (Trust.revoked, Color.RED),...

Full Screen

Full Screen

test_81_certificates.py

Source:test_81_certificates.py Github

copy

Full Screen

...22 "organization": "asdfgh",23 "organization_unit": "asdfg"24 }25 osw = OpenSSLWrapper()26 ca_cert, ca_key = osw.create_certificate(cert_info_ca, request=False,27 write_to_file=True,28 cert_dir=os.path.dirname(29 os.path.abspath(30 __file__)) + "/pki")31 req_cert_str, req_key_str = osw.create_certificate(cert_info,32 request=True)33 ca_cert_str = osw.read_str_from_file(ca_cert)34 ca_key_str = osw.read_str_from_file(ca_key)35 cert_str = osw.create_cert_signed_certificate(ca_cert_str, ca_key_str,36 req_cert_str)37 valid, mess = osw.verify(ca_cert_str, cert_str)38 self.assertTrue(valid)39 false_ca_cert, false_ca_key = osw.create_certificate(cert_info_ca,40 request=False,41 write_to_file=False)42 false_req_cert_str_1, false_req_key_str_1 = osw.create_certificate(43 cert_info_ca, request=True)44 false_cert_str_1 = osw.create_cert_signed_certificate(false_ca_cert,45 false_ca_key,46 false_req_cert_str_1)47 false_req_cert_str_2, false_req_key_str_2 = osw.create_certificate(48 cert_info, request=True)49 false_cert_str_2 = osw.create_cert_signed_certificate(false_ca_cert,50 false_ca_key,51 false_req_cert_str_2)52 valid, mess = osw.verify(false_ca_cert, cert_str)53 self.assertFalse(valid)54 valid, mess = osw.verify(false_ca_cert, false_cert_str_1)55 self.assertFalse(valid)56 valid, mess = osw.verify(ca_cert_str, false_cert_str_2)57 self.assertFalse(valid)58 if 'z' in cert_str:59 false_cert_str = cert_str.replace('z', 'x')60 valid, mess = osw.verify(ca_cert_str, false_cert_str)61 self.assertFalse(valid)62 remove(ca_cert)63 remove(ca_key)64 def test_validate_cert_chains(self):65 cert_info_ca = {66 "cn": "qwerty",67 "country_code": "qw",68 "state": "qwerty",69 "city": "qwerty",70 "organization": "qwerty",71 "organization_unit": "qwerty"72 }73 cert_intermediate_1_info = {74 "cn": "intermediate_1",75 "country_code": "as",76 "state": "asdfgh",77 "city": "asdfgh",78 "organization": "asdfgh",79 "organization_unit": "asdfg"80 }81 cert_intermediate_2_info = {82 "cn": "intermediate_2",83 "country_code": "as",84 "state": "asdfgh",85 "city": "asdfgh",86 "organization": "asdfgh",87 "organization_unit": "asdfg"88 }89 cert_client_cert_info = {90 "cn": "intermediate_1",91 "country_code": "as",92 "state": "asdfgh",93 "city": "asdfgh",94 "organization": "asdfgh",95 "organization_unit": "asdfg"96 }97 osw = OpenSSLWrapper()98 ca_cert_str, ca_key_str = osw.create_certificate(cert_info_ca,99 request=False)100 req_cert_str, intermediate_1_key_str = osw.create_certificate(101 cert_intermediate_1_info, request=True)102 intermediate_cert_1_str = osw.create_cert_signed_certificate(103 ca_cert_str, ca_key_str, req_cert_str)104 req_cert_str, intermediate_2_key_str = osw.create_certificate(105 cert_intermediate_2_info, request=True)106 intermediate_cert_2_str = osw.create_cert_signed_certificate(107 intermediate_cert_1_str, intermediate_1_key_str,108 req_cert_str)109 req_cert_str, client_key_str = osw.create_certificate(110 cert_client_cert_info, request=True)111 client_cert_str = osw.create_cert_signed_certificate(112 intermediate_cert_2_str, intermediate_2_key_str,113 req_cert_str)114 cert_chain = [intermediate_cert_2_str, intermediate_cert_1_str,115 ca_cert_str]116 valid, mess = osw.verify_chain(cert_chain, client_cert_str)117 self.assertTrue(valid)118 def test_validate_passphrase(self):119 cert_info_ca = {120 "cn": "qwerty",121 "country_code": "qw",122 "state": "qwerty",123 "city": "qwerty",124 "organization": "qwerty",125 "organization_unit": "qwerty"126 }127 cert_info = {128 "cn": "intermediate_1",129 "country_code": "as",130 "state": "asdfgh",131 "city": "asdfgh",132 "organization": "asdfgh",133 "organization_unit": "asdfg"134 }135 osw = OpenSSLWrapper()136 ca_cert_str, ca_key_str = osw.create_certificate(137 cert_info_ca, request=False,138 cipher_passphrase={"cipher": "blowfish", "passphrase": "qwerty"})139 req_cert_str, req_key_str = osw.create_certificate(cert_info,140 request=True)141 cert_str = osw.create_cert_signed_certificate(ca_cert_str, ca_key_str,142 req_cert_str,143 passphrase=b"qwerty")144 valid = False145 try:146 cert_str = osw.create_cert_signed_certificate(147 ca_cert_str, ca_key_str, req_cert_str,148 passphrase="qwertyqwerty")149 except Exception:150 valid = True151 self.assertTrue(valid)152 def test_validate_expire(self):153 cert_info_ca = {154 "cn": "qwerty",155 "country_code": "qw",156 "state": "qwerty",157 "city": "qwerty",158 "organization": "qwerty",159 "organization_unit": "qwerty"160 }161 cert_info = {162 "cn": "intermediate_1",163 "country_code": "as",164 "state": "asdfgh",165 "city": "asdfgh",166 "organization": "asdfgh",167 "organization_unit": "asdfg"168 }169 osw = OpenSSLWrapper()170 ca_cert_str, ca_key_str = osw.create_certificate(cert_info_ca,171 request=False)172 req_cert_str, req_key_str = osw.create_certificate(cert_info,173 request=True)174 cert_str = osw.create_cert_signed_certificate(ca_cert_str, ca_key_str,175 req_cert_str)176 valid, mess = osw.verify(ca_cert_str, cert_str)177 ca_cert_str, ca_key_str = osw.create_certificate(cert_info_ca,178 request=False,179 valid_from=1000,180 valid_to=100000)181 req_cert_str, req_key_str = osw.create_certificate(cert_info,182 request=True)183 cert_str = osw.create_cert_signed_certificate(ca_cert_str, ca_key_str,184 req_cert_str)185 valid, mess = osw.verify(ca_cert_str, cert_str)186 self.assertFalse(valid)187 ca_cert_str, ca_key_str = osw.create_certificate(cert_info_ca,188 request=False)189 req_cert_str, req_key_str = osw.create_certificate(cert_info,190 request=True)191 cert_str = osw.create_cert_signed_certificate(ca_cert_str, ca_key_str,192 req_cert_str,193 valid_from=1000,194 valid_to=100000)195 valid, mess = osw.verify(ca_cert_str, cert_str)196 self.assertFalse(valid)197 ca_cert_str, ca_key_str = osw.create_certificate(cert_info_ca,198 request=False,199 valid_from=0,200 valid_to=1)201 req_cert_str, req_key_str = osw.create_certificate(cert_info,202 request=True)203 cert_str = osw.create_cert_signed_certificate(ca_cert_str, ca_key_str,204 req_cert_str)205 time.sleep(2)206 valid, mess = osw.verify(ca_cert_str, cert_str)207 self.assertFalse(valid)208 ca_cert_str, ca_key_str = osw.create_certificate(cert_info_ca,209 request=False)210 req_cert_str, req_key_str = osw.create_certificate(cert_info,211 request=True)212 cert_str = osw.create_cert_signed_certificate(ca_cert_str, ca_key_str,213 req_cert_str,214 valid_from=0, valid_to=1)215 time.sleep(2)216 valid, mess = osw.verify(ca_cert_str, cert_str)...

Full Screen

Full Screen

setup-reverse-proxy.py

Source:setup-reverse-proxy.py Github

copy

Full Screen

...38 f.write(index_html)39def render_httpd_template(template, env):40 target = template.replace(".template", "")41 render_template(template, os.path.join(HTTPD_CONF_DIR, target), env)42def create_certificate(hostname):43 # create a key pair44 k = crypto.PKey()45 k.generate_key(crypto.TYPE_RSA, 1024)46 serial = int(time.time())47 # create a self-signed cert48 cert = crypto.X509()49 subject = cert.get_subject()50 subject.C = "DE"51 subject.ST = "Hessen"52 subject.L = "Frankfurt"53 subject.O = "dimajix"54 subject.OU = "dimajix Training"55 subject.CN = hostname56 cert.set_serial_number(serial)57 cert.gmtime_adj_notBefore(0)58 cert.gmtime_adj_notAfter(10*24*60*60)59 cert.set_issuer(subject)60 cert.set_pubkey(k)61 cert.sign(k, 'sha1')62 if not os.path.exists(CERT_DIR):63 os.makedirs(CERT_DIR)64 certfile = os.path.join(CERT_DIR, hostname + '.cert')65 if not os.path.exists(certfile):66 with open(certfile, 'wt') as f:67 f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, k))68 f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))69def setup_apache(args):70 env = create_env(args)71 render_template('index.html.template', '/var/www/html/index.html', env)72 render_httpd_template('apache-proxy.conf.template', env)73 render_httpd_template('apache-proxy-nn.conf.template', env)74 render_httpd_template('apache-proxy-ap.conf.template', env)75 render_httpd_template('apache-proxy-rm.conf.template', env)76 render_httpd_template('apache-proxy-hue.conf.template', env)77 render_httpd_template('apache-proxy-hbase.conf.template', env)78 render_httpd_template('apache-proxy-zeppelin.conf.template', env)79 render_httpd_template('apache-proxy-jupyter.conf.template', env)80 hostname = env['aliasHostName']81 create_certificate(hostname)82 create_certificate('nn.' + hostname)83 create_certificate('ap.' + hostname)84 create_certificate('rm.' + hostname)85 create_certificate('hue.' + hostname)86 create_certificate('hbase.' + hostname)87 create_certificate('zeppelin.' + hostname)88 create_certificate('jupyter.' + hostname)89 with open(env["htpasswd"],'wt') as userdb:90 pass91 with htpasswd.Basic(env["htpasswd"]) as userdb:92 userdb.add(env['username'], env['password'])93def parse_args(raw_args):94 parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)95 parser.add_argument('-d', '--domain', dest='domain', help='Domain for registering proxy host', default='training.dimajix-aws.net')96 parser.add_argument('-u', '--username', dest='username', help='Username for authentication', default='dimajix-training')97 parser.add_argument('-p', '--password', dest='password', help='Password for authentication', default='dmx2018')98 return parser.parse_args(args=raw_args)99if __name__ == "__main__":100 args = parse_args(sys.argv[1:])101 wait_hadoop()102 setup_apache(args)

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 tempest 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