Best Citrus code snippet using com.consol.citrus.jms.message.JmsMessageHeaderMapper
Source:JmsEndpointConfiguration.java
...17import com.consol.citrus.endpoint.AbstractPollableEndpointConfiguration;18import com.consol.citrus.endpoint.resolver.EndpointUriResolver;19import com.consol.citrus.jms.endpoint.resolver.DynamicDestinationNameResolver;20import com.consol.citrus.jms.message.JmsMessageConverter;21import com.consol.citrus.jms.message.JmsMessageHeaderMapper;22import org.slf4j.Logger;23import org.slf4j.LoggerFactory;24import org.springframework.jms.core.JmsTemplate;25import org.springframework.jms.support.JmsHeaderMapper;26import org.springframework.jms.support.destination.DestinationResolver;27import org.springframework.util.Assert;28import javax.jms.*;29/**30 * @author Christoph Deppisch31 * @since 1.432 */33public class JmsEndpointConfiguration extends AbstractPollableEndpointConfiguration {34 /** Logger */35 private static Logger log = LoggerFactory.getLogger(JmsEndpointConfiguration.class);36 /** The connection factory */37 private ConnectionFactory connectionFactory;38 /** The destination object */39 private Destination destination;40 /** The destination name */41 private String destinationName;42 /** The destination resolver */43 private DestinationResolver destinationResolver;44 /** Resolves dynamic destination names */45 private EndpointUriResolver destinationNameResolver = new DynamicDestinationNameResolver();46 /** The JMS template */47 private JmsTemplate jmsTemplate;48 /** The header mapper */49 private JmsHeaderMapper headerMapper = new JmsMessageHeaderMapper();50 /** The message converter */51 private JmsMessageConverter messageConverter = new JmsMessageConverter();52 /** Use topics instead of queues */53 private boolean pubSubDomain = false;54 /** Start topic subscription immediately at startup and cache all incoming message events in local channel */55 private boolean autoStart = false;56 /** Durable subscriber settings */57 private boolean durableSubscription = false;58 private String durableSubscriberName;59 /** Should always use object messages */60 private boolean useObjectMessages = false;61 /**62 * Get the destination name (either a queue name or a topic name).63 * @param destination...
Source:JmsEndpointAdapter.java
...17import com.consol.citrus.context.TestContext;18import com.consol.citrus.endpoint.AbstractEndpointAdapter;19import com.consol.citrus.endpoint.Endpoint;20import com.consol.citrus.exceptions.ActionTimeoutException;21import com.consol.citrus.jms.message.JmsMessageHeaderMapper;22import com.consol.citrus.message.Message;23import org.slf4j.Logger;24import org.slf4j.LoggerFactory;25/**26 * Endpoint adapter forwards incoming requests to jms destination and waits for response27 * on reply destination. Provides jms endpoint for clients to connect to destinations in order to provide proper28 * response message.29 *30 * @author Christoph Deppisch31 * @since 1.432 */33public class JmsEndpointAdapter extends AbstractEndpointAdapter {34 /** Endpoint handling incoming requests */35 private final JmsSyncEndpoint endpoint;36 private final JmsSyncProducer producer;37 /** Endpoint configuration */38 private final JmsSyncEndpointConfiguration endpointConfiguration;39 /** Logger */40 private static final Logger LOG = LoggerFactory.getLogger(JmsEndpointAdapter.class);41 /**42 * Default constructor using endpoint configuration.43 * @param endpointConfiguration44 */45 public JmsEndpointAdapter(JmsSyncEndpointConfiguration endpointConfiguration) {46 this.endpointConfiguration = endpointConfiguration;47 if (this.endpointConfiguration.getHeaderMapper() instanceof JmsMessageHeaderMapper) {48 this.endpointConfiguration.setFilterInternalHeaders(false);49 }50 endpoint = new JmsSyncEndpoint(this.endpointConfiguration);51 endpoint.setName(getName());52 producer = new JmsSyncProducer(endpoint.getProducerName(), this.endpointConfiguration);53 }54 @Override55 protected Message handleMessageInternal(Message request) {56 LOG.debug("Forwarding request to jms destination ...");57 TestContext context = getTestContext();58 Message replyMessage = null;59 try {60 producer.send(request, context);61 if (endpointConfiguration.getCorrelator() != null) {...
JmsMessageHeaderMapper
Using AI Code Generation
1package com.consol.citrus;2import com.consol.citrus.annotations.CitrusTest;3import com.consol.citrus.dsl.design.TestDesigner;4import com.consol.citrus.dsl.design.TestDesignerBeforeSuiteSupport;5import com.consol.citrus.jms.message.JmsMessageHeaderMapper;6import org.springframework.beans.factory.annotation.Autowired;7import org.springframework.jms.core.JmsTemplate;8import org.springframework.jms.support.converter.MessageConverter;9import org.springframework.jms.support.converter.SimpleMessageConverter;10import org.springframework.stereotype.Component;11public class MyTest extends TestDesignerBeforeSuiteSupport {12 private JmsTemplate jmsTemplate;13 private MessageConverter messageConverter;14 public void test() {15 send(jmsTemplate)16 .message()17 .body("<TestRequest><Message>Hello World!</Message></TestRequest>")18 .header("operation", "sayHello");19 receive(jmsTemplate)20 .message()21 .body("<TestResponse><Message>Hello World!</Message></TestResponse>")22 .header("operation", "sayHello")23 .header("citrus_jms_messageId", "citrus_jms_messageId")24 .header("citrus_jms_correlationId", "citrus_jms_correlationId");25 send(jmsTemplate)26 .message()27 .body("<TestRequest><Message>Hello World!</Message></TestRequest>")28 .header("operation", "sayHello");29 receive(jmsTemplate)30 .message()31 .body("<TestResponse><Message>Hello World!</Message></TestResponse>")32 .header("operation", "sayHello")33 .header("citrus_jms_messageId", "citrus_jms_messageId")34 .header("citrus_jms_correlationId", "citrus_jms_correlationId")35 .header("citrus_jms_correlationId", "citrus_jms_correlationId");36 send(jmsTemplate)37 .message()38 .body("<TestRequest><Message>Hello World!</Message></TestRequest>")39 .header("operation", "sayHello");40 receive(jmsTemplate)41 .message()42 .body("<TestResponse><Message>Hello World!</Message></TestResponse>")43 .header("operation", "sayHello")44 .header("citrus_jms_messageId", "citrus_jms_messageId")45 .header("citrus_jms
JmsMessageHeaderMapper
Using AI Code Generation
1package com.consol.citrus.jms.message;2import java.util.Map;3import javax.jms.JMSException;4import javax.jms.Message;5import org.springframework.util.Assert;6import com.consol.citrus.exceptions.CitrusRuntimeException;7import com.consol.citrus.message.MessageHeaderMapper;8public class JmsMessageHeaderMapper implements MessageHeaderMapper<Message> {9public Map<String, Object> fromHeaders(Message message, Map<String, Object> headers) {10 try {11 Assert.notNull(message, "JMS message is null - unable to map headers");12 if (message.getJMSCorrelationID() != null) {13 headers.put("JMSCorrelationID", message.getJMSCorrelationID());14 }15 if (message.getJMSDeliveryMode() != 0) {16 headers.put("JMSDeliveryMode", message.getJMSDeliveryMode());17 }18 if (message.getJMSDestination() != null) {19 headers.put("JMSDestination", message.getJMSDestination());20 }21 if (message.getJMSExpiration() != 0) {22 headers.put("JMSExpiration", message.getJMSExpiration());23 }24 if (message.getJMSMessageID() != null) {25 headers.put("JMSMessageID", message.getJMSMessageID());26 }27 if (message.getJMSPriority() != 0) {28 headers.put("JMSPriority", message.getJMSPriority());29 }30 if (message.getJMSRedelivered() != false) {31 headers.put("JMSRedelivered", message.getJMSRedelivered());32 }33 if (message.getJMSReplyTo() != null) {34 headers.put("JMSReplyTo", message.getJMSReplyTo());35 }36 if (message.getJMSTimestamp() != 0) {37 headers.put("JMSTimestamp", message.getJMSTimestamp());38 }39 if (message.getJMSType() != null) {40 headers.put("JMSType", message.getJMSType());41 }42 return headers;43 } catch (JMSException e) {44 throw new CitrusRuntimeException("Failed to map JMS message headers", e);45 }46}47public void toHeaders(Message message, Map<String, Object> headers) {48 try {49 Assert.notNull(message, "JMS message is null - unable to map headers
JmsMessageHeaderMapper
Using AI Code Generation
1import com.consol.citrus.annotations.CitrusTest;2import com.consol.citrus.dsl.junit.JUnit4CitrusTestDesigner;3import com.consol.citrus.message.MessageType;4import org.junit.Test;5import org.springframework.beans.factory.annotation.Autowired;6import org.springframework.jms.core.JmsTemplate;7public class 3 extends JUnit4CitrusTestDesigner {8 private JmsTemplate jmsTemplate;9 public void jmsMessageHeaderMapper() {10 send(jmsTemplate)11 .message()12 .body("Hello World!")13 .header("JMSCorrelationID", "1234567890")14 .header("JMSReplyTo", "queue:replyQueue");15 receive(jmsTemplate)16 .messageType(MessageType.JSON)17 .headerMapper(new JmsMessageHeaderMapper())18 .payload("{ \"text\": \"Hello World!\" }")19 .header("correlationId", "1234567890")20 .header("replyTo", "queue:replyQueue");21 }22}23import com.consol.citrus.annotations.CitrusTest;24import com.consol.citrus.dsl.junit.JUnit4CitrusTestDesigner;25import com.consol.citrus.message.DefaultMessageHeaderMapper;26import com.consol.citrus.message.MessageType;27import org.junit.Test;28import org.springframework.beans.factory.annotation.Autowired;29import org.springframework.jms.core.JmsTemplate;30public class 4 extends JUnit4CitrusTestDesigner {31 private JmsTemplate jmsTemplate;32 public void defaultMessageHeaderMapper() {33 send(jmsTemplate)34 .message()35 .body("Hello World!")36 .header("JMSCorrelationID", "1234567890")37 .header("JMSReplyTo", "queue:replyQueue");38 receive(jmsTemplate)
JmsMessageHeaderMapper
Using AI Code Generation
1JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();2jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");3jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");4JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();5jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");6jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");7JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();8jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");9jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");10JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();11jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");12jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");13JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();14jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");15jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");16JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();17jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");18jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");19JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();20jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");21jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID
JmsMessageHeaderMapper
Using AI Code Generation
1JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();2jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");3jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");4JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();5jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");6jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");7JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();8jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");9jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");10JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();11jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");12jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");13JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();14jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");15jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");16JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();17jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");18jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID", "correlationId");19JmsMessageHeaderMapper jmsMessageHeaderMapper = new JmsMessageHeaderMapper();20jmsMessageHeaderMapper.setHeaderName("JMSReplyTo", "replyTo");21jmsMessageHeaderMapper.setHeaderName("JMSCorrelationID
JmsMessageHeaderMapper
Using AI Code Generation
1JmsMessageHeaderMapper headerMapper = new JmsMessageHeaderMapper();2headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning", "JMS_IBM_Report_UserId"));3headerMapper.setJmsHeaderTypes(Arrays.asList("String", "String"));4headerMapper.setJmsHeaderValues(Arrays.asList("test", "test"));5headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning", "JMS_IBM_Report_UserId"));6headerMapper.setJmsHeaderTypes(Arrays.asList("String", "String"));7headerMapper.setJmsHeaderValues(Arrays.asList("test", "test"));8headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning", "JMS_IBM_Report_UserId"));9headerMapper.setJmsHeaderTypes(Arrays.asList("String", "String"));10headerMapper.setJmsHeaderValues(Arrays.asList("test", "test"));11headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning", "JMS_IBM_Report_UserId"));12headerMapper.setJmsHeaderTypes(Arrays.asList("String", "String"));13headerMapper.setJmsHeaderValues(Arrays.asList("test", "test"));14headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning", "JMS_IBM_Report_UserId"));15headerMapper.setJmsHeaderTypes(Arrays.asList("String", "String"));16headerMapper.setJmsHeaderValues(Arrays.asList("test", "test"));17headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning", "JMS_IBM_Report_UserId"));18headerMapper.setJmsHeaderTypes(Arrays.asList("String", "String"));19headerMapper.setJmsHeaderValues(Arrays.asList("test", "test"));20headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning", "JMS_IBM_Report_UserId"));21headerMapper.setJmsHeaderTypes(Arrays.asList("String", "String"));22headerMapper.setJmsHeaderValues(Arrays.asList("test", "test"));23headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning", "JMS_IBM_Report_UserId"));24headerMapper.setJmsHeaderTypes(Arrays.asList("String", "String"));25headerMapper.setJmsHeaderValues(Arrays.asList("test", "test"));26headerMapper.setJmsHeaderNames(Arrays.asList("JMS_IBM_Report_Meaning",
JmsMessageHeaderMapper
Using AI Code Generation
1public class MyTest {2 public void myTest() {3 variable("myVar", "myValue");4 send("myQueue")5 .message()6 .header("myHeader", "myHeaderValue")7 .body("myBody");8 }9}10public class MyTest {11 public void myTest() {12 variable("myVar", "myValue");13 send("myQueue")14 .message()15 .header("myHeader", "myHeaderValue")16 .body("myBody");17 }18}19public class MyTest {20 public void myTest() {21 variable("myVar", "myValue");22 send("myQueue")23 .message()24 .header("myHeader", "myHeaderValue")25 .body("myBody");26 }27}28public class MyTest {29 public void myTest() {30 variable("myVar", "myValue");31 send("myQueue")32 .message()33 .header("myHeader", "myHeaderValue")34 .body("myBody");35 }36}37public class MyTest {38 public void myTest() {39 variable("myVar", "myValue");40 send("myQueue")41 .message()42 .header("myHeader", "myHeaderValue")43 .body("myBody");44 }45}46public class MyTest { org.springframework.stereotype.Component;47import com.consol.citrus.context.TestContext;48 public void myTest() {49 variable("myVar", "myValue");50 send("myQueue51import com.consol.citrus.endpoint.AbstractEndpoint;52import com.consol.citrus.endpoint.EndpointConfiguration;53import com.consol.citrus.endpoint.EndpointConfigurationAware;54import com.consol.citrus.endpoint.EndpointUriResolver;55import com.consol.citrus.exceptions.CitrusRuntimeException;56import com.consol.citrus.jms.message.JmsMessageHeaderMapper;57import com.consol.citrus.jms.message.JmsMessageHeaders;58import com.consol.citrus.message.Message;59import com.consol.citrus.message.MessageCorrelator;60import com.consol.citrus.message.MessageCorrelatorAware;61import com.consol.citrus.message.MessageHandler;62import com.consol.citrus.message.MessageHandlerAware;63import com.consol.citrus.message.MessageProcessor;64import com.consol.citrus.message.MessageProcessorAware;65import com.consol.citrus.message.MessageReceiver;66import com.consol.citrus.message.MessageReceiverAware;67import com.consol.citrus.message.MessageSender;68import com.consol.citrus.message.MessageSenderAware;69import com.consol.citrus.message.MessageTimeoutException;70import com.consol.citrus.message.MessageType;71import com.consol.citrus.messaging.Producer;72import com.consol.citrus.messaging.SelectiveConsumer;73import com.consol.citrus.validation.builder.DefaultMessageBuilder;74import com.consol.citrus.validation.builder.StaticMessageContentBuilder;75import com.consol.citrus.validation.interceptor.MessageConstructionInterceptor;76import com.consol.citrus.validation.interceptor.MessageConstructionInterceptorAware;77import com.consol.citrus.validation.interceptor.MessageValidationInterceptor;78import com.consol.citrus.validation.interceptor.MessageValidationInterceptorAware;79import com.consol.citrus.validation.script.ScriptValidationContext;80import com.consol.citrus.validation.script.ScriptValidationContextProvider;81import com.consol.citrus.validation.script.ScriptValidationContextProviderAware;82import org.springframework.jms.core.JmsTemplate;83import org.springframework.jms.support.converter.SimpleMessageConverter;84import org.springframework.jms.core.JmsTemplate;85import org.springframework.jms.support.converter.SimpleMessageConverter;86import
JmsMessageHeaderMapper
Using AI Code Generation
1public class MyTest {2 public void myTest() {3 variable("myVar", "myValue");4 send("myQueue")5 .message()6 .header("myHeader", "myHeaderValue")7 .body("myBody");8 }9}10public class MyTest {11 public void myTest() {12 variable("myVar", "myValue");13 send("myQueue")14 .message()15 .header("myHeader", "myHeael
JmsMessageHeaderMapper
Using AI Code Generation
1import org.springframework.context.support.ClassPathXmlApplicationContext;2import org.springframework.jms.core.JmsTemplate;3public class JmsMessageHeaderMapperTest {4 public static void main(String[] args) {5 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("jms-message-header-mapper.xml");6 JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class);7 jmsTemplate.convertAndSend("test.queue", "Hello World", message -> {8 message.setJMSMessageID("123");9 message.setJMSDestination(null);10 message.setJMSDeliveryMode(1);11 message.setJMSExpiration(0);12 message.setJMSPriority(4);13 message.setJMSRedelivered(false);14 message.setJMSTimestamp(0);15 message.setJMSType("TEST_MESSAGE");16 return message;17 });18 }19}20 .body("myBody");21 }22}23public class MyTest {24 public void myTest() {25 variable("myVar", "myValue");26 send("myQueue")27 .message()28 .header("myHeader", "myHeaderValue")29 .body("myBody");30 }31}32public class MyTest {33 public void myTest() {34 variable("myVar", "myValue");35 send("myQueue")36 .message()37 .header("myHeader", "myHeaderValue")38 .body("myBody");39 }40}41public class MyTest {42 public void myTest() {43 variable("myVar", "myValue");44 send("myQueue")45 .message()46 .header("myHeader", "myHeaderValue")47 .body("myBody");48 }49}50public class MyTest {51 public void myTest() {52 variable("myVar", "myValue");53 send("myQueue
JmsMessageHeaderMapper
Using AI Code Generation
1import org.springframework.beans.factory.annotation.Autowired;2import org.springframework.beans.factory.annotation.Qualifier;3import org.springframework.context.annotation.Bean;4import org.springframework.context.annotation.Configuration;5import org.springframework.context.annotation.Import;6import org.springframework.jms.core.JmsTemplate;7import org.springframework.jms.core.MessageCreator;8import org.springframework.jms.support.converter.MessageConverter;9import org.springframework.jms.support.converter.SimpleMessageConverter;10import org.springframework.jms.support.destination.DestinationResolver;11import org.springframework.jms.support.destination.JndiDestinationResolver;12import org.springframework.messaging.Message;13import org.springframework.messaging.MessageChannel;14import org.springframework.messaging.MessageHandler;15import org.springframework.messaging.MessagingException;16import org.springframework.messaging.support.GenericMessage;17import org.springframework.test.context.ContextConfiguration;18import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;19import org.springframework.util.Assert;20import org.springframework.util.ErrorHandler;21import org.springframework.util.StringUtils;22import com.consol.citrus.annotations.CitrusTest;23import com.consol.citrus.annotations.CitrusXmlTest;24import com.consol.citrus.channel.ChannelEndpoint;25import com.consol.citrus.context.TestContext;26import com.consol.citrus.dsl.junit.JUnit4CitrusTestDesigner;27import com.consol.citrus.jms.endpoint.JmsEndpoint;28import com.consol.citrus.jms.message.JmsMessageHeaderMapper;29import com.consol.citrus.message.MessageType;30import com.consol.citrus.testng.AbstractTestNGCitrusTest;31import com.consol.citrus.validation.builder.DefaultMessageBuilder;32import com.consol.citrus.validation.interceptor.XpathMessageConstructionInterceptor;33import com.consol.citrus.validation.xml.XmlMessageValidationContext;34import javax.jms.*;35import javax.naming.Context;36import javax.naming.InitialContext;37import java.util.Properties;38import org.junit.runner.RunWith;39@RunWith(SpringJUnit4ClassRunner.class)40@ContextConfiguration(classes = {JmsMessageHeaderMapperTestIT.TestConfig.class})41public class JmsMessageHeaderMapperTestIT extends AbstractTestNGCitrusTest {42 @Qualifier("jmsTemplate")43 private JmsTemplate jmsTemplate;44 @Qualifier("jmsEndpoint")45 private JmsEndpoint jmsEndpoint;46 @Qualifier("replyChannel")
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!!