Best Coyote code snippet using Microsoft.Coyote.Actors.Coverage.ActorRuntimeLogGraphBuilder.OnReceiveEvent
ActorRuntimeLogGraphBuilder.cs
Source:ActorRuntimeLogGraphBuilder.cs
...173 }174 return result;175 }176 /// <inheritdoc/>177 public void OnReceiveEvent(ActorId id, string stateName, Event e, bool wasBlocked)178 {179 string resolvedId = this.GetResolveActorId(id?.Name, id?.Type);180 lock (this.Inbox)181 {182 if (this.Inbox.TryGetValue(resolvedId, out List<EventInfo> inbox))183 {184 string eventName = e.GetType().FullName;185 for (int i = inbox.Count - 1; i >= 0; i--)186 {187 EventInfo info = inbox[i];188 if (info.Event == eventName)189 {190 // Yay, found it so we can draw the complete link connecting the Sender state to this state!191 string category = string.IsNullOrEmpty(stateName) ? ActorCategory : StateMachineCategory;...
OnReceiveEvent
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.Coyote.Actors;7using Microsoft.Coyote.Actors.Coverage;8using Microsoft.Coyote.SystematicTesting;9using Microsoft.Coyote.SystematicTesting.Coverage;10using Microsoft.Coyote.Tasks;11using Microsoft.Coyote.Specifications;12using Microsoft.Coyote.Tests.Common;13using Microsoft.Coyote.Tests.Common.Coverage;14using Microsoft.Coyote.Tests.Common.Runtime;15using Microsoft.Coyote.Tests.Common.SystematicTesting;16using Microsoft.Coyote.Tests.Common.SystematicTesting.Coverage;17using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies;18using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.Schedule;19using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration;20using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph;21using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies;22using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst;23using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search;24using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search.Scheduling;25using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search.Scheduling.Schedule;26using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search.Scheduling.Schedule.Scheduler;27using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search.Scheduling.Schedule.Scheduler.Strategies;28using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search.Scheduling.Schedule.Scheduler.Strategies.Random;29using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search.Scheduling.Schedule.Scheduler.Strategies.Random.RandomWalk;30using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search.Scheduling.Schedule.Scheduler.Strategies.Random.RandomWalk.RandomWalkExploration;31using Microsoft.Coyote.Tests.Common.SystematicTesting.Strategies.StateExploration.Graph.Strategies.DepthFirst.Search.Scheduling.Schedule.Scheduler.Strategies.Random.RandomWalk.RandomWalkExploration.Strategies;
OnReceiveEvent
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.Coyote.Actors.Coverage;7using Microsoft.Coyote.Actors;8using Microsoft.Coyote.Runtime;9using System.IO;10using System.Diagnostics;11using Microsoft.Coyote.SystematicTesting;12using Microsoft.Coyote;13{14 {15 static void Main(string[] args)16 {17 var runtime = new ActorRuntime();18 runtime.OnReceiveEvent += OnReceiveEvent;19 runtime.CreateActor(typeof(A));20 runtime.Wait();21 }22 static void OnReceiveEvent(object sender, OnReceiveEventArgs e)23 {24 Console.WriteLine(e.Event.GetType().Name);25 }26 }27 {28 protected override Task OnInitializeAsync(Event initialEvent)29 {30 this.SendEvent(this.Id, new E());31 return Task.CompletedTask;32 }33 }34 {35 }36}37using System;38using System.Collections.Generic;39using System.Linq;40using System.Text;41using System.Threading.Tasks;42using Microsoft.Coyote.Actors.Coverage;43using Microsoft.Coyote.Actors;44using Microsoft.Coyote.Runtime;45using System.IO;46using System.Diagnostics;47using Microsoft.Coyote.SystematicTesting;48using Microsoft.Coyote;49{50 {51 static void Main(string[] args)52 {53 var runtime = new ActorRuntime();54 runtime.OnReceiveEvent += OnReceiveEvent;55 runtime.CreateActor(typeof(A));56 runtime.Wait();57 }58 static void OnReceiveEvent(object sender, OnReceiveEventArgs e)59 {60 Console.WriteLine(e.Event.GetType().Name);61 }62 }63 {64 protected override Task OnInitializeAsync(Event initialEvent)65 {66 this.SendEvent(this.Id, new E());67 return Task.CompletedTask;68 }69 }70 {71 }72}73using System;74using System.Collections.Generic;75using System.Linq;76using System.Text;77using System.Threading.Tasks;
OnReceiveEvent
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.Coyote.Actors;7using Microsoft.Coyote.Actors.Coverage;8{9 {10 static void Main(string[] args)11 {12 var runtime = new ActorRuntime();13 var logGraphBuilder = new ActorRuntimeLogGraphBuilder(runtime);14 runtime.OnReceiveEvent += logGraphBuilder.OnReceiveEvent;15 runtime.CreateActor(typeof(MyActor));16 runtime.Wait();17 Console.WriteLine("Done");18 Console.ReadLine();19 }20 }21 {22 protected override Task OnInitializeAsync(Event initialEvent)23 {24 this.SendEvent(this.Id, new E1());25 return Task.CompletedTask;26 }27 protected override Task OnEventAsync(Event e)28 {29 return Task.CompletedTask;30 }31 }32 {33 }34}35using System;36using System.Collections.Generic;37using System.Linq;38using System.Text;39using System.Threading.Tasks;40using Microsoft.Coyote.Actors;41using Microsoft.Coyote.Actors.Coverage;42{43 {44 static void Main(string[] args)45 {46 var runtime = new ActorRuntime();47 var logGraphBuilder = new ActorRuntimeLogGraphBuilder(runtime);48 runtime.OnReceiveEvent += logGraphBuilder.OnReceiveEvent;49 runtime.CreateActor(typeof(MyActor));50 runtime.Wait();51 Console.WriteLine("Done");52 Console.ReadLine();53 }54 }55 {56 protected override Task OnInitializeAsync(Event initialEvent)57 {58 this.SendEvent(this.Id, new E1());59 return Task.CompletedTask;60 }61 protected override Task OnEventAsync(Event e)62 {63 return Task.CompletedTask;64 }65 }66 {67 }68}69using System;70using System.Collections.Generic;71using System.Linq;72using System.Text;73using System.Threading.Tasks;74using Microsoft.Coyote.Actors;
OnReceiveEvent
Using AI Code Generation
1using System;2using Microsoft.Coyote.Actors;3using Microsoft.Coyote.Actors.Coverage;4using Microsoft.Coyote.Actors.Coverage.Strategies;5using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental;6using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage;7using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph;8using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes;9using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphEventNodes;10using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphMachineNodes;11using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphStateNodes;12using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphTransitionNodes;13using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphTransitionNodes.CoverageGraphActionNodes;14using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphTransitionNodes.CoverageGraphAssertionNodes;15using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphTransitionNodes.CoverageGraphChoiceNodes;16using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphTransitionNodes.CoverageGraphGotoNodes;17using Microsoft.Coyote.Actors.Coverage.Strategies.Incremental.IncrementalCoverage.CoverageGraph.CoverageGraphNodes.CoverageGraphTransitionNodes.CoverageGraphReceiveNodes;
OnReceiveEvent
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using Microsoft.Coyote.Actors;5using Microsoft.Coyote.Actors.Coverage;6using Microsoft.Coyote.Actors.SharedObjects;7using Microsoft.Coyote.Actors.Timers;8using Microsoft.Coyote.Specifications;9using Microsoft.Coyote.SystematicTesting;10using Microsoft.Coyote.SystematicTesting.Strategies;11using Microsoft.Coyote.SystematicTesting.Threading;12using Microsoft.Coyote.Tasks;13using Microsoft.Coyote.Tests.Common;14using Microsoft.Coyote.Tests.Common.Coverage;15using Microsoft.Coyote.Tests.Common.Runtime;16using Microsoft.Coyote.Tests.Common.Tasks;17using Microsoft.Coyote.Tests.Common.Timers;18using Microsoft.Coyote.Tests.Common.Utilities;19using Microsoft.Coyote.Tests.Common.Workspaces;20using Microsoft.Coyote.Tests.SystematicTesting;21using Microsoft.Coyote.Tests.SystematicTesting.Coverage;22using Microsoft.Coyote.Tests.SystematicTesting.Runtime;23using Microsoft.Coyote.Tests.SystematicTesting.Threading;24using Microsoft.Coyote.Tests.SystematicTesting.Tasks;25using Microsoft.Coyote.Tests.SystematicTesting.Timers;26{27 {28 public TestRuntimeLogGraphBuilder(Configuration configuration)29 : base(configuration)30 {31 }32 protected override ActorRuntimeLogGraphBuilder CreateActorRuntimeLogGraphBuilder()33 {34 return new TestActorRuntimeLogGraphBuilder(this);35 }36 }37 {38 public TestActorRuntimeLogGraphBuilder(TestRuntimeLogGraphBuilder runtime)39 : base(runtime)40 {41 }42 public override void OnReceiveEvent(Event e, ActorId target)43 {44 if (e is PingEvent)45 {46 }47 else if (e is PongEvent)48 {49 }50 {51 base.OnReceiveEvent(e, target);52 }53 }54 }55}56using System;57using System.Collections.Generic;58using System.Linq;59using Microsoft.Coyote.Actors;
OnReceiveEvent
Using AI Code Generation
1{2 {3 public ActorRuntimeLogGraphBuilder(ActorRuntime runtime, string logFilePath) : base(runtime, logFilePath)4 {5 }6 public override void OnReceiveEvent(Event e, ActorId target, string targetState, string currentState)7 {8 base.OnReceiveEvent(e, target, targetState, currentState);9 Console.WriteLine("Received event " + e.GetType().Name + " in state " + currentState + " of actor " + target.Name);10 }11 }12}13{14 {15 static void Main(string[] args)16 {17 var runtime = new ActorRuntime();18 var logFilePath = @"C:\Users\user\Desktop\log.txt";19 var runtimeLogBuilder = new ActorRuntimeLogGraphBuilder(runtime, logFilePath);20 runtime.SetLogger(runtimeLogBuilder);21 var actor = runtime.CreateActor(typeof(MyActor));22 runtime.SendEvent(actor, new MyEvent());23 Console.ReadLine();24 }25 }26}27{28 {29 [OnEventDoAction(typeof(MyEvent), nameof(DoSomething))]30 {31 }32 private void DoSomething()33 {34 Console.WriteLine("Actor " + this.Id.Name + " is in state " + this.CurrentStateName);35 }36 }37}38{39 {40 }41}
OnReceiveEvent
Using AI Code Generation
1using System;2using Microsoft.Coyote;3using Microsoft.Coyote.Actors;4using Microsoft.Coyote.Actors.Coverage;5using Microsoft.Coyote.Testing;6using Microsoft.Coyote.Testing.Coverage;7using System.Collections.Generic;8{9 {10 static void Main(string[] args)11 {12 ActorRuntime runtime = RuntimeFactory.Create();13 runtime.CreateActor(typeof(M));14 runtime.Run();15 Console.WriteLine("Event coverage of the state machine: " + (runtime.GetCoverageReport() as StateMachineCoverageReport).EventCoverage);16 Console.WriteLine("Event coverage of the program: " + (runtime.GetCoverageReport() as ProgramCoverageReport).EventCoverage);17 }18 }19 {20 [OnEntry(nameof(InitOnEntry))]21 [OnEventGotoState(typeof(e1), typeof(S1))]22 [OnEventGotoState(typeof(e2), typeof(S2))]23 {24 }25 void InitOnEntry(Event e)26 {27 this.Send(this.Id, new e1());28 }29 [OnEntry(nameof(S1OnEntry))]30 [OnEventGotoState(typeof(e2), typeof(S2))]31 {32 }33 void S1OnEntry(Event e)34 {35 this.Send(this.Id, new e2());
OnReceiveEvent
Using AI Code Generation
1using System;2using System.IO;3using System.Threading.Tasks;4using Microsoft.Coyote;5using Microsoft.Coyote.Actors;6using Microsoft.Coyote.Actors.Coverage;7using Microsoft.Coyote.Actors.Timers;8using Microsoft.Coyote.Specifications;9using Microsoft.Coyote.Tasks;10using Microsoft.Coyote.Testing;11using Microsoft.Coyote.Testing.Fuzzing;12using Microsoft.Coyote.Testing.Systematic;13using Microsoft.Coyote.Testing.Tracing;14using Microsoft.Coyote.Testing.Tracing.Schedule;15using Microsoft.Coyote.Testing.Tracing.Schedule.Liveness;16using Microsoft.Coyote.Tests.Common;17using Microsoft.Coyote.Tests.Common.Coverage;18using Microsoft.Coyote.Tests.Common.Events;19using Microsoft.Coyote.Tests.Common.TestableImplementations;20using Microsoft.Coyote.Tests.Common.TestableImplementations.Actors;21using Microsoft.Coyote.Tests.Common.TestableImplementations.Timers;22using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks;23using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResult;24using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndArg;25using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndTwoArgs;26using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndThreeArgs;27using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndFourArgs;28using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndFiveArgs;29using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndSixArgs;30using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndSevenArgs;31using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndEightArgs;32using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndNineArgs;33using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndTenArgs;34using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndElevenArgs;35using Microsoft.Coyote.Tests.Common.TestableImplementations.Tasks.TaskWithResultAndTwelveArgs;
OnReceiveEvent
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.Coyote;7using Microsoft.Coyote.Actors;8using Microsoft.Coyote.Specifications;9using Microsoft.Coyote.Tasks;10using Microsoft.Coyote.Actors.Coverage;11using Microsoft.Coyote.Tests.Common;12{13 {14 static void Main(string[] args)15 {16 var config = Configuration.Create();17 config.EnableActorLogging = true;18 config.EnableActorCoverage = true;19 config.EnableActorStateCoverage = true;20 config.EnableEventCoverage = true;21 config.EnableStateCoverage = true;22 config.EnableTaskCoverage = true;23 config.EnableRandomExecution = true;24 config.RandomSchedulingSeed = 1;25 config.SchedulingIterations = 1000;26 config.UserLogFile = "3.cs.dot";27 config.UserLogWriter = new ActorRuntimeLogGraphBuilder();28 config.UserLogWriter.OnReceiveEvent += OnReceiveEvent;29 var result = TestingEngine.Test(config, () => new MyActor());30 }31 static void OnReceiveEvent(object sender, System.EventArgs e)32 {33 var args = (ActorRuntimeLogGraphBuilder.OnReceiveEventArgs)e;34 var runtime = (ActorRuntime)sender;35 var actor = runtime.GetActor(args.ActorId);36 Console.WriteLine("Actor {0} received event {1}", actor.Id, args.Event);37 }38 }39 {40 protected override async Task OnInitializeAsync(Event initialEvent)41 {42 await this.SendEvent(this.Id, new MyEvent());43 }44 protected override Task OnEventAsync(Event e)45 {46 return Task.CompletedTask;47 }48 }49 class MyEvent : Event { }50}51using System.Linq;52using System.Text;53using System.Threading.Tasks;54using Microsoft.Coyote;55using Microsoft.Coyote.Actors;56using Microsoft.Coyote.Specifications;57using Microsoft.Coyote.Tasks;58using Microsoft.Coyote.Actors.Coverage;59using Microsoft.Coyote.Tests.Common;60{61 {62 static void Main(string[] args)63 {64 var config = Configuration.Create();65 config.EnableActorLogging = true;66 config.EnableActorCoverage = true;67 config.EnableActorStateCoverage = true;68 config.EnableEventCoverage = true;69 config.EnableStateCoverage = true;70 config.EnableTaskCoverage = true;71 config.EnableRandomExecution = true;72 config.RandomSchedulingSeed = 1;73 config.SchedulingIterations = 1000;74 config.UserLogFile = "3.cs.dot";75 config.UserLogWriter = new ActorRuntimeLogGraphBuilder();76 config.UserLogWriter.OnReceiveEvent += OnReceiveEvent;77 var result = TestingEngine.Test(config, () => new MyActor());78 }79 static void OnReceiveEvent(object sender, System.EventArgs e)80 {81 var args = (ActorRuntimeLogGraphBuilder.OnReceiveEventArgs)e;82 var runtime = (ActorRuntime)sender;83 var actor = runtime.GetActor(args.ActorId);84 Console.WriteLine("Actor {0} received event {1}", actor.Id, args.Event);85 }86 }87 {88 protected override async Task OnInitializeAsync(Event initialEvent)89 {90 await this.SendEvent(this.Id, new MyEvent());91 }92 protected override Task OnEventAsync(Event e)93 {94 return Task.CompletedTask;95 }96 }97 class MyEvent : Event { }98}
OnReceiveEvent
Using AI Code Generation
1using System;2using Microsoft.Coyote;3using Microsoft.Coyote.Actors;4using Microsoft.Coyote.Actors.Coverage;5using Microsoft.Coyote.Testing;6using Microsoft.Coyote.Testing.Coverage;7using System.Collections.Generic;8{9 {10 static void Main(string[] args)11 {12 ActorRuntime runtime = RuntimeFactory.Create();13 runtime.CreateActor(typeof(M));14 runtime.Run();15 Console.WriteLine("Event coverage of the state machine: " + (runtime.GetCoverageReport() as StateMachineCoverageReport).EventCoverage);16 Console.WriteLine("Event coverage of the program: " + (runtime.GetCoverageReport() as ProgramCoverageReport).EventCoverage);17 }18 }19 {20 [OnEntry(nameof(InitOnEntry))]21 [OnEventGotoState(typeof(e1), typeof(S1))]22 [OnEventGotoState(typeof(e2), typeof(S2))]23 {24 }25 void InitOnEntry(Event e)26 {27 this.Send(this.Id, new e1());28 }29 [OnEntry(nameof(S1OnEntry))]30 [OnEventGotoState(typeof(e2), typeof(S2))]31 {32 }33 void S1OnEntry(Event e)34 {35 this.Send(this.Id, new e2());
OnReceiveEvent
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.Coyote;7using Microsoft.Coyote.Actors;8using Microsoft.Coyote.Specifications;9using Microsoft.Coyote.Tasks;10using Microsoft.Coyote.Actors.Coverage;11using Microsoft.Coyote.Tests.Common;12{13 {14 static void Main(string[] args)15 {16 var config = Configuration.Create();17 config.EnableActorLogging = true;18 config.EnableActorCoverage = true;19 config.EnableActorStateCoverage = true;20 config.EnableEventCoverage = true;21 config.EnableStateCoverage = true;22 config.EnableTaskCoverage = true;23 config.EnableRandomExecution = true;24 config.RandomSchedulingSeed = 1;25 config.SchedulingIterations = 1000;26 config.UserLogFile = "3.cs.dot";27 config.UserLogWriter = new ActorRuntimeLogGraphBuilder();28 config.UserLogWriter.OnReceiveEvent += OnReceiveEvent;29 var result = TestingEngine.Test(config, () => new MyActor());30 }31 static void OnReceiveEvent(object sender, System.EventArgs e)32 {33 var args = (ActorRuntimeLogGraphBuilder.OnReceiveEventArgs)e;34 var runtime = (ActorRuntime)sender;35 var actor = runtime.GetActor(args.ActorId);36 Console.WriteLine("Actor {0} received event {1}", actor.Id, args.Event);37 }38 }39 {40 protected override async Task OnInitializeAsync(Event initialEvent)41 {42 await this.SendEvent(this.Id, new MyEvent());43 }44 protected override Task OnEventAsync(Event e)45 {46 return Task.CompletedTask;47 }48 }49 class MyEvent : Event { }50}
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!!