How to use test_port method of end.end.end Package

Best Unobtainium_ruby code snippet using end.end.end.test_port

RouteManagerTest.java

Source:RouteManagerTest.java Github

copy

Full Screen

1package com.krslynx.integration.io.vertx.smpp.rest.api.routing;2import com.krslynx.io.vertx.smpp.rest.api.routing.RouteManager;3import org.junit.Test;4import org.vertx.java.core.AsyncResult;5import org.vertx.java.core.AsyncResultHandler;6import org.vertx.java.core.Handler;7import org.vertx.java.core.http.HttpClientResponse;8import org.vertx.java.core.http.HttpServer;9import org.vertx.testtools.TestVerticle;10import static org.vertx.testtools.VertxAssert.assertEquals;11import static org.vertx.testtools.VertxAssert.testComplete;12public class RouteManagerTest extends TestVerticle {13 private final int TEST_PORT = 8082;14 @Test15 public void testHttpPostSmppClientConfiguration() {16 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {17 @Override18 public void handle(AsyncResult<HttpServer> event) {19 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/client/configuration", new Handler<HttpClientResponse>() {20 @Override21 public void handle(HttpClientResponse event) {22 assertEquals(200, event.statusCode());23 testComplete();24 }25 }).end();26 }27 });28 }29 @Test30 public void testHttpGetSmppClientConfiguration() {31 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {32 @Override33 public void handle(AsyncResult<HttpServer> event) {34 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/client/configuration", new Handler<HttpClientResponse>() {35 @Override36 public void handle(HttpClientResponse event) {37 assertEquals(200, event.statusCode());38 testComplete();39 }40 }).end();41 }42 });43 }44 @Test45 public void testHttpGetSmppClientConfigurationConfSuffix() {46 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {47 @Override48 public void handle(AsyncResult<HttpServer> event) {49 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/client/configuration/1", new Handler<HttpClientResponse>() {50 @Override51 public void handle(HttpClientResponse event) {52 assertEquals(200, event.statusCode());53 testComplete();54 }55 }).end();56 }57 });58 }59 @Test60 public void testHttpPatchSmppClientConfigurationConfSuffix() {61 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {62 @Override63 public void handle(AsyncResult<HttpServer> event) {64 vertx.createHttpClient().setPort(TEST_PORT).patch("/smpp/client/configuration/1", new Handler<HttpClientResponse>() {65 @Override66 public void handle(HttpClientResponse event) {67 assertEquals(200, event.statusCode());68 testComplete();69 }70 }).end();71 }72 });73 }74 @Test75 public void testHttpDeleteSmppClientConfigurationConfSuffix() {76 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {77 @Override78 public void handle(AsyncResult<HttpServer> event) {79 vertx.createHttpClient().setPort(TEST_PORT).delete("/smpp/client/configuration/1", new Handler<HttpClientResponse>() {80 @Override81 public void handle(HttpClientResponse event) {82 assertEquals(200, event.statusCode());83 testComplete();84 }85 }).end();86 }87 });88 }89 @Test90 public void testHttpGetSmppClientConfigurationConfSuffixClone() {91 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {92 @Override93 public void handle(AsyncResult<HttpServer> event) {94 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/client/configuration/1/clone", new Handler<HttpClientResponse>() {95 @Override96 public void handle(HttpClientResponse event) {97 assertEquals(200, event.statusCode());98 testComplete();99 }100 }).end();101 }102 });103 }104 @Test105 public void testHttpGetSmppClientConfigurationConfSuffixBind() {106 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {107 @Override108 public void handle(AsyncResult<HttpServer> event) {109 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/client/configuration/1/bind", new Handler<HttpClientResponse>() {110 @Override111 public void handle(HttpClientResponse event) {112 assertEquals(200, event.statusCode());113 testComplete();114 }115 }).end();116 }117 });118 }119 @Test120 public void testHttpPostSmppClientConfigurationConfSuffixBindBindSuffixSubmit() {121 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {122 @Override123 public void handle(AsyncResult<HttpServer> event) {124 vertx.createHttpClient().setPort(TEST_PORT).post("/smpp/client/configuration/1/bind/1/submit", new Handler<HttpClientResponse>() {125 @Override126 public void handle(HttpClientResponse event) {127 assertEquals(200, event.statusCode());128 testComplete();129 }130 }).end();131 }132 });133 }134 @Test135 public void testHttpGetSmppClientConfigurationConfSuffixBindBindSuffixDestroy() {136 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {137 @Override138 public void handle(AsyncResult<HttpServer> event) {139 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/client/configuration/1/bind/1/destroy", new Handler<HttpClientResponse>() {140 @Override141 public void handle(HttpClientResponse event) {142 assertEquals(200, event.statusCode());143 testComplete();144 }145 }).end();146 }147 });148 }149 @Test150 public void testHttpGetSmppClientConfigurationConfSuffixLogBindBindSuffixLog() {151 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {152 @Override153 public void handle(AsyncResult<HttpServer> event) {154 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/client/configuration/1/bind/1/log", new Handler<HttpClientResponse>() {155 @Override156 public void handle(HttpClientResponse event) {157 assertEquals(200, event.statusCode());158 testComplete();159 }160 }).end();161 }162 });163 }164 @Test165 public void testHttpDeleteSmppClientConfigurationConfSuffixBindBindSuffix() {166 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {167 @Override168 public void handle(AsyncResult<HttpServer> event) {169 vertx.createHttpClient().setPort(TEST_PORT).delete("/smpp/client/configuration/1/bind/1", new Handler<HttpClientResponse>() {170 @Override171 public void handle(HttpClientResponse event) {172 assertEquals(200, event.statusCode());173 testComplete();174 }175 }).end();176 }177 });178 }179 @Test180 public void testHttpPostSmppServerConfiguration() {181 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {182 @Override183 public void handle(AsyncResult<HttpServer> event) {184 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/server/configuration", new Handler<HttpClientResponse>() {185 @Override186 public void handle(HttpClientResponse event) {187 assertEquals(200, event.statusCode());188 testComplete();189 }190 }).end();191 }192 });193 }194 @Test195 public void testHttpGetSmppServerConfiguration() {196 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {197 @Override198 public void handle(AsyncResult<HttpServer> event) {199 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/server/configuration", new Handler<HttpClientResponse>() {200 @Override201 public void handle(HttpClientResponse event) {202 assertEquals(200, event.statusCode());203 testComplete();204 }205 }).end();206 }207 });208 }209 @Test210 public void testHttpGetSmppServerConfigurationConfSuffix() {211 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {212 @Override213 public void handle(AsyncResult<HttpServer> event) {214 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/server/configuration/1", new Handler<HttpClientResponse>() {215 @Override216 public void handle(HttpClientResponse event) {217 assertEquals(200, event.statusCode());218 testComplete();219 }220 }).end();221 }222 });223 }224 @Test225 public void testHttpPatchSmppServerConfigurationConfSuffix() {226 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {227 @Override228 public void handle(AsyncResult<HttpServer> event) {229 vertx.createHttpClient().setPort(TEST_PORT).patch("/smpp/server/configuration/1", new Handler<HttpClientResponse>() {230 @Override231 public void handle(HttpClientResponse event) {232 assertEquals(200, event.statusCode());233 testComplete();234 }235 }).end();236 }237 });238 }239 @Test240 public void testHttpDeleteSmppServerConfigurationConfSuffix() {241 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {242 @Override243 public void handle(AsyncResult<HttpServer> event) {244 vertx.createHttpClient().setPort(TEST_PORT).delete("/smpp/server/configuration/1", new Handler<HttpClientResponse>() {245 @Override246 public void handle(HttpClientResponse event) {247 assertEquals(200, event.statusCode());248 testComplete();249 }250 }).end();251 }252 });253 }254 @Test255 public void testHttpGetSmppServerConfigurationConfSuffixClone() {256 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {257 @Override258 public void handle(AsyncResult<HttpServer> event) {259 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/server/configuration/1/clone", new Handler<HttpClientResponse>() {260 @Override261 public void handle(HttpClientResponse event) {262 assertEquals(200, event.statusCode());263 testComplete();264 }265 }).end();266 }267 });268 }269 @Test270 public void testHttpGetSmppServerConfigurationConfSuffixStart() {271 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {272 @Override273 public void handle(AsyncResult<HttpServer> event) {274 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/server/configuration/1/start", new Handler<HttpClientResponse>() {275 @Override276 public void handle(HttpClientResponse event) {277 assertEquals(200, event.statusCode());278 testComplete();279 }280 }).end();281 }282 });283 }284 @Test285 public void testHttpGetSmppServerConfigurationConfSuffixStop() {286 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {287 @Override288 public void handle(AsyncResult<HttpServer> event) {289 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/server/configuration/1/stop", new Handler<HttpClientResponse>() {290 @Override291 public void handle(HttpClientResponse event) {292 assertEquals(200, event.statusCode());293 testComplete();294 }295 }).end();296 }297 });298 }299 @Test300 public void testHttpGetSmppServerConfigurationConfSuffixStatus() {301 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {302 @Override303 public void handle(AsyncResult<HttpServer> event) {304 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/server/configuration/1/status", new Handler<HttpClientResponse>() {305 @Override306 public void handle(HttpClientResponse event) {307 assertEquals(200, event.statusCode());308 testComplete();309 }310 }).end();311 }312 });313 }314 @Test315 public void testHttpGetSmppServerConfigurationConfSuffixLog() {316 vertx.createHttpServer().requestHandler(new RouteManager(this.vertx)).listen(TEST_PORT, new AsyncResultHandler<HttpServer>() {317 @Override318 public void handle(AsyncResult<HttpServer> event) {319 vertx.createHttpClient().setPort(TEST_PORT).get("/smpp/server/configuration/1/log", new Handler<HttpClientResponse>() {320 @Override321 public void handle(HttpClientResponse event) {322 assertEquals(200, event.statusCode());323 testComplete();324 }325 }).end();326 }327 });328 }329}...

