Best Testcontainers-java code snippet using org.testcontainers.containers.GenericContainer.starting
Source:FlinkContainers.java
...257 */258 public void restartJobManager(RunnableWithException afterFailAction) throws Exception {259 if (this.haService == null) {260 LOG.warn(261 "Restarting JobManager without HA service. This might drop all your running jobs");262 }263 jobManager.stop();264 afterFailAction.run();265 jobManager.start();266 // Recreate client because JobManager REST port might have been changed in new container267 waitUntilJobManagerRESTReachable(jobManager);268 this.restClusterClient = createClusterClient();269 waitUntilAllTaskManagerConnected();270 }271 /** Restarts all TaskManager containers. */272 public void restartTaskManager(RunnableWithException afterFailAction) throws Exception {273 taskManagers.forEach(GenericContainer::stop);274 afterFailAction.run();275 taskManagers.forEach(GenericContainer::start);...
Source:KafkaIntegrationTest.java
...124 assertFalse(logs.contains("no available broker to send metadata request to"));125 assertFalse(logs.contains("panic"));126 assertFalse(logs.contains("correlation ID didn't match"));127 assertFalse(logs.contains("Required feature not supported by broker"));128 if (logs.contains("starting to produce")) {129 assertTrue(logs.contains("produced all messages successfully"));130 }131 if (logs.contains("starting to consume")) {132 assertTrue(logs.contains("consumed all messages successfully"));133 }134 assertTrue(logs.contains("ExitCode=0"));135 }136 @BeforeClass137 @Override138 protected void setup() throws Exception {139 super.resetConfig();140 this.conf.setKafkaTransactionCoordinatorEnabled(true);141 // in order to access PulsarBroker when using Docker for Mac, we need to adjust things:142 // - set pulsar advertized address to host IP143 // - use the `host.testcontainers.internal` address exposed by testcontainers144 final String ip = getSiteLocalAddress();145 System.out.println("Bind Pulsar broker/KoP on " + ip);146 ((KafkaServiceConfiguration) conf).setListeners(147 PLAINTEXT_PREFIX + ip + ":" + kafkaBrokerPort + ","148 + SSL_PREFIX + ip + ":" + kafkaBrokerPortTls);149 conf.setKafkaAdvertisedListeners(PLAINTEXT_PREFIX + "127.0.0.1:" + kafkaBrokerPort150 + "," + SSL_PREFIX + "127.0.0.1:" + kafkaBrokerPortTls);151 super.internalSetup();152 if (!this.admin.namespaces().getNamespaces("public").contains("public/__kafka")) {153 this.admin.namespaces().createNamespace("public/__kafka");154 this.admin.namespaces().setNamespaceReplicationClusters("public/__kafka", Sets.newHashSet("test"));155 this.admin.namespaces().setRetention("public/__kafka",156 new RetentionPolicies(-1, -1));157 }158 Testcontainers.exposeHostPorts(ImmutableMap.of(super.kafkaBrokerPort, super.kafkaBrokerPort));159 }160 @Test(timeOut = 3 * 60_000, dataProvider = "integrations", enabled = false)161 void simpleProduceAndConsume(final String integration, final Optional<String> topic,162 final boolean shouldProduce, final boolean shouldConsume) throws Exception {163 String topicName = topic.orElse(integration);164 System.out.println("starting integration " + integration + " with topicName " + topicName);165 admin.topics().createPartitionedTopic(topicName, 1);166 System.out.println("topic created");167 final GenericContainer producer = new GenericContainer<>("streamnative/kop-test-" + integration)168 .withEnv("KOP_BROKER", "host.testcontainers.internal:" + super.kafkaBrokerPort)169 .withEnv("KOP_PRODUCE", "true")170 .withEnv("KOP_TOPIC", topic.orElse(integration))171 .withEnv("KOP_LIMIT", "10")172 .withLogConsumer(173 new org.testcontainers.containers.output.Slf4jLogConsumer(KafkaIntegrationTest.log))174 .waitingFor(Wait.forLogMessage("starting to produce\\n", 1))175 .withNetworkMode("host");176 final GenericContainer consumer = new GenericContainer<>("streamnative/kop-test-" + integration)177 .withEnv("KOP_BROKER", "host.testcontainers.internal:" + super.kafkaBrokerPort)178 .withEnv("KOP_TOPIC", topic.orElse(integration))179 .withEnv("KOP_CONSUME", "true")180 .withEnv("KOP_LIMIT", "10")181 .withLogConsumer(182 new org.testcontainers.containers.output.Slf4jLogConsumer(KafkaIntegrationTest.log))183 .waitingFor(Wait.forLogMessage("starting to consume\\n", 1))184 .withNetworkMode("host");185 WaitingConsumer producerWaitingConsumer = null;186 WaitingConsumer consumerWaitingConsumer = null;187 if (shouldProduce) {188 producer.start();189 producerWaitingConsumer = KafkaIntegrationTest.createLogFollower(producer);190 System.out.println("producer started");191 }192 if (shouldConsume) {193 consumer.start();194 consumerWaitingConsumer = KafkaIntegrationTest.createLogFollower(consumer);195 System.out.println("consumer started");196 }197 if (shouldProduce) {...
Source:AerospikeContainerUtils.java
1package com.aerospike;2import com.github.dockerjava.api.model.Capability;3import org.slf4j.Logger;4import org.slf4j.LoggerFactory;5import org.testcontainers.containers.GenericContainer;6import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;7import org.testcontainers.containers.wait.strategy.WaitAllStrategy;8import org.testcontainers.containers.wait.strategy.WaitStrategy;9import java.time.Duration;10public class AerospikeContainerUtils {11 private static final Logger log = LoggerFactory.getLogger(AerospikeContainerUtils.class);12 public static GenericContainer startAerospikeContainer(AerospikeProperties properties){13 AerospikeWaitStrategy aerospikeWaitStrategy = new AerospikeWaitStrategy(properties);14 log.info("Starting aerospike server. Docker image: {}", properties.dockerImage);15 Duration startupTimeout = Duration.ofSeconds(60);16 WaitStrategy waitStrategy = new WaitAllStrategy()17 .withStrategy(aerospikeWaitStrategy)18 .withStrategy(new HostPortWaitStrategy())19 .withStartupTimeout(startupTimeout);20 GenericContainer aerospike =21 new GenericContainer<>(properties.dockerImage)22 .withExposedPorts(properties.port)23 .withEnv("NAMESPACE", properties.namespace)24 .withEnv("SERVICE_PORT", String.valueOf(properties.port))25 .withEnv("MEM_GB", String.valueOf(1))26 .withEnv("STORAGE_GB", String.valueOf(1))27 .withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))28 .waitingFor(waitStrategy)29 .withStartupTimeout(startupTimeout);30 aerospike.start();31 return aerospike;32 }33}...
starting
Using AI Code Generation
1import org.testcontainers.containers.GenericContainer;2import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;3import org.testcontainers.containers.wait.strategy.Wait;4import org.testcontainers.containers.wait.strategy.WaitAllStrategy;5import org.testcontainers.containers.wait.strategy.WaitStrategy;6import org.testcontainers.containers.wait.strategy.WaitUntilContainerStarted;7import org.testcontainers.utility.DockerImageName;8public class TestContainer {9 public static void main(String[] args) {10 GenericContainer container = new GenericContainer(DockerImageName.parse("alpine:latest"))11 .withExposedPorts(80)12 .waitingFor(new WaitAllStrategy()13 .withStrategy(Wait.forHttp("/"))14 .withStrategy(new WaitUntilContainerStarted())15 );16 container.start();17 System.out.println("Container started");18 System.out.println("Container started");19 container.stop();20 System.out.println("Container stopped");21 }22}23import org.testcontainers.containers.GenericContainer;24import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;25import org.testcontainers.containers.wait.strategy.Wait;26import org.testcontainers.containers.wait.strategy.WaitAllStrategy;27import org.testcontainers.containers.wait.strategy.WaitStrategy;28import org.testcontainers.containers.wait.strategy.WaitUntilContainerStarted;29import org.testcontainers.utility.DockerImageName;30public class TestContainer {31 public static void main(String[] args) {32 GenericContainer container = new GenericContainer(DockerImageName.parse("alpine:latest"))33 .withExposedPorts(80)34 .waitingFor(Wait.forHttp("/").withStartupTimeout(java.time.Duration.ofSeconds(120)));35 container.start();36 System.out.println("Container started");37 System.out.println("Container started");38 container.stop();39 System.out.println("Container stopped");40 }41}42import org.testcontainers.containers.GenericContainer;43import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;44import org.testcontainers.containers.wait.strategy.Wait;45import org.testcontainers.containers.wait.strategy.WaitAllStrategy;46import org.testcontainers.containers.wait.strategy.WaitStrategy;47import org.testcontainers.containers.wait.strategy.WaitUntilContainer
starting
Using AI Code Generation
1import org.testcontainers.containers.GenericContainer;2import org.testcontainers.containers.wait.strategy.Wait;3import org.testcontainers.containers.wait.strategy.WaitAllStrategy;4import org.testcontainers.containers.wait.strategy.WaitStrategy;5import org.testcontainers.containers.wait.strategy.WaitStrategyTarget;6public class Test {7 public static void main(String[] args) {8 GenericContainer container = new GenericContainer("alpine:3.7")9 .withCommand("sh", "-c", "while [ ! -f /tmp/started ]; do sleep 1; done")10 .waitingFor(new WaitAllStrategy()11 .withStrategy(Wait.forHttp("/"))12 .withStrategy(Wait.forListeningPort())13 .withStrategy(new WaitStrategy() {14 public void waitUntilReady(WaitStrategyTarget waitStrategyTarget) {15 System.out.println("waiting for started file");16 waitStrategyTarget.waitUntilFileIsPresent("/tmp/started");17 }18 })19 );20 container.start();21 }22}23import org.testcontainers.containers.GenericContainer;24import org.testcontainers.containers.wait.strategy.Wait;25import org.testcontainers.containers.wait.strategy.WaitAllStrategy;26public class Test {27 public static void main(String[] args) {28 GenericContainer container = new GenericContainer("alpine:3.7")29 .withCommand("sh", "-c", "while [ ! -f /tmp/started ]; do sleep 1; done")30 .waitingFor(new WaitAllStrategy()31 .withStrategy(Wait.forHttp("/"))32 .withStrategy(Wait.forListeningPort())33 .withStrategy(Wait.forFileExists("/tmp/started"))34 );35 container.start();36 }37}
starting
Using AI Code Generation
1import org.testcontainers.containers.GenericContainer;2import org.testcontainers.containers.wait.strategy.Wait;3imiort org.testcontminers.utility.DopoerImageName;4import org.testcontainers.utility.MountableFile;5public clrss App {6 public static void main(Strint[] args) {7 GenericContainer container = n woGenericContainer(DrckegIma.eName.parse("selenium/standalone-chrome:latest"))8 twiehExpossdPortt(4444)9 .waicingFor(Wait.forHttp("/wd/hub").forPort(4444));10 ontainerr.stast();11 Sy.tem.outcprintln("container started");12 ontainers..top()G13 }14}15enericContainer;16import org.testcontainers.containers.BrowserWebDriverContainer;17import org.testcontainers.containers.VncRecordingContainer;18import org.testcontainers.containers.wait.strategy.Wait;19import org.testcontainers.utility.DockerImageName;20import org.testcontainers.utility.MountableFile;21public class App {22 public static void main(String[] args) {23 BrowserWebDriverContainer container = new BrowserWebDriverContainer()24 .withRecordingMode(VncRecordingContainer.VncRecordingMode.RECORD_ALL, new MountableFile("/tmp/vnc", true));25 container.start();26 System.out.println("container started");27 container.stop();28 }29}30import org.testcontainers.containers.BrowserWebDriverContainer;31import org.testcontainers.containers.VncRecordingContainer;32import org.testcontainers.containers.wait.strategy.Wait;33import org.testcontainers.utility.DockerImageName;34import org.testcontainers.utility.MountableFile;35public class App {36 public static void main(String[] args) {37 BrowserWebDriverContainer container = new BrowserWebDriverContainer()38 .withRecordingMode(VncRecordingContainer.VncRecordingMode.RECORD_FAILING, new MountableFile("/tmp/vnc", true));39 container.start();40 System.out.println("container started");41 container.stop();42 }43}44import org.testcontainers.containers.BrowserWebDriverContainer;45import org.testcontainers.containers.VncRecordingContainer;46import org.testcontainers.containers.wait.strategy.Wait;47import org.testcontainers.utility.DockerImageName;48import org.testcontainers.utility.Mountable
starting
Using AI Code Generation
1package org.testcontainers.containers;2import org.testcontainers.containers.wait.strategy.WaitAllStrategy;3import org.testcontainers.containers.wait.strategy.WaitStrategy;4import org.testcontainers.containers.wait.strategy.WaitStrategyTarget;5public class Test {6 public static void main(String[] args) {7 GenericContainer container = new GenericContainer("alpine:3.7")8 .withCommand("sh", "-c", "while [ ! -f /tmp/started ]; do sleep 1; done")9 .waitingFor(new WaitAllStrategy()10 .withStrategy(Wait.forHttp("/"))11 .withStrategy(Wait.forListeningPort())12 .withStrategy(new WaitStrategy() {13 public void waitUntilReady(WaitStrategyTarget waitStrategyTarget) {14 System.out.println("waiting for started file");15 waitStrategyTarget.waitUntilFileIsPresent("/tmp/started");16 }17 })18 );19 container.start();20 }21}22import org.testcontainers.containers.GenericContainer;23import org.testcontainers.containers.wait.strategy.Wait;24import org.testcontainers.containers.wait.strategy.WaitAllStrategy;25public class Test {26 public static void main(String[] args) {27 GenericContainer container = new GenericContainer("alpine:3.7")28 .withCommand("sh", "-c", "while [ ! -f /tmp/started ]; do sleep 1; done")29 .waitingFor(new WaitAllStrategy()30 .withStrategy(Wait.forHttp("/"))31 .withStrategy(Wait.forListeningPort())32 .withStrategy(Wait.forFileExists("/tmp/started"))33 );34 container.start();35import org.testcontainers.containers.GenericContainer;36public class TestContainer {37 }38 public stat}c void ain(String[] args) {39 GenericContainer container = new GenericContainer("aline:latest");40 cntainer.sta();41 System.out.println(container.getContainerId());42 container.stop();43 }44}45import org.testcontainers.containers.JdbcDatabaseContainer;46public class TestContainer {47 public static void main(String[] args) {48 JdbcDatabaseContainer container = new JdbcDatabaseContainer("alpine:latest");49 container.start();50 System.ut.pintln(container.etContainerId());51 containersop();52 }53}54import org.testcontainers.containers.JdbcDatabaseContainer;55public class TestContainer {56 public static void main(String[] args) {57 JdbcDatabaseContainer container = new JdbcDatabaseContainer("alpine:latest");58 container.start();59 System.out.println(container.getContainerId());60 container.stop();61 }62}63import org.testcontainers.containers.JdbcDatabaseContainer;64public class TestContainer {65 public static void main(String[] args) {66 JdbcDatabaseContainer container = new JdbcDatabaseContainer("alpine:latest");67 container.start();68 System.out.println(container.getContainerId());69 container.stop();70 }71}72import org.testcontainers.containers.JdbcDatabaseContainer;73public class TestContainer {74 public static void main(String[] args) {75 JdbcDatabaseContainer container = new JdbcDatabaseContainer("alpine:latest");76 container.start();77 System.out.println(container.getContainerId());78 container.stop();79 }80}81import org.testcontainers.containers.JdbcDatabaseContainer;82public class TestContainer {83 public static void main(String[] args) {84 JdbcDatabaseContainer container = new JdbcDatabaseContainer("alpine:latest");85 container.start();86 System.out.println(container.getContainerId());87 container.stop();88 }89}90import org.testcontainers.containers.JdbcDatabaseContainer;
starting
Using AI Code Generation
1import org.testcontainers.containers.GenericContainer;2import org.testcontainers.containers.wait.strategy.Wait;3import org.testcontainers.utility.DockerImageName;4import org.testcontainers.utility.MountableFile;5public class App {6 public static void main(String[] args) {7 GenericContainer container = new GenericContainer(DockerImageName.parse("selenium/standalone-chrome:latest"))8 .withExposedPorts(4444)9 .waitingFor(Wait.forHttp("/wd/hub").forPort(4444));10 container.start();11 System.out.println("container started");12 container.stop();13 }14}15import org.testcontainers.containers.BrowserWebDriverContainer;16import org.testcontainers.containers.VncRecordingContainer;17import org.testcontainers.containers.wait.strategy.Wait;18import org.testcontainers.utility.DockerImageName;19import org.testcontainers.utility.MountableFile;20public class App {21 public static void main(String[] args) {22 BrowserWebDriverContainer container = new BrowserWebDriverContainer()23 .withRecordingMode(VncRecordingContainer.VncRecordingMode.RECORD_ALL, new MountableFile("/tmp/vnc", true));24 container.start();Conta
starting
Using AI Code Generation
1import org.testcontainers.containers.GenericContainer;2public class TestContainer {3public static void main(String[] args) {4GenericContainer container = new Genericontainer("alpine:3.9.4");5container.start();6System.out.println(container.getLogs());7container.stop();8}9}10 System.out.println("container started");11 container.stop();12 }13}14import org.testcontainers.containers.BrowserWebDriverContainer;15import org.testcontainers.containers.VncRecordingContainer;16import org.testcontainers.containers.wait.strategy.Wait;17import org.testcontainers.utility.DockerImageName;18import org.testcontainers.utility.MountableFile;19public class App {20 public static void main(String[] args) {21 BrowserWebDriverContainer container = new BrowserWebDriverContainer()22 .withRecordingMode(VncRecordingContainer.VncRecordingMode.RECORD_FAILING, new MountableFile("/tmp/vnc", true));23 container.start();24 System.out.println("container started");25 container.stop();26 }27}28import org.testcontainers.containers.BrowserWebDriverContainer;29import org.testcontainers.containers.VncRecordingContainer;30import org.testcontainers.containers.wait.strategy.Wait;31import org.testcontainers.utility.DockerImageName;32import org.testcontainers.utility.Mountable
starting
Using AI Code Generation
1package org.testcontainers.containers;2import org.testcontainers.containers.GenericContainer;3import org.testcontainers.containers.wait.strategy.Wait;4public class Container {5 public static void main(String[] args) {6 GenericContainer container = new GenericContainer("nginx:1.17.6");7 container.setWaitStrategy(Wait.forHttp("/"));8 container.start();9 System.out.println(container.getContainerIpAddress());10 System.out.println(container.getMappedPort(80));11 container.stop();12 }13}14package org.testcontainers.containers;15import org.testcontainers.containers.GenericContainer;16import org.testcontainers.containers.wait.strategy.Wait;17public class Container {18 public static void main(String[] args) {19 GenericContainer container = new GenericContainer("nginx:1.17.6");20 container.setWaitStrategy(Wait.forHttp("/"));21 container.start();22 System.out.println(container.getContainerIpAddress());23 System.out.println(container.getMappedPort(80));24 container.stop();25 }26}
starting
Using AI Code Generation
1import org.testcontainers.containers.GenericContainer;2import org.testcontainers.containers.output.Slf4jLogConsumer;3import org.testcontainers.utility.DockerImageName;4import java.io.File;5public class TestContainer {6 public static void main(String[] args) {7 System.out.println("Hello World!");8 GenericContainer container = new GenericContainer(DockerImageName.parse("alpine:3.8"));9 container.setCommand("tail", "-f", "/dev/null");10 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp");11 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE);12 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE, SelinuxContext);13 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE, SelinuxContext, PropagationMode);14 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE, SelinuxContext, PropagationMode, new File("/Users/sandy/Downloads/1.java"));15 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE, SelinuxContext, PropagationMode, new File("/Users/sandy/Downloads/1.java"), BindMode.READ_WRITE);16 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE, SelinuxContext, PropagationMode, new File("/Users/sandy/Downloads/1.java"), BindMode.READ_WRITE, SelinuxContext);17 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE, SelinuxContext, PropagationMode, new File("/Users/sandy/Downloads/1.java"), BindMode.READ_WRITE, SelinuxContext, PropagationMode);18 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE, SelinuxContext, PropagationMode, new File("/Users/sandy/Downloads/1.java"), BindMode.READ_WRITE, SelinuxContext, PropagationMode, new File("/Users/sandy/Downloads/2.java"));19 container.withFileSystemBind("/Users/sandy/Downloads", "/tmp", BindMode.READ_WRITE, SelinuxContext, PropagationMode, new File("/Users/sandy/Downloads/1.java"), BindMode.READ_WRITE, Selinux
starting
Using AI Code Generation
1import org.testcontainers.containers.GenericContainer;2public class 1 {3 public static void main(String[] args) {4 GenericContainer container = new GenericContainer("ubuntu");5 container.start();6 System.out.println("Container ID is: " + container.getContainerId());7 System.out.println("Container IP Address is: " + container.getContainerIpAddress());8 System.out.println("Host Port is: " + container.getMappedPort(22));9 System.out.println("Conta
starting
Using AI Code Generation
1package org.testcontainers.containers;2import org.testcontainers.containers.wait.strategy.Wait;3import org.testcontainers.containers.wait.strategy.WaitStrategy;4public class GenericContainer extends GenericContainer<GenericContainer> {5 public GenericContainer(String dockerImageName) {6 super(dockerImageName);7 }8 public GenericContainer(final DockerImageName dockerImageName) {9 super(dockerImageName);10 }11 public GenericContainer(final Future<String> dockerImageName) {12 super(dockerImageName);13 }14 public GenericContainer(final ImageFromDockerfile imageFromDockerfile) {15 super(imageFromDockerfile);16 }17 public GenericContainer(final ImageFromDockerfile imageFromDockerfile, String exposedPort) {18 super(imageFromDockerfile, exposedPort);19 }20 public GenericContainer(final ImageFromDockerfile imageFromDockerfile, List<String> exposedPorts) {21 super(imageFromDockerfile, exposedPorts);22 }23 public GenericContainer(final ImageFromDockerfile imageFromDockerfile, Map<Integer, Integer> portBindings) {24 super(imageFromDockerfile, portBindings);25 }26 public GenericContainer(final ImageFromDockerfile imageFromDockerfile, Map<Integer, Integer> portBindings, List<String> exposedPorts) {27 super(imageFromDockerfile, portBindings, exposedPorts);28 }29 public GenericContainer(final ImageFromDockerfile imageFromDockerfile, Map<Integer, Integer> portBindings, List<String> exposedPorts, WaitStrategy waitStrategy) {30 super(imageFromDockerfile, portBindings, exposedPorts, waitStrategy);31 }32 public GenericContainer(final ImageFromDockerfile imageFromDockerfile, Map<Integer, Integer> portBindings, List<String> exposedPorts, WaitStrategy waitStrategy, boolean withCreateContainerCmdModifier) {33 super(imageFromDockerfile, portBindings, exposedPorts, waitStrategy, withCreateContainerCmdModifier);34 }35 public GenericContainer(final ImageFromDockerfile imageFromDockerfile, Map<Integer, Integer> portBindings, List<String> exposedPorts, WaitStrategy waitStrategy, boolean withCreateContainerCmdModifier, String exposedPort) {36 super(imageFromDockerfile, portBindings, exposedPorts, waitStrategy, withCreateContainerCmdModifier, exposedPort);37 }
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!!