Best Karate code snippet using payment.consumer.Consumer.Consumer
Source:PaymentKafkaConsumer.java
...8import java.util.Map;9import java.util.Properties;10import javax.annotation.PostConstruct;11import javax.annotation.PreDestroy;12import org.apache.kafka.clients.consumer.ConsumerRecord;13import org.apache.kafka.clients.consumer.ConsumerRecords;14import org.apache.kafka.clients.consumer.KafkaConsumer;15import org.apache.kafka.clients.consumer.OffsetAndMetadata;16import org.apache.kafka.common.TopicPartition;17import org.slf4j.Logger;18import org.slf4j.LoggerFactory;19import org.springframework.beans.factory.annotation.Value;20import org.springframework.stereotype.Component;21import org.springframework.web.client.RestTemplate;22import com.fasterxml.jackson.databind.ObjectMapper;23import com.rumanski.payment.SpringContext;24import com.rumanski.payment.es.events.PaymentCompletedEvent;25import com.rumanski.payment.es.events.PaymentDomainEvent;26import com.rumanski.payment.es.events.PaymentDomainEvent.EventType;27import com.rumanski.payment.es.events.PaymentFailedEvent;28import com.rumanski.payment.model.Payment;29import com.rumanski.payment.model.Payment.PaymentStatus;30import com.rumanski.payment.repository.PaymentRepository;31import io.zeebe.client.ZeebeClient;32@Component33/*34 * This class will only log messages from kafka35 */36public class PaymentKafkaConsumer {37 private static final Logger LOGGER = LoggerFactory.getLogger(PaymentKafkaConsumer.class);38 @Value("${kafka.bootstrap.servers}")39 private String kafkaBootstrapServers;40 @Value("${zookeeper.groupid}")41 private String zookeeperGroupId;42 private KafkaConsumer<String, String> consumer;43 private static boolean FAIL_PAYMENTS = false;44 @PostConstruct45 void postConstruct() {46 Properties consumerProperties = new Properties();47 consumerProperties.put("bootstrap.servers", kafkaBootstrapServers);48 consumerProperties.put("group.id", zookeeperGroupId);49 consumerProperties.put("zookeeper.session.timeout.ms", "6000");50 consumerProperties.put("zookeeper.sync.time.ms", "2000");51 consumerProperties.put("auto.commit.enable", "false");52 consumerProperties.put("auto.commit.interval.ms", "1000");53 consumerProperties.put("consumer.timeout.ms", "-1");54 consumerProperties.put("max.poll.records", "1");55 consumerProperties.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");56 consumerProperties.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");57 LOGGER.info("Starting Kafka Consumer");58 consumer = new KafkaConsumer<>(consumerProperties);59 /*60 * Creating a thread to run the infinite loop61 */62 Thread kafkaConsumerThread = new Thread(() -> {63 LOGGER.info("Starting Kafka consumer thread.");64 ConsumerLoop simpleKafkaConsumer = new ConsumerLoop(consumer);65 simpleKafkaConsumer.loop();66 });67 /*68 * Starting the first thread.69 */70 kafkaConsumerThread.start();71 LOGGER.info("Kafka Consumer Started");72 }73 @PreDestroy74 void preDestroy() {75 LOGGER.info("Closing Kafka Consumer");76 ConsumerLoop.stop = true;77 try {78 Thread.sleep(100);79 } catch (InterruptedException e) {80 e.printStackTrace();81 }82 consumer.close();83 LOGGER.info("Kafka Consumer Closed");84 }85 private static class ConsumerLoop {86 public static boolean stop = false;87 private final KafkaConsumer<String, String> consumer;88 public ConsumerLoop(KafkaConsumer<String, String> consumer) {89 super();90 this.consumer = consumer;91 }92 public void loop() {93 ZeebeClient zeebeClient = SpringContext.getBean(ZeebeClient.class);94 EventStore store = SpringContext.getBean(EventStore.class);95 PaymentRepository paymentRepo = SpringContext.getBean(PaymentRepository.class);96 List<String> topics = new ArrayList<>();97 EventType[] values = PaymentDomainEvent.EventType.values();98 for (EventType et : values) {99 topics.add(et.name());100 }101 consumer.subscribe(topics);102 LOGGER.info("Kafka Consumer subscribed to topics");103 // here comes kafka loop104 /*105 * We will start an infinite while loop, inside which we'll be listening to new106 * messages in each topic that we've subscribed to.107 */108 while (!stop) {109 ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));110 for (ConsumerRecord<String, String> record : records) {111 /*112 * Whenever there's a new message in the Kafka topic, we'll get the message in113 * this loop, as the record object.114 */115 /*116 * Getting the message as a string from the record object.117 */118 String topic = record.topic();119 String key = record.key();120 String message = record.value();121 LOGGER.info("Received kafka message: " + message + " on topic " + topic + " with key " + key);122 if (topic.equals(PaymentDomainEvent.EventType.PAYMENT_REQUESTED.name())) {123 try {124 ObjectMapper reader = new ObjectMapper();...
Source:PaymentRequestApiTest.java
1package com.tw.api;2import com.tw.domain.Consumer;3import com.tw.domain.PaymentRequest;4import com.tw.domain.RequestStatus;5import com.tw.domain.TestHelper;6import org.junit.Test;7import javax.ws.rs.client.Entity;8import javax.ws.rs.core.Form;9import javax.ws.rs.core.Response;10import java.util.Map;11import static org.hamcrest.MatcherAssert.assertThat;12import static org.hamcrest.core.Is.is;13import static org.hamcrest.core.StringEndsWith.endsWith;14import static org.mockito.Matchers.anyObject;15import static org.mockito.Matchers.eq;16import static org.mockito.Mockito.verify;17import static org.mockito.Mockito.when;18public class PaymentRequestApiTest extends ApiTestBase {19 @Test20 public void should_create_payment_request() throws Exception {21 final Consumer consumer = TestHelper.consumer(1, "name");22 PaymentRequest paymentRequest = TestHelper.paymentRequest(1, 100, consumer);23 when(paymentRequestRepository.createPaymentRequest(eq(consumer), anyObject())).thenReturn(paymentRequest);24 when(consumerRepository.findConsumerById(eq(1))).thenReturn(consumer);25 final Response response = target("/consumers/1/paymentRequests").request().post(Entity.form(new Form()));26 assertThat(response.getStatus(), is(201));27 assertThat(response.getHeaderString("Location"), endsWith("/consumers/1/paymentRequests/1"));28 }29 @Test30 public void should_get_payment_request() throws Exception {31 final Consumer consumer = TestHelper.consumer(1, "name");32 PaymentRequest paymentRequest = TestHelper.paymentRequest(1, 100, consumer);33 when(paymentRequestRepository.findPaymentRequestById(eq(1))).thenReturn(paymentRequest);34 when(consumerRepository.findConsumerById(eq(1))).thenReturn(consumer);35 final Response response = target("/consumers/1/paymentRequests/1").request().get();36 assertThat(response.getStatus(), is(200));37 Map map = response.readEntity(Map.class);38 assertThat(map.get("id"), is(1));39 assertThat(map.get("amount"), is(100));40 assertThat(map.get("status"), is("NEW"));41 Map consumeby = (Map) map.get("consumer");42 assertThat((String) consumeby.get("uri"), endsWith("/consumers/1"));43 }44 @Test45 public void should_confirm_request() throws Exception {46 final Consumer consumer = TestHelper.consumer(1, "name");47 PaymentRequest paymentRequest = TestHelper.paymentRequest(1, 100, consumer);48 when(paymentRequestRepository.findPaymentRequestById(eq(1))).thenReturn(paymentRequest);49 when(consumerRepository.findConsumerById(eq(1))).thenReturn(consumer);50 when(paymentRequestRepository.updatePaymentRequest(paymentRequest)).thenReturn(paymentRequest);51 final Response response = target("/consumers/1/paymentRequests/1/confirmation").request().post(Entity.form(new Form()));52 assertThat(response.getStatus(), is(204));53 assertThat(paymentRequest.getStatus(), is(RequestStatus.CONFIRMED));54 verify(paymentRequestRepository).updatePaymentRequest(eq(paymentRequest));55 }56 @Test57 public void should_reject_request() throws Exception {58 final Consumer consumer = TestHelper.consumer(1, "name");59 PaymentRequest paymentRequest = TestHelper.paymentRequest(1, 100, consumer);60 when(paymentRequestRepository.findPaymentRequestById(eq(1))).thenReturn(paymentRequest);61 when(consumerRepository.findConsumerById(eq(1))).thenReturn(consumer);62 when(paymentRequestRepository.updatePaymentRequest(paymentRequest)).thenReturn(paymentRequest);63 final Response response = target("/consumers/1/paymentRequests/1/rejected").request().post(Entity.form(new Form()));64 assertThat(response.getStatus(), is(204));65 assertThat(paymentRequest.getStatus(), is(RequestStatus.REJECTED));66 verify(paymentRequestRepository).updatePaymentRequest(eq(paymentRequest));67 }68}...
Source:Gos_update_payment.java
...45import org.slf4j.Logger;6import org.slf4j.LoggerFactory;78import com.yihaodian.architecture.jumper.common.consumer.ConsumerType;9import com.yihaodian.architecture.jumper.common.message.Destination;10import com.yihaodian.architecture.jumper.common.message.Message;11import com.yihaodian.architecture.jumper.consumer.BackoutMessageException;12import com.yihaodian.architecture.jumper.consumer.Consumer;13import com.yihaodian.architecture.jumper.consumer.ConsumerConfig;14import com.yihaodian.architecture.jumper.consumer.ConsumerFactory;15import com.yihaodian.architecture.jumper.consumer.MessageListener;16import com.yihaodian.architecture.jumper.consumer.impl.ConsumerFactoryImpl;17import com.yihaodian.bi.storm.common.model.JumpMQOrderVo;1819/**20 * 订åæ¯ä»ååæ¶æ¯æ¶è´¹21 * 22 * @author lvpeng23 */24public class Gos_update_payment implements MessageListener {2526 static final Logger logger = LoggerFactory.getLogger(Gos_update_payment.class);2728 private Consumer consumer;29 private static int threadPoolSize = 10;30 private static String topic = "gos_update_payment";3132 public static ConcurrentLinkedQueue<JumpMQOrderVo> queue = new ConcurrentLinkedQueue<JumpMQOrderVo>();33 private JumpMQOrderVo jumpMQOrderVo = null;3435 public Gos_update_payment(String consumerName){36 ConsumerFactory cf = ConsumerFactoryImpl.getInstance();37 ConsumerConfig config = new ConsumerConfig();38 config.setConsumerType(ConsumerType.CLIENT_ACKNOWLEDGE);39 // config.setThreadPoolSize(threadPoolSize);40 Destination dest = Destination.topic(topic);4142 consumer = cf.createConsumer(dest, consumerName, config);43 consumer.setListener(this);44 consumer.start();45 }4647 @Override48 public void onMessage(Message message) throws BackoutMessageException {49 // TODO Auto-generated method stub50 jumpMQOrderVo = message.transferContentToBean(JumpMQOrderVo.class);5152 if (jumpMQOrderVo != null) {53 logger.info("From `gos_update_payment` MQ received: " + jumpMQOrderVo.baseInfo());54 queue.add(jumpMQOrderVo);55 logger.info("From `gos_update_payment` MQ successfully put: " + jumpMQOrderVo.baseInfo());56 } else {
...
Consumer
Using AI Code Generation
1package payment.consumer;2import javax.jms.Connection;3import javax.jms.ConnectionFactory;4import javax.jms.Destination;5import javax.jms.JMSException;6import javax.jms.Message;7import javax.jms.MessageConsumer;8import javax.jms.Session;9import org.apache.activemq.ActiveMQConnectionFactory;10public class Consumer {11public static void main(String[] args) {12ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(13try {14Connection connection = connectionFactory.createConnection();15connection.start();16Session session = connection.createSession(false,17Session.AUTO_ACKNOWLEDGE);18Destination destination = session.createQueue("PaymentQueue");19MessageConsumer consumer = session.createConsumer(destination);20Message message = consumer.receive();21System.out.println("Message received: " + message);22connection.close();23} catch (JMSException e) {24e.printStackTrace();25}26}27}28package payment.producer;29import javax.jms.Connection;30import javax.jms.ConnectionFactory;31import javax.jms.Destination;32import javax.jms.JMSException;33import javax.jms.MessageProducer;34import javax.jms.Session;35import javax.jms.TextMessage;36import org.apache.activemq.ActiveMQConnectionFactory;37public class Producer {38public static void main(String[] args) {39ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(40try {41Connection connection = connectionFactory.createConnection();42connection.start();43Session session = connection.createSession(false,44Session.AUTO_ACKNOWLEDGE);45Destination destination = session.createQueue("PaymentQueue");46MessageProducer producer = session.createProducer(destination);47TextMessage message = session.createTextMessage();48message.setText("This is a message from Producer");49producer.send(message);50System.out.println("Message sent: " + message.getText());51connection.close();52} catch (JMSException e) {53e.printStackTrace();54}55}56}57package payment.producer;58import javax.jms.Connection;59import javax.jms.ConnectionFactory;60import javax.jms.Destination;61import javax.jms.JMSException;62import javax.jms.MessageProducer;63import javax.jms.Session;64import javax.jms.TextMessage;65import org.apache.activem
Consumer
Using AI Code Generation
1package payment.consumer;2import java.util.Properties;3import org.apache.kafka.clients.consumer.Consumer;4import org.apache.kafka.clients.consumer.ConsumerRecords;5import org.apache.kafka.clients.consumer.KafkaConsumer;6import org.apache.kafka.common.serialization.StringDeserializer;7import java.util.Collections;8import java.util.Arrays;9import java.util.Map;10import java.util.HashMap;11import java.util.List;12import java.util.ArrayList;13import java.util.Iterator;14import java.util.Set;15import java.util.HashSet;16import java.util.regex.Pattern;17import java.util.regex.Matcher;18import java.util.stream.Collectors;19import java.util.stream.Stream;20import java.util.stream.StreamSupport;21import java.util.function.Consumer;22import java.util.function.Function;23import java.util.function.Predicate;24import java.util.concurrent.TimeUnit;25import java.util.concurrent.atomic.AtomicInteger;26import java.util.concurrent.atomic.AtomicLong;27import java.util.concurrent.ExecutionException;28import java.util.concurrent.ExecutorService;29import java.util.concurrent.Executors;30import java.util.concurrent.Future;31import java.util.concurrent.Callable;32import java.util.concurrent.TimeoutException;33import java.util.concurrent.ConcurrentHashMap;34import java.util.concurrent.ConcurrentMap;35import java.util.concurrent.ConcurrentLinkedQueue;36import java.util.concurrent.ConcurrentSkipListSet;37import java.util.concurrent.ConcurrentSkipListMap;38import java.util.concurre
Consumer
Using AI Code Generation
1package payment.consumer;2import payment.provider.PaymentProvider;3import payment.provider.PaymentProviderImpl;4public class Consumer {5 public static void main(String[] args) {6 PaymentProvider paymentProvider = new PaymentProviderImpl();7 paymentProvider.providePayment("credit card", 100.00);8 }9}10package payment.consumer;11import payment.provider.PaymentProvider;12import payment.provider.PaymentProviderImpl;13public class Consumer {14 public static void main(String[] args) {15 PaymentProvider paymentProvider = new PaymentProviderImpl();16 paymentProvider.providePayment("credit card", 100.00);17 }18}19package payment.consumer;20import payment.provider.PaymentProvider;21import payment.provider.PaymentProviderImpl;22public class Consumer {23 public static void main(String[] args) {24 PaymentProvider paymentProvider = new PaymentProviderImpl();25 paymentProvider.providePayment("credit card", 100.00);26 }27}28package payment.consumer;29import payment.provider.PaymentProvider;30import payment.provider.PaymentProviderImpl;31public class Consumer {32 public static void main(String[] args) {33 PaymentProvider paymentProvider = new PaymentProviderImpl();34 paymentProvider.providePayment("credit card", 100.00);35 }36}37package payment.consumer;38import payment.provider.PaymentProvider;39import payment.provider.PaymentProviderImpl;40public class Consumer {41 public static void main(String[] args) {42 PaymentProvider paymentProvider = new PaymentProviderImpl();43 paymentProvider.providePayment("credit card", 100.00);44 }45}46package payment.consumer;47import payment.provider.PaymentProvider;48import payment.provider.PaymentProviderImpl;49public class Consumer {50 public static void main(String[] args) {51 PaymentProvider paymentProvider = new PaymentProviderImpl();52 paymentProvider.providePayment("credit card", 100.00);53 }54}55package payment.consumer;56import payment.provider.PaymentProvider;57import payment.provider.PaymentProviderImpl;
Consumer
Using AI Code Generation
1package payment.consumer;2import java.util.*;3import java.util.function.*;4public class ConsumerDemo {5 public static void main(String[] args) {6 Scanner sc = new Scanner(System.in);7 Consumer<String> c = s -> System.out.println(s);8 System.out.println("Enter the name:");9 String name = sc.next();10 c.accept(name);11 }12}13package payment.consumer;14import java.util.*;15import java.util.function.*;16public class ConsumerDemo {17 public static void main(String[] args) {18 Scanner sc = new Scanner(System.in);19 BiConsumer<String, Integer> bc = (s, i) -> System.out.println(s + " " + i);20 System.out.println("Enter the name:");21 String name = sc.next();22 System.out.println("Enter the age:");23 int age = sc.nextInt();24 bc.accept(name, age);25 }26}27package payment.consumer;28import java.util.*;29import java.util.function.*;30public class ConsumerDemo {31 public static void main(String[] args) {32 Scanner sc = new Scanner(System.in);33 BiConsumer<String, Integer> bc = (s, i) -> System.out.println(s + " " + i);34 System.out.println("Enter the name:");35 String name = sc.next();36 System.out.println("Enter the age:");37 int age = sc.nextInt();38 bc.accept(name, age);39 }40}41package payment.consumer;42import java.util.*;43import java.util.function.*;44public class ConsumerDemo {45 public static void main(String[] args) {46 Scanner sc = new Scanner(System.in);47 BiConsumer<String, Integer> bc = (s, i) -> System.out.println(s + " " + i);48 System.out.println("Enter the name:");49 String name = sc.next();50 System.out.println("Enter the age:");51 int age = sc.nextInt();52 bc.accept(name, age);53 }54}55package payment.consumer;56import java.util.*;57import java.util.function.*;58public class ConsumerDemo {59 public static void main(String[] args) {
Consumer
Using AI Code Generation
1package payment.consumer;2import payment.provider.*;3{4 public static void main(String[] args)5 {6 Payment p = new Payment();7 p.pay(2000);8 }9}10package payment.provider;11{12 public void pay(int amount)13 {14 System.out.println("Payment of amount " + amount + " is done");15 }16}
Consumer
Using AI Code Generation
1import java.util.*;2import java.io.*;3import payment.consumer.Consumer;4{5public static void main(String args[])6{7Scanner sc=new Scanner(System.in);8System.out.println("Enter the Consumer Number");9int consumerNumber=sc.nextInt();10System.out.println("Enter the Consumer Name");11String consumerName=sc.next();12System.out.println("Enter the Consumer Address");13String consumerAddress=sc.next();14System.out.println("Enter the Consumer Mobile Number");15String consumerMobileNumber=sc.next();16System.out.println("Enter the Consumer Bill Amount");17double consumerBillAmount=sc.nextDouble();18Consumer c=new Consumer(consumerNumber,consumerName,consumerAddress,consumerMobileNumber,consumerBillAmount);19c.display();20}21}22import java.util.*;23import java.io.*;24import payment.consumer.Consumer;25{26public static void main(String args[])27{28Scanner sc=new Scanner(System.in);29System.out.println("Enter the Consumer Number");30int consumerNumber=sc.nextInt();31System.out.println("Enter the Consumer Name");32String consumerName=sc.next();33System.out.println("Enter the Consumer Address");34String consumerAddress=sc.next();35System.out.println("Enter the Consumer Mobile Number");36String consumerMobileNumber=sc.next();37System.out.println("Enter the Consumer Bill Amount");38double consumerBillAmount=sc.nextDouble();39Consumer c=new Consumer(consumerNumber,consumerName,consumerAddress,consumerMobileNumber,consumerBillAmount);40c.display();41}42}43import java.util.*;44import java.io.*;45import payment.consumer.Consumer;46{47public static void main(String args[])48{49Scanner sc=new Scanner(System.in);50System.out.println("Enter the Consumer Number");51int consumerNumber=sc.nextInt();52System.out.println("Enter the Consumer Name");53String consumerName=sc.next();54System.out.println("Enter the Consumer Address");55String consumerAddress=sc.next();56System.out.println("Enter the Consumer Mobile Number");57String consumerMobileNumber=sc.next();58System.out.println("Enter the Consumer Bill Amount");59double consumerBillAmount=sc.nextDouble();60Consumer c=new Consumer(consumerNumber,consumerName,consumerAddress,consumerMobileNumber,consumerBillAmount);61c.display();62}63}64import java.util.*;65import java.io.*;66import payment.consumer.Consumer;67{68public static void main(String args
Consumer
Using AI Code Generation
1import java.util.*;2import java.io.*;3import java.util.function.Consumer;4import payment.consumer.Consumer;5{6 public static void main(String[] args)7 {8 Consumer<String> c = s->System.out.println(s);9 c.accept("Hello World");10 }11}12import java.util.*;13import java.io.*;14import java.util.function.Consumer;15import payment.consumer.Consumer;16{17 public static void main(String[] args)18 {19 Consumer<String> c = s->System.out.println(s);20 c.accept("Hello World");21 }22}23import java.util.*;24import java.io.*;25import java.util.function.Consumer;26import payment.consumer.Consumer;27{28 public static void main(String[] args)29 {30 Consumer<String> c = s->System.out.println(s);31 c.accept("Hello World");32 }33}34import java.util.*;35import java.io.*;36import java.util.function.Consumer;37import payment.consumer.Consumer;38{39 public static void main(String[] args)40 {41 Consumer<String> c = s->System.out.println(s);42 c.accept("Hello World");43 }44}45import java.util.*;46import java.io.*;47import java.util.function.Consumer;48import payment.consumer.Consumer;49{50 public static void main(String[] args)51 {52 Consumer<String> c = s->System.out.println(s);53 c.accept("Hello World");54 }55}56import java.util.*;57import java.io.*;58import java.util.function.Consumer;59import payment.consumer.Consumer;60{61 public static void main(String[] args)62 {63 Consumer<String> c = s->System.out.println(s);64 c.accept("Hello World");65 }66}67import java.util.*;68import java.io.*;69import java.util.function.Consumer;70import payment.consumer.Consumer;71{72 public static void main(String
Consumer
Using AI Code Generation
1package payment.consumer;2import java.util.function.Consumer;3import java.util.function.Predicate;4public class ConsumerDemo {5public static void main(String[] args) {6Consumer<String> c1 = s -> System.out.println(s.toUpperCase());7c1.accept("java2s.com");8Consumer<String> c2 = s -> System.out.println(s.toLowerCase());9c1.andThen(c2).accept("JAVA2S.COM");10}11}12package payment.consumer;13import java.util.function.Consumer;14import java.util.function.Predicate;15public class ConsumerDemo {16public static void main(String[] args) {17Consumer<String> c1 = s -> System.out.println(s.toUpperCase());18c1.accept("java2s.com");19Consumer<String> c2 = s -> System.out.println(s.toLowerCase());20c1.andThen(c2).accept("JAVA2S.COM");21}22}23package payment.consumer;24import java.util.function.Consumer;25import java.util.function.Predicate;26public class ConsumerDemo {27public static void main(String[] args) {28Consumer<String> c1 = s -> System.out.println(s.toUpperCase());29c1.accept("java2s.com");30Consumer<String> c2 = s -> System.out.println(s.toLowerCase());31c1.andThen(c2).accept("JAVA2S.COM");32}33}34package payment.consumer;35import java.util.function.Consumer;36import java.util.function.Predicate;37public class ConsumerDemo {38public static void main(String[] args) {39Consumer<String> c1 = s -> System.out.println(s.toUpperCase());40c1.accept("java2s.com");41Consumer<String> c2 = s -> System.out.println(s.toLowerCase());42c1.andThen(c2).accept("JAVA2S.COM");43}44}
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!!