Full Screen

Full Screen

QueryParameterExtractorTest.java

Source:QueryParameterExtractorTest.java Github

copy

Full Screen

1package com.github.phiz71.vertx.swagger.router.extractors;2import java.io.UnsupportedEncodingException;3import java.net.URLEncoder;4import java.nio.charset.Charset;5import org.junit.AfterClass;6import org.junit.BeforeClass;7import org.junit.Test;8import org.junit.runner.RunWith;9import com.github.phiz71.vertx.swagger.router.SwaggerRouter;10import io.swagger.models.Swagger;11import io.swagger.parser.SwaggerParser;12import io.vertx.core.Vertx;13import io.vertx.core.eventbus.EventBus;14import io.vertx.core.file.FileSystem;15import io.vertx.core.http.HttpClient;16import io.vertx.core.http.HttpClientRequest;17import io.vertx.core.http.HttpServer;18import io.vertx.core.json.JsonObject;19import io.vertx.ext.unit.Async;20import io.vertx.ext.unit.TestContext;21import io.vertx.ext.unit.junit.VertxUnitRunner;22import io.vertx.ext.web.Router;23@RunWith(VertxUnitRunner.class)24public class QueryParameterExtractorTest {25 private static final int TEST_PORT = 9292;26 private static final String TEST_HOST = "localhost";27 private static Vertx vertx;28 private static EventBus eventBus;29 private static HttpClient httpClient;30 private static HttpServer httpServer;31 @BeforeClass32 public static void beforeClass(TestContext context) {33 Async before = context.async();34 vertx = Vertx.vertx();35 eventBus = vertx.eventBus();36 // init Router37 FileSystem vertxFileSystem = vertx.fileSystem();38 vertxFileSystem.readFile("extractors/swaggerQueryExtractor.json", readFile -> {39 if (readFile.succeeded()) {40 Swagger swagger = new SwaggerParser().parse(readFile.result().toString(Charset.forName("utf-8")));41 Router swaggerRouter = SwaggerRouter.swaggerRouter(Router.router(vertx), swagger, eventBus);42 httpServer = vertx.createHttpServer().requestHandler(swaggerRouter::accept).listen(TEST_PORT, TEST_HOST, listen -> {43 if (listen.succeeded()) {44 before.complete();45 } else {46 context.fail(listen.cause());47 }48 });49 } else {50 context.fail(readFile.cause());51 }52 });53 // init consumers54 eventBus.<JsonObject> consumer("GET_query_array_pipes").handler(message -> {55 message.reply(message.body().getJsonArray("array_query").encode());56 });57 eventBus.<JsonObject> consumer("GET_query_array_ssv").handler(message -> {58 message.reply(message.body().getJsonArray("array_query").encode());59 });60 eventBus.<JsonObject> consumer("GET_query_array_tsv").handler(message -> {61 message.reply(message.body().getJsonArray("array_query").encode());62 });63 eventBus.<JsonObject> consumer("GET_query_array_csv").handler(message -> {64 message.reply(message.body().getJsonArray("array_query").encode());65 });66 eventBus.<JsonObject> consumer("GET_query_array_multi").handler(message -> {67 message.reply(message.body().getJsonArray("array_query").encode());68 });69 eventBus.<JsonObject> consumer("GET_query_array").handler(message -> {70 message.reply(message.body().getJsonArray("array_query").encode());71 });72 eventBus.<JsonObject> consumer("GET_query_simple_required").handler(message -> {73 message.reply(message.body().getString("queryRequired"));74 });75 eventBus.<JsonObject> consumer("GET_query_simple_required_allowempty").handler(message -> {76 message.reply(message.body().getString("queryRequired"));77 });78 eventBus.<JsonObject> consumer("GET_query_simple_not_required").handler(message -> {79 message.reply(message.body().getString("queryNotRequired"));80 });81 eventBus.<JsonObject> consumer("GET_query_simple_not_required_withdefault").handler(message -> {82 message.reply(message.body().getString("queryNotRequired"));83 });84 // init http client85 httpClient = Vertx.vertx().createHttpClient();86 }87 @Test()88 public void testOkQuerySimpleRequired(TestContext context) {89 Async async = context.async();90 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/simple/required?queryRequired=toto");91 req.handler(response -> {92 response.bodyHandler(body -> {93 context.assertEquals(response.statusCode(), 200);94 context.assertEquals("toto", body.toString());95 async.complete();96 });97 }).end();98 }99 @Test()100 public void testKoQuerySimpleRequiredWithEmptyValue(TestContext context) {101 Async async = context.async();102 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/simple/required?queryRequired=");103 req.handler(response -> {104 response.bodyHandler(body -> {105 context.assertEquals(response.statusCode(), 400);106 async.complete();107 });108 }).end();109 }110 @Test()111 public void testOkQuerySimpleRequiredAllowEmpty(TestContext context) {112 Async async = context.async();113 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/simple/required/allowempty?queryRequired=");114 req.handler(response -> {115 response.bodyHandler(body -> {116 context.assertEquals(response.statusCode(), 200);117 context.assertEquals("", body.toString());118 async.complete();119 });120 }).end();121 }122 123 @Test()124 public void testKoQuerySimpleRequired(TestContext context) {125 Async async = context.async();126 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/simple/required");127 req.handler(response -> {128 response.bodyHandler(body -> {129 context.assertEquals(response.statusCode(), 400);130 async.complete();131 });132 }).end();133 }134 135 @Test()136 public void testOkQuerySimpleNotRequiredWithParam(TestContext context) {137 Async async = context.async();138 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/simple/not/required?queryNotRequired=toto");139 req.handler(response -> {140 response.bodyHandler(body -> {141 context.assertEquals(response.statusCode(), 200);142 context.assertEquals("toto", body.toString());143 async.complete();144 });145 }).end();146 }147 @Test()148 public void testOkQuerySimpleNotRequiredWithoutParam(TestContext context) {149 Async async = context.async();150 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/simple/not/required");151 req.handler(response -> {152 response.bodyHandler(body -> {153 context.assertEquals(response.statusCode(), 200);154 context.assertEquals("", body.toString());155 async.complete();156 });157 }).end();158 }159 160 @Test()161 public void testOkQueryArrayPipes(TestContext context) throws UnsupportedEncodingException {162 Async async = context.async();163 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/array/pipes?array_query="+URLEncoder.encode("1|2|3", "UTF-8"));164 req.handler(response -> {165 response.bodyHandler(body -> {166 context.assertEquals(response.statusCode(), 200);167 context.assertEquals("[\"1\",\"2\",\"3\"]", body.toString());168 async.complete();169 });170 }).end();171 }172 @Test()173 public void testOkQueryArrayCsv(TestContext context) throws UnsupportedEncodingException {174 Async async = context.async();175 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/array/csv?array_query="+URLEncoder.encode("1,2,3", "UTF-8"));176 req.handler(response -> {177 response.bodyHandler(body -> {178 context.assertEquals(response.statusCode(), 200);179 context.assertEquals("[\"1\",\"2\",\"3\"]", body.toString());180 async.complete();181 });182 }).end();183 } 184 185 @Test()186 public void testOkQueryArraySsv(TestContext context) throws UnsupportedEncodingException {187 Async async = context.async();188 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/array/ssv?array_query="+URLEncoder.encode("1 2 3", "UTF-8"));189 req.handler(response -> {190 response.bodyHandler(body -> {191 context.assertEquals(response.statusCode(), 200);192 context.assertEquals("[\"1\",\"2\",\"3\"]", body.toString());193 async.complete();194 });195 }).end();196 }197 198 @Test()199 public void testOkQueryArrayTsv(TestContext context) throws UnsupportedEncodingException {200 Async async = context.async();201 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/array/tsv?array_query="+URLEncoder.encode("1\t2\t3", "UTF-8"));202 req.handler(response -> {203 response.bodyHandler(body -> {204 context.assertEquals(response.statusCode(), 200);205 context.assertEquals("[\"1\",\"2\",\"3\"]", body.toString());206 async.complete();207 });208 }).end();209 }210 211 @Test()212 public void testOkQueryArrayMulti(TestContext context) throws UnsupportedEncodingException {213 Async async = context.async();214 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/array/multi?array_query=1&array_query=2&array_query=3");215 req.handler(response -> {216 response.bodyHandler(body -> {217 context.assertEquals(response.statusCode(), 200);218 context.assertEquals("[\"1\",\"2\",\"3\"]", body.toString());219 async.complete();220 });221 }).end();222 }223 224 @Test()225 public void testOkQueryArray(TestContext context) throws UnsupportedEncodingException {226 Async async = context.async();227 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/array?array_query="+URLEncoder.encode("1,2,3", "UTF-8"));228 req.handler(response -> {229 response.bodyHandler(body -> {230 context.assertEquals(response.statusCode(), 200);231 context.assertEquals("[\"1\",\"2\",\"3\"]", body.toString());232 async.complete();233 });234 }).end();235 }236 @Test()237 public void testOkQuerySimpleNotRequiredWithDefaultWithParam(TestContext context) {238 Async async = context.async();239 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/simple/not/required/withdefault?queryNotRequired=foo");240 req.handler(response -> {241 response.bodyHandler(body -> {242 context.assertEquals(response.statusCode(), 200);243 context.assertEquals("foo", body.toString());244 async.complete();245 });246 }).end();247 }248 @Test()249 public void testOkQuerySimpleNotRequiredWithDefaultWithoutParam(TestContext context) {250 Async async = context.async();251 HttpClientRequest req = httpClient.get(TEST_PORT, TEST_HOST, "/query/simple/not/required/withdefault");252 req.handler(response -> {253 response.bodyHandler(body -> {254 context.assertEquals(response.statusCode(), 200);255 context.assertEquals("defaultValue", body.toString());256 async.complete();257 });258 }).end();259 }260 @AfterClass261 public static void afterClass(TestContext context) {262 Async after = context.async();263 httpServer.close(completionHandler -> {264 if (completionHandler.succeeded()) {265 FileSystem vertxFileSystem = vertx.fileSystem();266 vertxFileSystem.deleteRecursive(".vertx", true, vertxDir -> {267 if (vertxDir.succeeded()) {268 after.complete();269 } else {270 context.fail(vertxDir.cause());271 }272 });273 }274 });275 }276}...

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Unobtainium_ruby automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful