How to use ExecutePLSQLBuilder class of com.consol.citrus.dsl.builder package

Best Citrus code snippet using com.consol.citrus.dsl.builder.ExecutePLSQLBuilder

Source:DefaultTestRunner.java Github

copy

Full Screen

...198 action.setMessage(message);199 return run(action);200 }201 @Override202 public ExecutePLSQLAction plsql(BuilderSupport<ExecutePLSQLBuilder> configurer) {203 ExecutePLSQLBuilder builder = new ExecutePLSQLBuilder();204 configurer.configure(builder);205 return run(builder.build());206 }207 @Override208 public ExecuteSQLAction sql(BuilderSupport<ExecuteSQLBuilder> configurer) {209 ExecuteSQLBuilder builder = new ExecuteSQLBuilder();210 configurer.configure(builder);211 return run(builder.build());212 }213 @Override214 public ExecuteSQLQueryAction query(BuilderSupport<ExecuteSQLQueryBuilder> configurer) {215 ExecuteSQLQueryBuilder builder = new ExecuteSQLQueryBuilder();216 configurer.configure(builder);217 return run(builder.build());...

Full Screen

Full Screen

Source:JUnit4CitrusTestRunner.java Github

copy

Full Screen

...127 public EchoAction echo(String message) {128 return testRunner.echo(message);129 }130 @Override131 public ExecutePLSQLAction plsql(BuilderSupport<ExecutePLSQLBuilder> configurer) {132 return testRunner.plsql(configurer);133 }134 @Override135 public ExecuteSQLAction sql(BuilderSupport<ExecuteSQLBuilder> configurer) {136 return testRunner.sql(configurer);137 }138 @Override139 public ExecuteSQLQueryAction query(BuilderSupport<ExecuteSQLQueryBuilder> configurer) {140 return testRunner.query(configurer);141 }142 @Override143 public ReceiveTimeoutAction receiveTimeout(BuilderSupport<ReceiveTimeoutBuilder> configurer) {144 return testRunner.receiveTimeout(configurer);145 }...

Full Screen

Full Screen

Source:ExecutePLSQLBuilder.java Github

copy

Full Screen

...30 *31 * @author Christoph Deppisch32 * @since 2.333 */34public class ExecutePLSQLBuilder extends AbstractTestActionBuilder<ExecutePLSQLAction> {35 /**36 * Constructor using action field.37 * @param action38 */39 public ExecutePLSQLBuilder(ExecutePLSQLAction action) {40 super(action);41 }42 /**43 * Default constructor.44 */45 public ExecutePLSQLBuilder() {46 super(new ExecutePLSQLAction());47 }48 /**49 * Sets the Spring JDBC template to use.50 * @param jdbcTemplate51 * @return52 */53 public ExecutePLSQLBuilder jdbcTemplate(JdbcTemplate jdbcTemplate) {54 action.setJdbcTemplate(jdbcTemplate);55 return this;56 }57 /**58 * Sets the transaction manager to use.59 * @param transactionManager60 * @return61 */62 public ExecutePLSQLBuilder transactionManager(PlatformTransactionManager transactionManager) {63 action.setTransactionManager(transactionManager);64 return this;65 }66 /**67 * Sets the transaction timeout to use.68 * @param transactionTimeout69 * @return70 */71 public ExecutePLSQLBuilder transactionTimeout(int transactionTimeout) {72 action.setTransactionTimeout(String.valueOf(transactionTimeout));73 return this;74 }75 /**76 * Sets the transaction timeout to use.77 * @param transactionTimeout78 * @return79 */80 public ExecutePLSQLBuilder transactionTimeout(String transactionTimeout) {81 action.setTransactionTimeout(transactionTimeout);82 return this;83 }84 /**85 * Sets the transaction isolation level to use.86 * @param isolationLevel87 * @return88 */89 public ExecutePLSQLBuilder transactionIsolationLevel(String isolationLevel) {90 action.setTransactionIsolationLevel(isolationLevel);91 return this;92 }93 /**94 * Sets the SQL data source.95 * @param dataSource96 * @return97 */98 public ExecutePLSQLBuilder dataSource(DataSource dataSource) {99 action.setDataSource(dataSource);100 return this;101 }102 /**103 * Adds a list of statements to execute.104 * @param statements105 */106 public ExecutePLSQLBuilder statements(List<String> statements) {107 action.getStatements().addAll(statements);108 return this;109 }110 /**111 * Adds a new statement tp the list of SQL executions.112 * @param sql113 * @return114 */115 public ExecutePLSQLBuilder statement(String sql) {116 action.getStatements().add(sql);117 return this;118 }119 /**120 * Setter for external file resource containing the SQL statements to execute.121 * @param filePath122 */123 public ExecutePLSQLBuilder sqlResource(String filePath) {124 action.setSqlResourcePath(filePath);125 return this;126 }127 /**128 * Setter for external file resource containing the SQL statements to execute.129 * @param sqlResource130 */131 public ExecutePLSQLBuilder sqlResource(Resource sqlResource) {132 return sqlResource(sqlResource, FileUtils.getDefaultCharset());133 }134 /**135 * Setter for external file resource containing the SQL statements to execute.136 * @param sqlResource137 * @param charset138 */139 public ExecutePLSQLBuilder sqlResource(Resource sqlResource, Charset charset) {140 try {141 action.setScript(FileUtils.readToString(sqlResource, charset));142 } catch (IOException e) {143 throw new CitrusRuntimeException("Failed to read sql resource", e);144 }145 return this;146 }147 /**148 * Setter for inline script.149 * @param script150 */151 public ExecutePLSQLBuilder sqlScript(String script) {152 action.setScript(script);153 return this;154 }155 /**156 * Ignore errors during execution.157 * @param ignoreErrors boolean flag to set158 */159 public ExecutePLSQLBuilder ignoreErrors(boolean ignoreErrors) {160 action.setIgnoreErrors(ignoreErrors);161 return this;162 }163}...

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1import com.consol.citrus.dsl.builder.ExecutePLSQLBuilder;2import com.consol.citrus.dsl.runner.TestRunner;3import com.consol.citrus.dsl.runner.TestRunnerSupport;4import com.consol.citrus.dsl.testng.TestNGCitrusTestRunner;5import com.consol.citrus.exceptions.TestCaseFailedException;6import com.consol.citrus.message.MessageType;7import com.consol.citrus.testng.CitrusParameters;8import org.testng.annotations.DataProvider;9import org.testng.annotations.Test;10public class 3 extends TestNGCitrusTestRunner {11 @CitrusParameters("testName")12 @Test(dataProvider = "testDataProvider", description="Test to execute PLSQL")13 public void 3(String testName) {14 description("Test to execute PLSQL");15 variable("variable", "value");16 executePLSQL(new ExecutePLSQLBuilder()17 .sqlResource("classpath:com/consol/citrus/dsl/builder/plsql.sql")18 .statement("SELECT * FROM TEST_TABLE")19 .statement("UPDATE TEST_TABLE SET TEST_COLUMN = 'test'")20 .statement("DELETE FROM TEST_TABLE")21 .statement("INSERT INTO TEST_TABLE VALUES(1, 'foo')")22 .statement("INSERT INTO TEST_TABLE VALUES(2, 'bar')")23 .statement("INSERT INTO TEST_TABLE VALUES(3, 'foobar')")24 .statement("SELECT * FROM TEST_TABLE")25 .statement("SELECT * FROM TEST_TABLE WHERE TEST_COLUMN = 'foo'")26 .statement("SELECT * FROM TEST_TABLE WHERE TEST_COLUMN = 'bar'")27 .statement("SELECT * FROM TEST_TABLE WHERE TEST_COLUMN = 'foobar'")28 .statement("SELECT * FROM TEST_TABLE WHERE TES

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1import com.consol.citrus.dsl.builder.ExecutePLSQLBuilder;2import com.consol.citrus.dsl.runner.TestRunner;3import com.consol.citrus.dsl.runner.TestRunnerSupport;4import org.testng.annotations.Test;5public class ExecutePLSQLBuilderTest {6 public void testExecutePLSQLBuilder() {7 TestRunner runner = new TestRunnerSupport();8 runner.run(new ExecutePLSQLBuilder()9 .sqlResource("classpath:com/consol/citrus/dsl/builder/execute_plsql.sql")10 .statement("select * from test_table")11 .statement("select * from test_table where id = 1")12 .statement("select * from test_table where id = 2")13 .statement("select * from test_table where id = 3")14 .statement("select * from test_table where id = 4")15 .statement("select * from test_table where id = 5")16 .statement("select * from test_table where id = 6")17 .statement("select * from test_table where id = 7")18 .statement("select * from test_table where id = 8")19 .statement("select * from test_table where id = 9")20 .statement("select * from test_table where id = 10")21 .statement("select * from test_table where id = 11")22 .statement("select * from test_table where id = 12")23 .statement("select * from test_table where id = 13")24 .statement("select * from test_table where id = 14")25 .statement("select * from test_table where id = 15")26 .statement("select * from test_table where id = 16")27 .statement("select * from test_table where id = 17")28 .statement("select * from test_table where id = 18")29 .statement("select * from test_table where id = 19")30 .statement("select * from test_table where id = 20")31 .statement("select * from test_table where id = 21")32 .statement("select * from test_table where id = 22")33 .statement("select * from test_table where id = 23")34 .statement("select * from test_table where id = 24")35 .statement("select * from test_table where id = 25")

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.dsl.builder;2import java.util.ArrayList;3import java.util.List;4import java.util.Map;5import com.consol.citrus.TestAction;6import com.consol.citrus.actions.ExecutePLSQLAction;7import com.consol.citrus.context.TestContext;8public class ExecutePLSQLBuilder extends AbstractTestActionBuilder<ExecutePLSQLAction> {9 public ExecutePLSQLBuilder() {10 super(new ExecutePLSQLAction());11 }12 public ExecutePLSQLBuilder sqlStatement(String sqlStatement) {13 action.setSqlStatement(sqlStatement);14 return this;15 }16 public ExecutePLSQLBuilder sqlStatementResourcePath(String sqlStatementResourcePath) {17 action.setSqlStatementResourcePath(sqlStatementResourcePath);18 return this;19 }20 public ExecutePLSQLBuilder sqlStatementResourcePath(String sqlStatementResourcePath, String charset) {21 action.setSqlStatementResourcePath(sqlStatementResourcePath);22 action.setCharset(charset);23 return this;24 }25 public ExecutePLSQLBuilder sqlStatementResourcePath(String sqlStatementResourcePath, String charset, boolean failOnResourceNotFound) {26 action.setSqlStatementResourcePath(sqlStatementResourcePath);27 action.setCharset(charset);28 action.setFailOnResourceNotFound(failOnResourceNotFound);29 return this;30 }31 public ExecutePLSQLBuilder sqlStatementResourcePath(String sqlStatementResourcePath, String charset, boolean failOnResourceNotFound, boolean autoDetectCharset) {32 action.setSqlStatementResourcePath(sqlStatementResourcePath);33 action.setCharset(charset);34 action.setFailOnResourceNotFound(failOnResourceNotFound);35 action.setAutoDetectCharset(autoDetectCharset);36 return this;37 }

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.dsl.builder;2import java.util.ArrayList;3import java.util.List;4import com.consol.citrus.actions.ExecutePLSQLAction;5import com.consol.citrus.dsl.runner.TestRunner;6import com.consol.citrus.exceptions.CitrusRuntimeException;7import com.consol.citrus.message.MessageType;8import com.consol.citrus.testng.AbstractTestNGUnitTest;9import com.consol.citrus.validation.builder.DefaultMessageBuilder;10import com.consol.citrus.validation.builder.StaticMessageContentBuilder;11import com.consol.citrus.validation.script.ScriptValidationContext;12import org.mockito.Mockito;13import org.testng.Assert;14import org.testng.annotations.Test;15import static org.mockito.Mockito.*;16public class ExecutePLSQLBuilderTest extends AbstractTestNGUnitTest {17 private ExecutePLSQLAction.Builder builder = new ExecutePLSQLAction.Builder();18 public void testExecutePLSQLBuilder() {19 builder = new ExecutePLSQLAction.Builder()20 .statement("select * from dual")21 .statementResourcePath("classpath:com/consol/citrus/dsl/builder/test.sql")22 .statementResource("classpath:com/consol/citrus/dsl/builder/test.sql")23 .statementData("select * from dual")24 .statementDataResourcePath("classpath:com/consol/citrus/dsl/builder/test.sql")25 .statementDataResource("classpath:com/consol/citrus/dsl/builder/test.sql")26 .statementDataFile("classpath:com/consol/citrus/dsl/builder/test.sql")27 .statementDataFile("classpath:com/consol/citrus/dsl/builder/test.sql")28 .statementData("select * from dual")29 .statementData("select * from dual")30 .statementData(new String[] { "select * from dual", "select * from dual" })31 .statementData(new String[] { "select * from dual", "select * from dual" })32 .statementData(new String[] { "select * from dual", "select * from dual" })33 .statementData(new String[] { "select * from dual", "select * from dual" })34 .statementData(new ArrayList<String>() { { add("select * from dual"); add("select * from dual"); } })35 .statementData(new ArrayList<String>() { { add("select * from dual"); add("select

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.dsl.builder;2import com.consol.citrus.dsl.builder.ExecutePLSQLBuilder;3import com.consol.citrus.dsl.runner.TestRunner;4public class ExecutePLSQLBuilderTest {5 public static void main(String[] args) {6 TestRunner builder = new TestRunner();7 builder.executePLSQL(new ExecutePLSQLBuilder() {8 public void configure() {9 dataSource("myDataSource");10 statement("SELECT * FROM EMPLOYEE");11 validate("EMP_ID", "1");12 validate("EMP_NAME", "John");13 }14 });15 }16}17package com.consol.citrus.dsl.builder;18import com.consol.citrus.dsl.builder.ExecutePLSQLBuilder;19import com.consol.citrus.dsl.runner.TestRunner;20public class ExecutePLSQLBuilderTest {21 public static void main(String[] args) {22 TestRunner builder = new TestRunner();23 builder.executePLSQL(new ExecutePLSQLBuilder() {24 public void configure() {25 dataSource("myDataSource");26 statement("SELECT * FROM EMPLOYEE");27 validate("EMP_ID", "1");28 validate("EMP_NAME", "John");29 validate("EMP_SALARY", "1000");30 }31 });32 }33}34package com.consol.citrus.dsl.builder;35import com.consol.citrus.dsl.builder.ExecutePLSQLBuilder;36import com.consol.citrus.dsl.runner.TestRunner;37public class ExecutePLSQLBuilderTest {38 public static void main(String[] args) {39 TestRunner builder = new TestRunner();40 builder.executePLSQL(new ExecutePLSQLBuilder() {41 public void configure() {42 dataSource("myDataSource");43 statement("SELECT * FROM EMPLOYEE");44 validate("EMP_ID", "1");45 validate("EMP_NAME", "John");46 validate("EMP_SALARY", "1000");47 validate("EMP_DEPARTMENT", "IT");48 }49 });50 }51}

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.dsl.builder;2import com.consol.citrus.dsl.runner.TestRunner;3import java.util.HashMap;4import java.util.Map;5public class ExecutePLSQLBuilder {6private TestRunner runner;7public ExecutePLSQLBuilder(TestRunner runner) {8this.runner = runner;9}10public ExecutePLSQLBuilder plsql(String plsql) {11runner.executePLSQL(plsql);12return this;13}14public ExecutePLSQLBuilder sqlResource(String sqlResourcePath) {15runner.executePLSQLResource(sqlResourcePath);16return this;17}18public ExecutePLSQLBuilder sqlResource(String sqlResourcePath, Map<String, Object> variables) {19runner.executePLSQLResource(sqlResourcePath, variables);20return this;21}22public ExecutePLSQLBuilder sqlResource(String sqlResourcePath, String variable, Object value) {23Map<String, Object> variables = new HashMap<String, Object>();24variables.put(variable, value);25runner.executePLSQLResource(sqlResourcePath, variables);26return this;27}28public ExecutePLSQLBuilder sqlResource(String sqlResourcePath, String variable1, Object value1, String variable2, Object value2) {29Map<String, Object> variables = new HashMap<String, Object>();30variables.put(variable1, value1);31variables.put(variable2, value2);32runner.executePLSQLResource(sqlResourcePath, variables);33return this;34}35public ExecutePLSQLBuilder sqlResource(String sqlResourcePath, String variable1, Object value1, String variable2, Object value2, String variable3, Object value3) {36Map<String, Object> variables = new HashMap<String, Object>();37variables.put(variable1, value1);38variables.put(variable2, value2);39variables.put(variable3, value3);40runner.executePLSQLResource(sqlResourcePath, variables);41return this;42}43public ExecutePLSQLBuilder sqlResource(String sqlResourcePath, String variable1, Object value1, String variable2, Object value2, String variable3, Object value3, String variable4, Object value4) {44Map<String, Object> variables = new HashMap<String, Object>();45variables.put(variable1, value1);46variables.put(variable2, value2);47variables.put(variable3, value3);48variables.put(variable4, value4);49runner.executePLSQLResource(sqlResourcePath, variables);50return this;51}52public ExecutePLSQLBuilder sqlResource(String sqlResourcePath, String variable1, Object value1, String variable2, Object value2, String variable3, Object value

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1public class 3 {2 public static void main(String[] args) {3 Citrus citrus = Citrus.newInstance(CitrusSettingsBuilder.class);4 citrus.run(new TestActionBuilder() {5 public void execute(TestContext context) {6 ExecutePLSQLBuilder executePLSQLBuilder = new ExecutePLSQLBuilder();7 executePLSQLBuilder.statement("BEGIN\n" +8 " DBMS_OUTPUT.PUT_LINE('Hello World');\n" +9 "END;");10 executePLSQLBuilder.validate("Hello World");11 executePLSQLBuilder.execute(context);12 }13 });14 }15}16public class 4 {17 public static void main(String[] args) {18 Citrus citrus = Citrus.newInstance(CitrusSettingsBuilder.class);19 citrus.run(new TestActionBuilder() {20 public void execute(TestContext context) {21 ExecutePLSQLBuilder executePLSQLBuilder = new ExecutePLSQLBuilder();22 executePLSQLBuilder.statement("BEGIN\n" +23 " DBMS_OUTPUT.PUT_LINE('Hello World');\n" +24 "END;");25 executePLSQLBuilder.validate("Hello World");26 executePLSQLBuilder.validate("Hello World", "Hello World");27 executePLSQLBuilder.execute(context);28 }29 });30 }31}32public class 5 {33 public static void main(String[] args) {34 Citrus citrus = Citrus.newInstance(CitrusSettingsBuilder.class);35 citrus.run(new TestActionBuilder() {36 public void execute(TestContext context) {37 ExecutePLSQLBuilder executePLSQLBuilder = new ExecutePLSQLBuilder();38 executePLSQLBuilder.statement("BEGIN\n" +39 " DBMS_OUTPUT.PUT_LINE('Hello World');\n" +40 "END;");41 executePLSQLBuilder.validate("Hello World");42 executePLSQLBuilder.validate("Hello World", "Hello World");43 executePLSQLBuilder.validate("Hello World", "Hello World", "Hello World");44 executePLSQLBuilder.execute(context);45 }46 });47 }48}

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.dsl.builder;2import java.util.ArrayList;3import java.util.List;4import com.consol.citrus.dsl.runner.TestRunner;5import com.consol.citrus.sql.builder.ExecutePLSQLBuilder;6public class ExecutePLSQLBuilderSample {7 public static void main(String[] args) {8 TestRunner runner = new TestRunner();9 List<String> statements = new ArrayList<String>();10 statements.add("DELETE FROM EMPLOYEE");11 statements.add("INSERT INTO EMPLOYEE (ID, FIRSTNAME, LASTNAME) VALUES (1, 'John', 'Doe')");12 runner.sql(new ExecutePLSQLBuilder()13 .statements(statements));14 }15}16package com.consol.citrus.dsl.builder;17import java.util.ArrayList;18import java.util.List;19import com.consol.citrus.dsl.runner.TestRunner;20import com.consol.citrus.sql.builder.ExecuteSQLBuilder;21public class ExecuteSQLBuilderSample {22 public static void main(String[] args) {23 TestRunner runner = new TestRunner();24 List<String> statements = new ArrayList<String>();25 statements.add("DELETE FROM EMPLOYEE");26 statements.add("INSERT INTO EMPLOYEE (ID, FIRSTNAME, LASTNAME) VALUES (1, 'John', 'Doe')");27 runner.sql(new ExecuteSQLBuilder()28 .statements(statements));29 }30}31package com.consol.citrus.dsl.builder;32import com.consol.citrus.dsl.runner.TestRunner;33import com.consol.citrus.sql.builder.ExecuteSQLQueryBuilder;34public class ExecuteSQLQueryBuilderSample {35 public static void main(String[] args) {36 TestRunner runner = new TestRunner();37 runner.sql(new ExecuteSQLQueryBuilder()38 .statement("SELECT * FROM EMPLOYEE")39 .validate("ID", "1")40 .validate("FIRSTNAME", "John")41 .validate("LASTNAME", "Doe"));42 }43}44package com.consol.citrus.dsl.builder;45import com.consol

Full Screen

Full Screen

ExecutePLSQLBuilder

Using AI Code Generation

copy

Full Screen

1public class 3 {2 public void 3() {3 variable("id", "3");4 variable("name", "3");5 variable("price", "3");6 variable("quantity", "3");7 variable("total", "9");8 variable("result", "9");9 sql(builder -> builder10 .statement("INSERT INTO PRODUCT VALUES (:id, :name, :price, :quantity, :total)")11 .parameter("id", "${id}")12 .parameter("name", "${name}")13 .parameter("price", "${price}")14 .parameter("quantity", "${quantity}")15 .parameter("total", "${total}")16 .dataSource("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle")17 );18 sql(builder -> builder19 .statement("SELECT * FROM PRODUCT WHERE ID = :id")20 .parameter("id", "${id}")21 .dataSource("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle")22 .validator(resultSet -> resultSet23 .row(0, row -> row24 .values("3", "3", "3", "3", "9")25 );26 sql(builder -> builder27 .statement("UPDATE PRODUCT SET TOTAL = :total WHERE ID = :id")28 .parameter("id", "${id}")29 .parameter("total", "${result}")30 .dataSource("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle")31 );32 sql(builder -> builder33 .statement("SELECT * FROM PRODUCT WHERE ID = :id")34 .parameter("id", "${id}")35 .dataSource("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle")36 .validator(resultSet -> resultSet37 .row(0, row -> row38 .values("3", "3", "3", "3", "9")39 );40 sql(builder -> builder41 .statement("DELETE FROM PRODUCT WHERE ID = :id")42 .parameter("id", "${id}")43 .dataSource("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle")44 );45 sql(builder -> builder46 .statement("SELECT * FROM PRODUCT WHERE ID = :id")47 .parameter("id", "${id

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 Citrus automation tests on LambdaTest cloud grid

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

Test Your Web Or Mobile Apps On 3000+ Browsers

Signup for free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful