Skip to content

Instantly share code, notes, and snippets.

View mfaisalkhatri's full-sized avatar
🎯
Focusing

Mohammad Faisal Khatri mfaisalkhatri

🎯
Focusing
View GitHub Profile
@mfaisalkhatri
mfaisalkhatri / testng-saucedemo.xml
Created December 6, 2022 06:41
Example testng xml file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Sauce Demo Website Tests" parallel="tests" thread-count="4" verbose="2">
<test name="selenium 4 Tests with Chrome Browser">
<parameter name="browser" value="chrome"/>
<classes>
<class name="io.github.mfaisalkhatri.tests.saucedemo.SauceDemoTests">
<methods>
<include name="loginSauceDemoTest"/>
<include name="logOutSauceDemoTest"/>
@mfaisalkhatri
mfaisalkhatri / testng.xml
Created December 6, 2022 06:23
Using suite-files tag in testng xml file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Selenium 4 POC Tests ">
<suite-files>
<suite-file path="testng-saucedemo.xml"/>
<suite-file path="testng-automationpractice.xml"/>
<suite-file path="testng-theinternet.xml"/>
<suite-file path="testng-juice-shop.xml"/>
<suite-file path="testng-lambdatestecommerce.xml"/>
<suite-file path="testng-seleniumgrid-theinternet.xml"/>
@mfaisalkhatri
mfaisalkhatri / AppiumTest.java
Created October 15, 2022 06:03
Appium Tests
public class AppiumTest extends BaseTest{
@Test
public void appiumServerTest () {
System.out.println ("Server and Android Driver started successfully!!");
}
}
@mfaisalkhatri
mfaisalkhatri / BaseTest.java
Created October 15, 2022 05:59
Base Test class
import static io.github.mfaisalkhatri.drivers.DriverManager.createAndroidDriver;
import static io.github.mfaisalkhatri.drivers.DriverManager.quitSession;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
public class BaseTest {
@BeforeClass
public void testSetup() {
@mfaisalkhatri
mfaisalkhatri / DriverManager.java
Created October 15, 2022 05:15
Driver Manager class
public class DriverManager {
private static final String APP_PATH = System.getProperty ("user.dir") + "\\src\\test\\resources\\app\\webdriverio-app.apk";
private static final ThreadLocal<AppiumDriver> DRIVER = new ThreadLocal<> ();
private static final Logger LOG = LogManager.getLogger ("DriverManager.class");
private static AppiumDriverLocalService service;
public static void createAndroidDriver () {
startServer ();
@mfaisalkhatri
mfaisalkhatri / AndroidDriver.java
Created October 15, 2022 05:08
Create Android Driver
private static AppiumDriverLocalService service;
public static void createAndroidDriver () {
startServer ();
DRIVER.set (new AndroidDriver (service.getUrl (), setCapabilities ()));
setupDriverTimeouts ();
}
@mfaisalkhatri
mfaisalkhatri / DesiredCaps.java
Created October 15, 2022 05:07
Desired Capabilities for Appium
private static DesiredCapabilities setCapabilities () {
DesiredCapabilities capabilities = new DesiredCapabilities ();
capabilities.setCapability (MobileCapabilityType.PLATFORM_NAME, Platform.ANDROID);
capabilities.setCapability (MobileCapabilityType.DEVICE_NAME, "Pixel_5_API_30");
capabilities.setCapability (MobileCapabilityType.APP, APP_PATH);
capabilities.setCapability ("appPackage", "com.wdiodemoapp");
capabilities.setCapability ("appActivity", "com.wdiodemoapp.MainActivity");
capabilities.setCapability ("noReset", false);
capabilities.setCapability (MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
return capabilities;
@mfaisalkhatri
mfaisalkhatri / AppiumServerStart.java
Created October 15, 2022 03:51
Start Appium server Programmatically
public static void startServer () {
AppiumServiceBuilder builder = new AppiumServiceBuilder ();
builder.withIPAddress ("127.0.0.1")
.usingPort (4723)
.withAppiumJS (
new File ("C:\\Users\\Windows\\AppData\\Roaming\\npm\\node_modules\\appium\\build\\lib\\main.js"))
.usingDriverExecutable (new File ("E:\\Program Files\\nodejs\\node.exe"))
.withArgument (BASEPATH, "/wd/hub")
.withArgument (GeneralServerFlag.SESSION_OVERRIDE)
.withArgument (GeneralServerFlag.LOG_LEVEL, "debug");
@mfaisalkhatri
mfaisalkhatri / RegisterUserWithBuilder.java
Created September 10, 2022 05:13
Test register user with builder pattern
@Test
public void testRegisterUserWithBuilder () {
RegisterUserWithBuilder registerUserWithBuilder = getUserData ();
System.out.println (registerUserWithBuilder.getFirstName ());
System.out.println (registerUserWithBuilder.getLastName ());
System.out.println (registerUserWithBuilder.getAddress ());
System.out.println (registerUserWithBuilder.getCity ());
System.out.println (registerUserWithBuilder.getState ());
System.out.println (registerUserWithBuilder.getCountry ());
System.out.println (registerUserWithBuilder.getMobileNumber ());
@mfaisalkhatri
mfaisalkhatri / DataBuilder.java
Created September 9, 2022 17:59
Data Builder
public class DataBuilder {
private static final Faker FAKER = Faker.instance ();
public static RegisterUserWithBuilder getUserData () {
return RegisterUserWithBuilder.builder ()
.firstName (FAKER.name ()
.firstName ())
.lastName (FAKER.name ()
.lastName ())