Example 1: how do you implement data driven testing in framework
HOW DO YOU IMPLEMENT DATA DRIVEN TESTING IN YOUR FRAMEWORK?
TESTNG:
1. @DataProvider annotation
2. Excel file with the help of Apache POI
3. JSON or CSV file for API testing
4. Data which comes from Database and stores in collections
To use the DataProvider feature in the test cases,
you have to declare a method annotated by @DataProvider
and then use the said method in the test method
using the ‘dataProvider‘ attribute
in the @Test annotation.
CUCUMBER / JUNIT:
1. Scenario outline
2. Excel file with the help of Apache POI
3. JSON or CSV file for API testing
4. Data which comes from Database and stores in collections
5. @ParameterizedTest --> If you use JUnit-5
Examples for ParameterizedTest:
@ParameterizedTest
@ValueSource(ints = {1,2,3,4}) ==>
it can be ints/strings/booleans/chars (those are keywords)
public void validateRegionNameTest1(int id) {
xxxxx
}
@ParameterizedTest
@CsvSource({
"1, Europe",
"2, Americas",
"3, Asia",
"4, Middle East and Africa"})
public void validateRegionNameTest2(int id, String name){
xxxx
}
@ParameterizedTest
@CsvFileSource(resources = "/regions.csv")
@ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
@MethodSource("sumProvider")
@ParameterizedTest(name = "{index} => pet=''{0}''")
@EnumSource(value = Pet.class, names = {"CAT"})
@ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
@ArgumentsSource(CustomArgumentProvider.class)
Example 2: data driven testing framework
HOW DO YOU IMPLEMENT DATA DRIVEN TESTING IN YOUR FRAMEWORK?
TESTNG:
1. @DataProvider annotation
2. Excel file with the help of Apache POI
3. JSON or CSV file for API testing
4. Data which comes from Database and stores in collections
To use the DataProvider feature in the
test cases, you have to declare a method
annotated by @DataProvider and then use
the said method in the test method using
the ‘dataProvider‘ attribute in the @Test annotation.
CUCUMBER / JUNIT:
1. Scenario outline
2. Excel file with the help of Apache POI
3. JSON or CSV file for API testing
4. Data which comes from Database and stores in collections
5. @ParameterizedTest --> If you use JUnit-5
Examples for ParameterizedTest:
@ParameterizedTest
@ValueSource(ints = {1,2,3,4}) ==>
it can be ints/strings/booleans/chars (those are keywords)
public void validateRegionNameTest1(int id) {
xxxxx
}
@ParameterizedTest
@CsvSource({
"1, Europe",
"2, Americas",
"3, Asia",
"4, Middle East and Africa"})
public void validateRegionNameTest2(int id, String name){
xxxx
}
@ParameterizedTest
@CsvFileSource(resources = "/regions.csv")
@ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
@MethodSource("sumProvider")
@ParameterizedTest(name = "{index} => pet=''{0}''")
@EnumSource(value = Pet.class, names = {"CAT"})
@ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
@ArgumentsSource(CustomArgumentProvider.class)
Example 3: data driven testing
Whenever a functionality or a module in an app
requires testing with multiple sets of data (Parametrization),
Multiple inputs then we need to perform data driven testing and
automation.
These scenarios are one of the things That must be automated.
I would do it by seperating Test data from code and stored into external
sources like
Cucumber Examples table, Excel files, CSV files, Database.
Data driven testing has lots of benefits like
More organized, Data centralized, and so on