Best Citrus code snippet using com.consol.citrus.vertx.endpoint.VertxEndpoint.VertxEndpoint
Source:VertxEndpointTest.java
...34/**35 * @author Christoph Deppisch36 * @since 1.4.137 */38public class VertxEndpointTest extends AbstractTestNGUnitTest {39 private Vertx vertx = Mockito.mock(Vertx.class);40 private EventBus eventBus = Mockito.mock(EventBus.class);41 private MessageConsumer messageConsumer = Mockito.mock(MessageConsumer.class);42 private MessageListeners messageListeners = Mockito.mock(MessageListeners.class);43 private io.vertx.core.eventbus.Message messageMock = Mockito.mock(io.vertx.core.eventbus.Message.class);44 private SingleVertxInstanceFactory instanceFactory = new SingleVertxInstanceFactory();45 @BeforeClass46 public void setup() {47 instanceFactory.setVertx(vertx);48 }49 @Test50 public void testVertxEndpointProducer() {51 String eventBusAddress = "news-feed";52 VertxEndpointConfiguration endpointConfiguration = new VertxEndpointConfiguration();53 endpointConfiguration.setAddress(eventBusAddress);54 VertxEndpoint vertxEndpoint = new VertxEndpoint(endpointConfiguration);55 vertxEndpoint.setVertxInstanceFactory(instanceFactory);56 Message requestMessage = new DefaultMessage("Hello from Citrus!");57 reset(vertx, eventBus);58 when(vertx.eventBus()).thenReturn(eventBus);59 when(eventBus.send(eventBusAddress, requestMessage.getPayload())).thenReturn(eventBus);60 vertxEndpoint.createProducer().send(requestMessage, context);61 }62 @Test63 public void testVertxEndpointProducerPubSubDomain() {64 String eventBusAddress = "news-feed";65 VertxEndpointConfiguration endpointConfiguration = new VertxEndpointConfiguration();66 endpointConfiguration.setAddress(eventBusAddress);67 endpointConfiguration.setPubSubDomain(true);68 VertxEndpoint vertxEndpoint = new VertxEndpoint(endpointConfiguration);69 vertxEndpoint.setVertxInstanceFactory(instanceFactory);70 Message requestMessage = new DefaultMessage("Hello from Citrus!");71 reset(vertx, eventBus);72 when(vertx.eventBus()).thenReturn(eventBus);73 when(eventBus.publish(eventBusAddress, requestMessage.getPayload())).thenReturn(eventBus);74 vertxEndpoint.createProducer().send(requestMessage, context);75 }76 @Test77 public void testVertxEndpointConsumer() {78 String eventBusAddress = "news-feed";79 VertxEndpointConfiguration endpointConfiguration = new VertxEndpointConfiguration();80 endpointConfiguration.setAddress(eventBusAddress);81 VertxEndpoint vertxEndpoint = new VertxEndpoint(endpointConfiguration);82 vertxEndpoint.setVertxInstanceFactory(instanceFactory);83 reset(vertx, eventBus, messageConsumer, messageMock);84 when(messageMock.body()).thenReturn("Hello from Vertx!");85 when(messageMock.address()).thenReturn(eventBusAddress);86 when(messageMock.replyAddress()).thenReturn("replyAddress");87 when(vertx.eventBus()).thenReturn(eventBus);88 doAnswer(new Answer<MessageConsumer>() {89 @Override90 public MessageConsumer answer(InvocationOnMock invocation) throws Throwable {91 Handler handler = (Handler) invocation.getArguments()[1];92 handler.handle(messageMock);93 return messageConsumer;94 }95 }).when(eventBus).consumer(eq(eventBusAddress), any(Handler.class));96 Message receivedMessage = vertxEndpoint.createConsumer().receive(context, endpointConfiguration.getTimeout());97 Assert.assertEquals(receivedMessage.getPayload(), "Hello from Vertx!");98 Assert.assertEquals(receivedMessage.getHeader(CitrusVertxMessageHeaders.VERTX_ADDRESS), eventBusAddress);99 Assert.assertEquals(receivedMessage.getHeader(CitrusVertxMessageHeaders.VERTX_REPLY_ADDRESS), "replyAddress");100 verify(messageConsumer).unregister();101 }102 @Test103 public void testVertxEndpointWithOutboundMessageListeners() {104 String eventBusAddress = "news-feed";105 VertxEndpointConfiguration endpointConfiguration = new VertxEndpointConfiguration();106 endpointConfiguration.setAddress(eventBusAddress);107 VertxEndpoint vertxEndpoint = new VertxEndpoint(endpointConfiguration);108 vertxEndpoint.setVertxInstanceFactory(instanceFactory);109 Message requestMessage = new DefaultMessage("Hello from Citrus!");110 context.setMessageListeners(messageListeners);111 reset(vertx, eventBus, messageListeners);112 when(vertx.eventBus()).thenReturn(eventBus);113 when(eventBus.send(eventBusAddress, requestMessage.getPayload())).thenReturn(eventBus);114 when(messageListeners.isEmpty()).thenReturn(false);115 vertxEndpoint.createProducer().send(requestMessage, context);116 verify(messageListeners).onOutboundMessage(requestMessage, context);117 }118}...
Source:VertxSyncEndpointParserTest.java
1/*2 * Copyright 2006-2014 the original author or authors.3 *4 * Licensed under the Apache License, Version 2.0 (the "License");5 * you may not use this file except in compliance with the License.6 * You may obtain a copy of the License at7 *8 * http://www.apache.org/licenses/LICENSE-2.09 *10 * Unless required by applicable law or agreed to in writing, software11 * distributed under the License is distributed on an "AS IS" BASIS,12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13 * See the License for the specific language governing permissions and14 * limitations under the License.15 */16package com.consol.citrus.vertx.config.xml;17import com.consol.citrus.TestActor;18import com.consol.citrus.message.DefaultMessageCorrelator;19import com.consol.citrus.testng.AbstractBeanDefinitionParserTest;20import com.consol.citrus.vertx.endpoint.VertxSyncEndpoint;21import org.testng.Assert;22import org.testng.annotations.Test;23import java.util.Map;24/**25 * @author Christoph Deppisch26 * @since 1.4.127 */28public class VertxSyncEndpointParserTest extends AbstractBeanDefinitionParserTest {29 @Test30 public void testVertxSyncEndpointParser() {31 Map<String, VertxSyncEndpoint> endpoints = beanDefinitionContext.getBeansOfType(VertxSyncEndpoint.class);32 Assert.assertEquals(endpoints.size(), 4);33 // 1st message receiver34 VertxSyncEndpoint vertxEndpoint = endpoints.get("vertxEndpoint1");35 Assert.assertNotNull(vertxEndpoint.getVertxInstanceFactory());36 Assert.assertEquals(vertxEndpoint.getVertxInstanceFactory(), beanDefinitionContext.getBean("vertxInstanceFactory"));37 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getCorrelator().getClass(), DefaultMessageCorrelator.class);38 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getAddress(), "news-feed1");39 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getTimeout(), 5000L);40 // 2nd message receiver41 vertxEndpoint = endpoints.get("vertxEndpoint2");42 Assert.assertNotNull(vertxEndpoint.getVertxInstanceFactory());43 Assert.assertEquals(vertxEndpoint.getVertxInstanceFactory(), beanDefinitionContext.getBean("specialVertxInstanceFactory"));44 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getCorrelator(), beanDefinitionContext.getBean("replyMessageCorrelator"));45 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getMessageConverter(), beanDefinitionContext.getBean("messageConverter"));46 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getHost(), "127.0.0.1");47 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getPort(), 10105);48 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getAddress(), "news-feed2");49 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getTimeout(), 10000L);50 // 3rd message receiver51 vertxEndpoint = endpoints.get("vertxEndpoint3");52 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getAddress(), "news-feed3");53 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().isPubSubDomain(), true);54 // 4th message receiver55 vertxEndpoint = endpoints.get("vertxEndpoint4");56 Assert.assertNotNull(vertxEndpoint.getActor());57 Assert.assertEquals(vertxEndpoint.getEndpointConfiguration().getAddress(), "news-feed4");58 Assert.assertEquals(vertxEndpoint.getActor(), beanDefinitionContext.getBean("testActor", TestActor.class));59 }60}...
Source:VertxEndpointModelConverter.java
...14 * limitations under the License.15 */16package com.consol.citrus.admin.converter.model.endpoint;17import com.consol.citrus.admin.converter.model.AbstractModelConverter;18import com.consol.citrus.model.config.vertx.VertxEndpointModel;19import com.consol.citrus.vertx.endpoint.VertxEndpoint;20import com.consol.citrus.vertx.endpoint.VertxEndpointConfiguration;21import org.springframework.stereotype.Component;22/**23 * @author Christoph Deppisch24 */25@Component26public class VertxEndpointModelConverter extends AbstractEndpointModelConverter<VertxEndpointModel, VertxEndpoint, VertxEndpointConfiguration> {27 /**28 * Default constructor.29 */30 public VertxEndpointModelConverter() {31 super(VertxEndpointModel.class, VertxEndpoint.class, VertxEndpointConfiguration.class);32 addDecorator(new AbstractModelConverter.MethodCallDecorator("port") {33 @Override34 public Object decorateArgument(Object arg) {35 return Integer.valueOf(arg.toString());36 }37 });38 }39 @Override40 public VertxEndpointModel convert(String id, VertxEndpoint model) {41 VertxEndpointModel converted = convert(model);42 converted.setId(id);43 return converted;44 }45 @Override46 public String getJavaConfig(VertxEndpointModel model) {47 return getJavaConfig(model, model.getId(), "vertx()");48 }49}...
VertxEndpoint
Using AI Code Generation
1package com.consol.citrus;2import com.consol.citrus.dsl.endpoint.CitrusEndpoints;3import com.consol.citrus.vertx.endpoint.VertxEndpoint;4import com.consol.citrus.vertx.endpoint.VertxEndpointConfiguration;5import com.consol.citrus.vertx.message.VertxMessageConverter;6import com.consol.citrus.vertx.message.VertxMessageHeaders;7import io.vertx.core.Vertx;8import io.vertx.core.eventbus.EventBus;9import io.vertx.core.eventbus.MessageConsumer;10import io.vertx.core.json.JsonObject;11import org.testng.annotations.Test;12import java.util.concurrent.TimeUnit;13public class VertxEndpointTest {14 public void testVertxEndpoint() {15 VertxEndpointConfiguration endpointConfiguration = new VertxEndpointConfiguration();16 endpointConfiguration.setHost("localhost");17 endpointConfiguration.setPort(8080);18 endpointConfiguration.setEventBusAddress("address");19 VertxEndpoint vertxEndpoint = CitrusEndpoints.vertx()20 .vertx(Vertx.vertx())21 .endpointConfiguration(endpointConfiguration)22 .build();23 vertxEndpoint.createProducer().send("Hello World");24 vertxEndpoint.createConsumer().receiveTimeout(5000).receive();25 }26}27package com.consol.citrus;28import com.consol.citrus.dsl.endpoint.CitrusEndpoints;29import com.consol.citrus.vertx.endpoint.VertxEndpoint;30import com.consol.citrus.vertx.endpoint.VertxEndpointConfiguration;31import com.consol.citrus.vertx.message.VertxMessageConverter;32import com.consol.citrus.vertx.message.VertxMessageHeaders;33import io.vertx.core.Vertx;34import io.vertx.core.eventbus.EventBus;35import io.vertx.core.eventbus.MessageConsumer;36import io.vertx.core.json.JsonObject;37import org.testng.annotations.Test;38import java.util.concurrent.TimeUnit;39public class VertxEndpointTest {40 public void testVertxEndpoint() {41 VertxEndpointConfiguration endpointConfiguration = new VertxEndpointConfiguration();42 endpointConfiguration.setHost("localhost");43 endpointConfiguration.setPort(8080);44 endpointConfiguration.setEventBusAddress("address");45 VertxEndpoint vertxEndpoint = CitrusEndpoints.vertx()46 .vertx(Vertx.vertx())47 .endpointConfiguration(endpointConfiguration)48 .build();
VertxEndpoint
Using AI Code Generation
1package com.consol.citrus.vertx;2import com.consol.citrus.dsl.endpoint.CitrusEndpoints;3import com.consol.citrus.dsl.junit.JUnit4CitrusTestRunner;4import com.consol.citrus.message.MessageType;5import com.consol.citrus.vertx.endpoint.VertxEndpoint;6import org.junit.Test;7public class VertxEndpointTest extends JUnit4CitrusTestRunner {8 public void vertxEndpointTest() {9 VertxEndpoint vertxEndpoint = CitrusEndpoints.vertx().vertxInstance(vertx).build();10 vertxEndpoint.createConsumer("test.queue", message -> {11 System.out.println("Received: " + message.body());12 });13 send(vertxEndpoint)14 .endpoint(vertxEndpoint)15 .payload("Hello Citrus!");16 receive(vertxEndpoint)17 .endpoint(vertxEndpoint)18 .messageType(MessageType.PLAINTEXT)19 .payload("Hello Citrus!");20 }21}22package com.consol.citrus.vertx;23import com.consol.citrus.dsl.endpoint.CitrusEndpoints;24import com.consol.citrus.dsl.junit.JUnit4CitrusTestRunner;25import com.consol.citrus.message.MessageType;26import com.consol.citrus.vertx.endpoint.VertxEndpoint;27import org.junit.Test;28public class VertxEndpointTest extends JUnit4CitrusTestRunner {29 public void vertxEndpointTest() {30 VertxEndpoint vertxEndpoint = CitrusEndpoints.vertx().vertxInstance(vertx).build();31 vertxEndpoint.createConsumer("test.queue", message -> {32 System.out.println("Received: " + message.body());33 });34 send(vertxEndpoint)35 .endpoint(vertxEndpoint)36 .payload("Hello Citrus!");37 receive(vertxEndpoint)38 .endpoint(vertxEndpoint)39 .messageType(MessageType.PLAINTEXT)40 .payload("Hello Citrus!");41 }42}43package com.consol.citrus.vertx;44import com.consol.citrus.dsl.endpoint.CitrusEndpoints;45import com.consol.citrus.dsl.junit
VertxEndpoint
Using AI Code Generation
1package com.consol.citrus.vertx.endpoint;2import com.consol.citrus.endpoint.Endpoint;3import com.consol.citrus.exceptions.CitrusRuntimeException;4import com.consol.citrus.message.Message;5import com.consol.citrus.message.MessageCorrelator;6import com.consol.citrus.message.MessageDirection;7import com.consol.citrus.message.MessageHandler;8import com.consol.citrus.message.MessageHeaders;9import com.consol.citrus.message.MessageType;10import com.consol.citrus.message.MessageValidator;11import com.consol.citrus.message.correlator.DefaultMessageCorrelator;12import com.consol.citrus.messaging.Producer;13import com.consol.citrus.messaging.ReplyProducer;14import com.consol.citrus.messaging.SelectiveConsumer;15import com.consol.citrus.report.MessageListeners;16import com.consol.citrus.spi.ReferenceResolver;17import com.consol.citrus.validation.DefaultMessageValidator;18import com.consol.citrus.validation.MessageValidatorRegistry;19import com.consol.citrus.validation.interceptor.MessageConstructionInterceptor;20import com.consol.citrus.validation.interceptor.ValidationInterceptor;21import com.consol.citrus.validation.script.GroovyScriptMessageValidator;22import com.consol.citrus.validation.script.ScriptValidationContext;23import com.consol.citrus.validation.xml.XmlMessageValidationContext;24import com.consol.citrus.vertx.message.VertxMessage;25import com.consol.citrus.vertx.message.VertxMessageHeaders;26import com.consol.citrus.vertx.message.VertxMessagePayloadConverter;27import com.consol.citrus.vertx.message.VertxMessageUtils;28import com.consol.citrus.vertx.message.converter.DefaultVertxMessageConverter;29import com.consol.citrus.vertx.message.converter.VertxMessageConverter;30import io.vertx.core.Vertx;31import io.vertx.core.VertxOptions;32import io.vertx.core.eventbus.EventBus;33import io.vertx.core.eventbus.MessageConsumer;34import io.vertx.core.eventbus.MessageProducer;35import org.slf4j.Logger;36import org.slf4j.LoggerFactory;37import org.springframework.beans.factory.DisposableBean;38import org.springframework.beans.factory.InitializingBean;39import org.springframework.core.io.Resource;40import org.springframework.util.CollectionUtils;41import org.springframework.util.StringUtils;42import java.util.*;43import java.util.concurrent.ConcurrentHashMap;44import java.util.concurrent.CopyOnWriteArrayList;45import java.util.concurrent.TimeUnit;46import java.util.stream.Collectors;
VertxEndpoint
Using AI Code Generation
1package com.consol.citrus.vertx;2import com.consol.citrus.context.TestContext;3import com.consol.citrus.exceptions.CitrusRuntimeException;4import com.consol.citrus.message.DefaultMessage;5import com.consol.citrus.message.Message;6import com.consol.citrus.vertx.endpoint.VertxEndpoint;7import com.consol.citrus.vertx.message.VertxMessageHeaders;8import com.consol.citrus.vertx.message.VertxMessageHeaders.VertxMessageHeaderType;9import io.vertx.core.Vertx;10import io.vertx.core.eventbus.DeliveryOptions;11import io.vertx.core.eventbus.EventBus;12import io.vertx.core.eventbus.MessageConsumer;13import io.vertx.core.eventbus.MessageProducer;14import io.vertx.core.json.JsonObject;15import java.util.HashMap;16import java.util.Map;17import java.util.Optional;18import java.util.concurrent.TimeUnit;19import java.util.function.Consumer;20import org.slf4j.Logger;21import org.slf4j.LoggerFactory;22public class VertxEndpoint1 extends VertxEndpoint {23 private static final Logger LOG = LoggerFactory.getLogger(VertxEndpoint1.class);24 private final Vertx vertx;25 private final EventBus eventBus;26 private final Map<String, MessageConsumer> consumers = new HashMap<>();27 private final Map<String, MessageProducer> producers = new HashMap<>();28 private final Map<String, Long> timeouts = new HashMap<>();29 public VertxEndpoint1(Vertx vertx) {30 this.vertx = vertx;31 this.eventBus = this.vertx.eventBus();32 }33 public VertxEndpoint1(Vertx vertx, String name) {34 super(name);35 this.vertx = vertx;36 this.eventBus = this.vertx.eventBus();37 }38 public void send(Message message, TestContext context) {39 this.send(message, context, new DeliveryOptions());40 }41 public void send(Message message, TestContext context, DeliveryOptions deliveryOptions) {42 String address = this.getAddress(message, context);43 MessageProducer producer = this.getProducer(address);44 JsonObject jsonMessage = this.getJsonMessage(message, context);45 if (LOG.isDebugEnabled()) {46 LOG.debug("Sending message to address: " + address);47 }48 producer.send(jsonMessage, deliveryOptions);49 }50 public Message receive(TestContext context) {51 return this.receive(context, new DeliveryOptions());52 }53 public Message receive(TestContext
VertxEndpoint
Using AI Code Generation
1package com.consol.citrus.vertx;2import com.consol.citrus.dsl.endpoint.CitrusEndpoints;3import com.consol.citrus.dsl.testng.TestNGCitrusTestDesigner;4import com.consol.citrus.message.MessageType;5import com.consol.citrus.vertx.endpoint.VertxEndpoint;6import org.springframework.beans.factory.annotation.Autowired;7import org.springframework.context.annotation.Bean;8import org.springframework.core.io.ClassPathResource;9import org.springframework.http.HttpStatus;10import org.testng.annotations.Test;11public class VertxEndpointIT extends TestNGCitrusTestDesigner {12 private VertxEndpoint vertxEndpoint;13 public VertxEndpoint vertxEndpoint() {14 return CitrusEndpoints.vertx()15 .client()16 .vertxInstance(vertx())17 .build();18 }19 public void testVertx() {20 echo("Sending message to Vert.x event bus address");21 variable("message", "Hello Citrus!");22 send(vertxEndpoint)23 .address("com.consol.citrus.vertx.test")24 .payload("${message}");25 echo("Receiving message from Vert.x event bus address");26 receive(vertxEndpoint)27 .address("com.consol.citrus.vertx.test")28 .payload("${message}");29 echo("Sending message to Vert.x event bus address");30 send(vertxEndpoint)31 .address("com.consol.citrus.vertx.test")32 .payload(new ClassPathResource("com/consol/citrus/vertx/test-data.json"));33 echo("Receiving message from Vert.x event bus address");34 receive(vertxEndpoint)35 .address("com.consol.citrus.vertx.test")36 .messageType(MessageType.JSON)37 .payload(new ClassPathResource("com/consol/citrus/vertx/test-data.json"));38 }39}40package com.consol.citrus.vertx;41import com.consol.citrus.dsl.endpoint.CitrusEndpoints;42import com.consol.citrus.dsl.testng.TestNGCitrusTestDesigner;43import com.consol.citrus.message.MessageType;44import com.consol.cit
VertxEndpoint
Using AI Code Generation
1public class 3 extends TestNGCitrusTestDesigner {2 private TestContext context;3 private VertxEndpoint vertxEndpoint;4 public void 3() {5 http(httpActionBuilder -> httpActionBuilder6 .client(vertxEndpoint)7 .send()8 .post()9 .payload("Hello World!")10 );11 http(httpActionBuilder -> httpActionBuilder12 .client(vertxEndpoint)13 .receive()14 .response(HttpStatus.OK)15 .messageType(MessageType.PLAINTEXT)16 .payload("Hello World!")17 );18 }19}20public class 4 extends TestNGCitrusTestDesigner {21 private TestContext context;22 public void 4() {23 http(httpActionBuilder -> httpActionBuilder24 .client(vertxEndpoint()25 .autoStart(true)26 .send()27 .post()28 .payload("Hello World!")29 );30 http(httpActionBuilder -> httpActionBuilder31 .client(vertxEndpoint()32 .autoStart(true)33 .receive()34 .response(HttpStatus.OK)35 .messageType(MessageType.PLAINTEXT)36 .payload("Hello World!")37 );38 }39}40public class 5 extends TestNGCitrusTestDesigner {41 private TestContext context;42 public void 5() {43 http(httpActionBuilder -> httpActionBuilder44 .send()45 .post()46 .payload("Hello World!")47 );48 http(httpActionBuilder -> httpActionBuilder
VertxEndpoint
Using AI Code Generation
1public class 3.java extends TestNGCitrusTestDesigner {2 public void 3() {3 http().client("httpClient")4 .send()5 .post()6 .fork(true)7 .payload("<TestRequestMessage><text>Hello World!</text></TestRequestMessage>");8 receive("httpClientResponse")9 .messageType(MessageType.XML)10 .payload("<TestResponseMessage><text>Hello World!</text></TestResponseMessage>");11 vertx().endpoint("vertxEndpoint")12 .uri("${vertxEndpointUri}");13 receive("vertxEndpointResponse")14 .messageType(MessageType.XML)15 .payload("<TestResponseMessage><text>Hello World!</text></TestResponseMessage>");16 }17}18public class 4.java extends TestNGCitrusTestDesigner {19 public void 4() {20 http().client("httpClient")21 .send()22 .post()23 .fork(true)24 .payload("<TestRequestMessage><text>Hello World!</text></TestRequestMessage>");25 receive("httpClientResponse")26 .messageType(MessageType.XML)27 .payload("<TestResponseMessage><text>Hello World!</text></TestResponseMessage>");28 vertx().endpoint("vertxEndpoint")29 .uri("${vertxEndpointUri}");30 receive("vertxEndpointResponse")31 .messageType(MessageType.XML)32 .payload("<TestResponseMessage><text>Hello World!</text></TestResponseMessage>");33 }34}35public class 5.java extends TestNGCitrusTestDesigner {36 public void 5() {37 http().client("httpClient")38 .send()39 .post()40 .fork(true)
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!!