
Master Selenium and Java with TestNG, enhanced by ChatGPT for automation testing; build robust, data-driven, multi-environment frameworks in IntelliJ, with cross-browser, localization, and CI via Jenkins.
Master Selenium, Java, and test automation using ChatGPT AI techniques to design robust automated test suites, including debugging, logging, reporting, parallel and cross-browser testing, localization testing in CI/CD.
Meet instructor Shirish and explore a comprehensive Selenium, Java, and TestNG automation course, including ChatGPT-driven test code generation, data generation, result analysis, debugging, and practical automated testing.
Set up your development environment for selenium automation by selecting a supported OS (Windows, Ubuntu 18.04–22.04, macOS 10–13) and installing JDK 17, Maven, and IntelliJ idea.
Set up a Windows development environment by installing JDK 17, Maven, and IntelliJ IDEA Community Edition, using the Adoption Net MSI, Chocolatey, and verification steps to confirm installations.
Set up a Linux Ubuntu development environment by installing JDK 17, Maven, and the IntelliJ IDEA Community Edition; configure JAVA_HOME and PATH, and verify the installations.
Set up a macOS development environment by installing JDK 17, Maven, and IntelliJ IDEA community edition from the course guides and using Homebrew, then verify installations and follow troubleshooting tips.
Set up your development environment using installation guides and troubleshooting tips for Windows, Linux, and Mac OS. Review the IntelliJ IDEA troubleshooting guide to ensure Java projects build correctly.
Create a new Maven project in IntelliJ using a Quickstart archetype. Import existing Maven projects, configure groupId and artifactId, set Java SDK 17, and run tests.
Explore the fundamentals of object oriented programming and Java basics, including arithmetic, unary and bitwise operators, conditionals, loops, datetime operations, and exception handling.
Explore object oriented programming by building programs with classes and objects, using variables, methods, and constructors, and mastering abstraction, encapsulation, inheritance, and polymorphism.
Abstraction in object oriented programming hides details, letting you interact with objects at a level. In Java, base classes derive entities such as employee and vehicle, with car and truck.
Encapsulation bundles data and methods into an object, reducing complexity and enabling modularity by hiding details; in Java, private data uses getters and setters for make and model.
Explore inheritance in Java: derive child classes from a base superclass to reuse code and enable polymorphism, with safe relationships illustrated by number, car, and web page hierarchies.
Discover the two forms of polymorphism in Java—static polymorphism and dynamic polymorphism—and examine each type in detail as the fourth principle of object oriented programming.
Explore static polymorphism at compile time via Java method overloading—the same name with different parameters—using a register car example with one string parameter and another with int year and location.
Explore dynamic polymorphism in Java by overriding an abstract vehicle method in car and truck. See how a vehicle reference invokes the overridden method at runtime, illustrating adaptable, maintainable code.
Learn Java's basic arithmetic operators—addition, subtraction, multiplication, division, and modulus—and implement and run code in IntelliJ to verify results, highlighting how each operation yields expected values.
Explore unary operators in Java, including plus, minus, increment, decrement, negation, and bitwise not, with prefix and postfix forms demonstrated in IntelliJ.
Explore how Java uses equality and relational operators to compare values. Implement equals, not equal to, less than, greater than, and their equal-to forms in code.
Master conditional operators in Java, including or, and, and the ternary operator, with switch statements and instance of operator examples demonstrated in IntelliJ.
Learn how the instanceof operator in Java checks object types or interfaces using a vehicle base class with car and truck subclasses, including inheritance and null behavior.
Discover how bitwise and bitshift operators in Java manipulate bits of integers, perform operations on integral types, and access low-level data representations for memory management.
Explore Java conditional flow statements, including if, switch, and the ternary operator, with a practical A versus random B example demonstrating if-else and equality checks.
Explore Java loop fundamentals: for, enhanced for, while, and do-while loops, with practical examples that print numbers and array elements to the console.
Master java i/o basics by reading and writing small files with the files class, and handling large files with buffered reader and buffered writer using utf eight encoding.
Explore how try-catch-finally handles io exceptions and how to throw custom exceptions, illustrated by reading a non-existent file with a BufferedReader.
Explore Java date time operations with the Java time package, including local date time, plus/minus, formatting, and temporal adjusters for first day of month and last day of year.
Explore Java collections, generics, and lambda expressions to build type-safe data structures and perform bulk operations on collections. Learn how aggregate operations optimize data processing in Java.
Discover Java collections: sets with no duplicates and union and intersection tests, lists with duplicates and random access, queues with fifo behavior, and maps for key-value storage.
Explore Java collections such as set, list, queue, and deck, and master operations like add, clear, contains, remove, stream, and to array; understand maps and hash maps for keys.
Explore the Java set interface with Hashset, tree set, and linked Hashset to store unique elements, remove duplicates from lists, and compute intersections using retain all.
Explore how lists in Java store multiple elements in order and perform adding, removing, sorting, and other operations to manage in-memory test data for automation testing of web forms.
Learn how Java queues manage tasks by enqueuing at the end and dequeuing from the front, using linked lists and priority queues to help a server process requests in batches.
Explore the java map interface and implementations like hash map, tree map, and linked hash map; learn fast key-based retrieval and using maps to find duplicates.
Develop type-safe Java code with generics to reduce casting and duplication, using type parameters like T and E for versatile methods across strings, integers, and floats.
Explore lambda expressions and functional interfaces in Java eight to reduce boilerplate and improve readability. Learn and apply predicate, supplier, function, and two int function through practical examples and streams.
Discover how Java strings enable declarative, lazy stream processing that groups, filters, and maps data. Learn through examples of aggregation, duplicates, and lambda-driven data manipulation.
Develop data handling skills in Java by manipulating CSV and Excel files, extracting data from PDF files, performing CRUD operations on SQL databases, and applying regular expressions for text manipulation.
Learn to read and write CSV and Excel data in Java to create test datasets, manage usernames and URLs, and validate results with SQL and PDFs.
Maven streamlines dependency management and builds in a Java project, providing a consistent structure, easy customization, and automated builds that promote higher quality code and standardized practices.
Read and write text files in Java using buffered reader and buffered writer for small and large files, and implement a single maintainable text file I/O utility for automation frameworks.
Learn to read and write CSV files in Java with super CSV and Open CSV, using headers, cell processors, validation, and data types like booleans, integers, doubles, and emails.
Learn to read Excel data in Java with the Apache POI library, including reading a named sheet, iterating rows and cells, and handling numeric, boolean, and string types.
Learn to work with PDFs in Java using Apache PDFBox to extract metadata and text, including author and title, per page.
Learn SQLite’s serverless, lightweight relational database and its features, install DB Browser for SQLite, create a sample database with a customer table, and perform CRUD operations.
Learn to use the jdbc library to connect to sqlite and other databases, execute sql queries, and perform crud operations via a customer dao with batch transactions and result-set mapping.
Explore how Java supports regular expressions to search, replace, and validate text, using patterns, capture groups, and a regex processor to validate phone numbers and emails.
Explore testing features for automation, including annotations, XML configuration, parameterized and data-driven tests with Excel, test grouping, parallel execution, listener interfaces, dependencies, and reporting.
Explore common test annotations, focusing on the test annotation that marks public void methods as test methods, enabling test execution by the test engine and grouping multiple tests per class.
Use TestNG before suite and after suite annotations to run setup and teardown tasks, such as initializing databases, closing resources, and logging results or configuring test data for different runs.
Explore how before test and after test annotations in TestNG set up and tear down test methods, including database connections, environment setup, variable initialization, and resource cleanup.
Explore TestNG before class and after class annotations to set up and tear down the test class environment, including initializing connections and objects and cleaning up resources after tests.
Explore TestNG before method and after method annotations for setup and teardown. See the execution order with before class and after class and a practical IntelliJ test example.
Master XML based test configuration in selenium test automation to control test selection, repetitions, and order, using a file to enable data driven tests, dependencies, and parallel execution across environments.
define a sample test suite using xml based configuration from TestNG, outlining two tests for a web app: user account tests and purchase tests; explain suite, test, and class tags.
Learn how parameterized tests use a browser parameter to run the same test class twice, once with Chrome and once with Firefox, increasing coverage and aiding debugging.
Use TestNG's parameters annotation to pass values from an XML file or the command line into a test method, enabling parameterized tests without modifying Java source files.
Create one xml per environment to specify environment-specific parameters like environment and base url. Enable running regression tests across development, staging, and other environments by wiring these parameters into tests.
Configure environment specific xml configurations for staging and development in the test suite, passing environment and base url parameters to tests and validating correct parameter propagation.
Learn how to implement data-driven tests with a registration data provider, executing test sign up users within a regression test suite defined by an XML file.
Use the TestNG data provider annotation to supply test data to a method, enabling multiple data sets and repeated runs via a two-dimensional object array or a custom class.
Use data-driven testing in TestNG to read signup data from an Excel sheet via a data provider configured in XML. Configure sheet name, columns, and file path with Apache POI.
Group tests with TestNG to run specified groups such as regression and smoke, using XML include configurations to execute only relevant tests within large suites.
Exclude test classes with a test xml to skip the smoke group and run only the included regression group.
Learn how to group tests in TestNG using regular expressions in XML, using the mobile.* pattern to include tests whose groups start with mobile.
Explore TestNG before and after groups annotations, running setup and cleanup for specified groups with mobile native app and mobile web app examples, plus class-level vs method-level group precedence.
Utilize TestNG's factory annotation to generate and run multiple test cases from one class by creating permutations of browsers and platforms through a factory method, enabling parallel, parameterized testing.
Master test efficiency with TestNG parallel testing, reducing test-suite time and boosting coverage by running multiple tests simultaneously on large and complex projects.
Explore parallel testing strategies in TestNG by running tests at method, class, or test levels, including data provider tests, using parallel attributes in the TestNG XML.
Explore class-level parallelism in TestNG by setting parallel equals classes and thread-count to two in the xml, then run two test classes in parallel.
Explore method-level parallelism in TestNG by configuring parallel equals methods in the XML, setting invocation counts, timeouts, and thread pool sizes to run test methods on multiple threads.
demonstrate test tag level parallelism by setting parallel equals test in the TestNG XML file, using two threads across test tag groups and illustrating data provider parallelism.
Enable data provider parallelism by setting parallel equals methods and parallel true in the data provider, and control threads with the test XML thread count to run four threads concurrently.
Explore how TestNG listener interfaces customize test execution by hooking into pre- and post-test events, such as test listener, invoked method listener, configuration listener, and annotation transformer, to log results.
Explore TestNG dependency testing using depends on methods and depends on groups to ensure test order, with examples showing registration before login and payments before order processing.
Explore TestNG reporting features with html and xml reports, real-time test progress, and data visualization, plus ci/cd integration with Jenkins, Maven, and Allure.
Explore dependency injection in testing to connect components and enable loose coupling, testability, and reusability, using native and external frameworks with juice modules and juice annotations.
Explore native dependency injection in TestNG, injecting test context and method objects into before/after hooks and data providers to access test metadata and drive logic.
Learn pure Guice dependency injection for tests, binding a test data generator to staging or production implementations and injecting via modules and an injector in test setup.
Explore TestNG's guice dependency injection, using modules or a module factory to switch staging or production data, and leverage annotations, xml configuration, parameterized tests.
Explore testing and logging with testing listeners to enable custom logging of test results. Build a custom logger and examine built-in logging and reporting for test reporters; explore external libraries.
Explore how logging records events during program execution and in Selenium automation test suites to track progress, diagnose failures, monitor the test environment, and optimize test steps.
Explore how to log test progress with TestNG listeners, capturing start, finish, success, and failure events, using a thread-safe log writer that appends to a log file during parallel tests.
Integrate Maven Surefire plugin into your Maven project to execute TestNG tests and generate html and xml reports, enabling easy Jenkins continuous integration with flexible testng.xml selection via environment variables.
Harness built-in test loggers to log test runs, including duration, status, and errors, diagnose problems, and generate HTML reports for sharing with stakeholders.
Explore how TestNG reporters generate HTML, XML, and text reports that summarize tests executed, passed, failed, and total time, including parameters and exceptions.
Design and implement custom loggers for TestNG, including a custom file logger with configurable levels, a singleton log manager, and reflection-based per-class loggers for debugging and performance metrics.
Explore Java logging libraries like Logfile J2, Self Forge, Apache Commons Logging, Jewel, and Juul; learn parameterized logging, message formatting, log levels, and framework switching via SLA.
Explore log4j2 in Java with console and rolling file appenders and pattern layouts. Set logging levels, enable multithreaded and thread-safe logging, and review rollover policies.
Slf4j acts as a simple logging facade, letting you switch frameworks without changing business code. Integrate a logging interface from the start to keep code maintainable.
Explore test result reporting for Selenium and TestNG: create HTML reports via XSLT transformations of XML output from the test engine and integrate libraries with a law framework example.
Compare automation test results across runs, platforms, and versions to spot issues. Use reports to measure reliability and accuracy and diagnose abnormal behavior across environments and releases.
Learn how to transform TestNG XML reports into custom HTML using XSLT and a predefined Excel stylesheet, with Saxon library, mvn test, and interactive styling.
Explore open source ExtentReports libraries for Java test automation, delivering clear, comprehensive reports with failed tests, screenshots, error messages, stack traces, test progress, execution time, and customizable themes.
The Allure framework is an open source, lightweight test reporting tool that generates readable reports and integrates with TestNG, Selenium, JUnit 5, and other automation tools using rich annotations.
Kick off your Selenium programming journey by grounding automation tests in HTML, CSS, and JavaScript basics, exploring testing best practices and essential tools for Selenium automation scripts.
Master the prerequisites for Selenium automation by learning HTML, CSS, and JavaScript to interact with web elements, debug scripts, and build robust tests guided by testing methodologies and best practices.
Explore the HTML playground set up for this course to practice HTML, CSS, JavaScript, and selenium testing, including forms, iframes, shadow dom, and locating with XPath, CSS, and ID locators.
Learn core HTML tags and attributes, from HTML, head, and body to headings, paragraphs, forms, inputs, links, images, tables, and lists, with live inspection and Shadow DOM preview.
Explore the Shadow DOM, a new HTML feature that encapsulates a sub-tree for self-contained components. See how Selenium enables working with the Shadow DOM's independent DOM tree.
Explore css basics, including font sizing and families, h1 scaling, the box model with margins padding and borders, pseudo-classes, background colors and images, and flexbox for responsive layouts.
Learn how JavaScript uses var and const for variables, with const being non-reassignable and var reassignable. See how functions accept parameters and log results with developer tools.
Explore loops and conditions in JavaScript, including while, do while, if else, switch, and for in; see code that iterates an elements array to print the object with id one.
Demonstrate selecting elements with id, class name, and css selectors using document methods in a live html playground, showing getElementById, getElementsByClassName, querySelector, and querySelectorAll.
Learn javascript dom manipulation by updating a header element with innerHTML and innerText. Compare text content versus HTML content and run a sample script on an HTML playground page.
Explore how JavaScript regular expressions search and validate text patterns, including phone number formats, with the regex test method and sample console outputs demonstrating valid and invalid inputs.
Explore asynchronous programming in JavaScript, using callbacks to enable non-blocking code, with a setTimeout example showing how a callback runs after data is retrieved without blocking the main thread.
Master Ajax skills by exploring asynchronous JavaScript and XML, using XMLHttpRequest to make GET calls to a health check endpoint, handling onload, checking status, and parsing JSON responses.
Learn JavaScript XPath helpers that work across Chrome, Firefox, and other browsers using document.evaluate to query elements by tag, id, class, and text.
Master CSS locators and selectors with querySelector and querySelectorAll to target elements by exact class value and by starts with and ends with patterns, exploring DOM traversal.
Explore functional and non-functional testing types, from unit and integration to black box and white box, and learn how to design effective test scripts for robust applications.
Explore non-functional testing types, including load, stress, and performance testing, security testing, compatibility testing in different environments and configurations, reliability testing, and accessibility testing.
Explore other testing methodologies, including ad hoc exploratory testing, localization, and globalization testing, to verify software functionality across languages, countries, and regions.
Adopt page object model and solid principles to build maintainable automation frameworks, emphasizing reusable resources, data-driven tests, independent test cases, clean state, recovery mechanisms, automated execution, reporting, and monitoring.
Explore key pitfalls to avoid when implementing Selenium tests, including avoiding hard coded sleeps, hard coded locators, element coordinates, test dependencies, shared state, long setup, and outdated libraries.
Identify what to automate across environments and browsers using Selenium, including complex navigation and data-driven tests. Avoid automation for usability and changing UIs, one-off tests, and scenarios needing human judgment.
Explore the testing pyramid from unit tests through integration tests to end-to-end tests, and learn to prioritize and tailor testing to project needs for maximum coverage.
Explore fundamentals of Selenium WebDriver, its language bindings, and browser automation, including the page object model, to write tests across Chrome, Firefox, and Edge with navigation, data entry, and validation.
Automatically manage selenium web driver versions with WebDriverManager, downloading correct driver for Linux, macOS, and Windows, simplifying setup. Learn to add Maven dependency and configure and launch a WebDriver.
Selenium enables automated testing across major browsers, Google Chrome, Microsoft Edge, Mozilla Firefox, Internet Explorer, and Apple Safari, offering input control, cookie management, and mobile emulation to optimize tests.
Master wait strategies in Selenium by replacing Thread.sleep with implicit, explicit, and fluent waits to reliably pause execution until conditions are met, guided by practical code examples.
Explore implicit, explicit, and fluent waits in Selenium, including a 10s implicit wait example, explicit wait for element visibility or clickability, and fluent wait with polling to handle slower elements.
Explore Selenium locators id, CSS, and XPath, focusing on their reliability, uniqueness, and use with driver.findElement and by id, by CSS selector, or by XPath expressions.
Navigate a web page using Selenium in Java by back and forward, refresh, and other driver navigate commands. Explore how to programmatically control browser interactions with example scripts.
Learn how to read, iterate, and print cookies with Selenium, manage cookies by adding, modifying, and deleting them for authentication and session tracking, and reset browser state with driver.manage.
Use Selenium and Java to simulate keyboard actions with the Actions API, sending keystrokes such as shift plus a letter to automate forms and menus.
Learn how to simulate mouse actions in Selenium to click, double-click, hover, and drag and drop using the Actions class, enabling complex interactions beyond keyboard input.
Use the JavaScript executor in Selenium to interact with web elements and run custom JavaScript, enabling text retrieval and other advanced browser actions beyond WebDriver.
Explore the no such element, stale element reference, and timeout exceptions in selenium and the webdriver exception hierarchy, then apply handling strategies to keep tests running.
Manage Selenium releases, Chrome driver setup with WebDriver Manager, and tests on local or grid. Apply page object patterns and form page interactions with a remote WebDriver.
Design and implement a data table control using the adapter pattern to handle tables with different columns, enabling extensible automation and support for integers and strings.
Implement data table components in a Selenium Java workflow, including data column and data row classes, data table adapter, and wait for ready methods.
Build a Selenium card control by defining class locators, handling a parent element, and scrolling to view; provide getters for image, title, text, and buttons, with wait for readiness.
Explain the motor control class for a modal dialog in the HTML playground, building CSS locators from the modal id and enabling button clicks, title/body retrieval, and visibility waits.
Learn to build html playground page objects, define xpath and css locators for text, bulleted lists, ordered lists, tables and cards, and implement playground data table adapter with retrieval methods.
The navigation control class stores four xpath values for links in the HTML playground. It provides four methods to navigate to pages one through four by clicking each link.
Master Selenium, Java, and TestNG automation using page object tests for HTML playground pages. Cover form submission, text components, tables, alerts, modals, tabs, shadow dom, and iframes, with ChatGPT boost.
Learn Selenium's JavaScript executor to set and verify textbox values, handle alerts, and navigate the HTML playground, while covering HTML, CSS and JavaScript basics and cross-browser testing concepts.
Explore the internals and components of Selenium, then implement cross-browser and parallel testing, localization, and multi-environment strategies, and integrate automation tests into CI while debugging failures to identify root causes.
Explore Selenium's architecture, including WebDriver, Selenium Grid, and the Client API, and learn how WebDriver automates browser actions and supports parallel test execution.
Selenium components show how webdriver runs tests and reports results. Grid enables parallel testing across environments, and the client API writes tests in Java, Python, and JavaScript.
Explore how Selenium client libraries implement the WebDriver W3C specification to automate web browsers, manage driver communications, and simulate user interactions across Chrome, Firefox, and Edge.
Learn how the remote webdriver powers Selenium grid for distributed testing across multiple machines and browsers, creating sessions with capabilities, and coordinating actions via the grid server.
Explore Selenium advanced topics, including cross-browser testing, parallel testing, and localization testing, to ensure web apps work across browsers and languages.
Learn Selenium cross-browser testing to ensure your app works across Chrome, Firefox, Safari, and mobile Android and iOS, including designing test classes and running the same test on multiple browsers.
Identify how the WebDriverFactory sets up and creates browser-specific web drivers via a WebDriverManager interface and concrete managers for Chrome, Edge, Firefox, and Safari, enabling multi-browser test execution.
Learn to implement cross-browser testing by parsing a comma-separated browser list from the testing XML, creating test instances via factory, and storing browser type enums in the test class.
Learn cross-browser Selenium testing by implementing browser-specific Webdriver managers, configuring Chrome options (headless or incognito), and running tests locally or on Selenium Grid across Chrome, Firefox, Edge, and Safari.
Learn to run Selenium tests in parallel to reduce execution time, cover more test cases, and simulate different browsers and platforms while ensuring thread safety of WebDriver and data.
Wrap the webdriver and weight handler in threadlocal and adopt get/set access to enable parallel tests, while synchronizing singleton classes like webdriver factory, selenium grid launcher, and grid configurator.
Leverage Selenium automation to verify localization of a web app, checking language-specific elements, formats, layout, and translations across country selections, date/time, and currency in a live project.
Navigate a complete localization testing workflow—from defining languages and glossaries to testing, publishing, and monitoring feedback—driven by http API automation for resource strings, currencies, and date time formats.
Explore a localization framework that detects changes to product resource strings at compile time using typed code, simplifies key discovery, and keeps tests aligned with up to date resources.
Explore localization framework classes that generate and read language resources, including inner classes, GetKey, GetValue, and an RCS map; implement a thread-safe cache and language enum to serve locale-specific strings.
Explore how a Java tree data structure organizes data as nodes with parent-child relationships, supports breadth-first traversal, and enables efficient sorting, searching, and hierarchy representation.
Traverse a tree using breadth-first search from the root, visiting each level's children before moving to grandchildren, and learn a typical Java BFS implementation.
Implement a breadth first search in Java on a tree by enqueuing the root and visiting each level's children, with full tree and node class implementations.
Generate a localization rxjava file by converting json resources into a class tree, where top-level class X holds inner classes for key parts and leaves expose getKey and getValue.
Learn to generate a mapped Java file for localization testing by mapping json api responses to language resource pairs, with top and bottom static code and dynamic ensure populated logic.
learn to implement a thread-safe cache for locale data, build a localization framework with language enumeration and resource maps, and verify login page localization using Selenium tests.
Explore advanced testing topics, including multiple environment testing and testing in the car environment, and learn to debug test failures and run automated tests across CI environments.
Learn to test multiple environments with Selenium by creating separate test suites, using environment variables and tags, configuring CI jobs, and refactoring code into configuration files.
Using a configuration file centralizes parameters to improve maintainability and reusability across test runs. It keeps setups readable, supports quick changes and debugging, and secures sensitive data with encryption.
Compare the pros and cons of properties, XML, and INI formats for storing configuration parameters in a Java application.
Explore properties files: simple to read and update, with comments. They are compact and use less storage than XML, do not support complex data structures, and syntax can be confusing.
Learn how XML is human readable and platform independent, enabling portability and hierarchical data structures. Note that XML files can become large and difficult to manage.
Ini files offer readable configuration options, easy to create, edit, and maintain. They lack encryption for sensitive data and struggle with configurations due to no nested sections.
Decide on a configuration format for our Java automation framework by balancing team consistency and organizational constraints, then implement a cross-format mechanism that switches formats with minimal code changes.
Create a straightforward configuration framework that lets users create, edit, and manage settings across properties, XML and Ini formats, with environment-specific overrides for CI/CD pipelines.
Explore Apache Commons Configuration to build a flexible framework with properties, XML and ini formats, hierarchical data, interpolation, defaults, a flexible API, and extendable converters and sources.
Implement a singleton config settings framework to read values from properties, xml, or ini files, with environment variable overrides and a converter to switch formats.
Integrate Selenium automation tests with CI/CD servers like Jenkins or CircleCI to enable continuous testing, faster deployments, and reliable web applications.
Build a single assembly jar with dependencies using the Maven Assembly plugin, then configure a CI server to run tests with mvn test and publish detailed results.
Execute tests with a TestNG.xml file on disk from the workspace root using a relative path, then verify the results and explore the XML embedded in the jar.
Run tests with a TestNG XML embedded in a single assembly jar with dependencies by supplying the jar and xml paths from workspace root, enabling test xml for efficient testing.
Learn to implement robust test failure debugging in Selenium with screenshot on failure, logs, and detailed reports. Attach screenshots to Allure reports via a thread-local WebDriver strategy and screenshot manager.
Explore the architectural differences between Selenium Grid 3 and 4 and enable distributed test execution with parallel runs, while noting maintenance caveats, HTTP API endpoints, and setup options.
Explore Selenium Grid, an open source tool that runs automated tests in parallel across multiple browsers and operating systems, with two main versions: v4 rearchitected and v3 legacy.
Explore Selenium Grid 3 architecture by examining the hub and node roles, their communication, and how tests are delegated across different operating systems and browsers.
Master the Selenium Grid 4 architecture, including the rudder, router, distributor, session map, session queue, and event bus, to coordinate docker containers and cloud-distributed tests across multiple browsers and devices.
Selenium grid boosts automation testing efficiency by running tests in parallel and scaling with nodes across multiple OS and browsers, though network latency and maintenance pose challenges.
Monitor Selenium Grid Status API health, tracking nodes and slots, logging availability during tests, and validating responses via curl or PowerShell while implementing a grid status checker.
Track selenium grid node health with the grid status checker, which fetches node info from a grid URL and logs synchronized status with detailed logging.
Explain migrating the selenium grid configuration to config.properties, introducing four properties: selenium grid base URL, mode, enabled flag, and version, and implementing grid status logging with automatic jar download.
Read selenium grid enabled setting from config.properties across Chrome, Edge, Firefox, and Safari Webdriver managers. Build remote server URL via webdriver configuration manager for standalone and external grids.
Describe the Selenium grid download manager class that synchronously downloads the latest Selenium jar from GitHub releases, honoring config for latest or specific versions, and writes download info to json.
Explore the selenium grid launcher class, a synchronized singleton enum that starts the grid in standalone mode, runs in background, prevents concurrent launches, and supports stopping via helper tests.
Read selenium grid configurations with an enum config reader that parses the grid config HTML file, maps values to the config object, and exposes the hub port.
Configure a selenium grid using a pojo class mapped to grid config.yaml, including server port, node drivers, max sessions, and explore grid architectures, status checking, download manager, and launcher concepts.
Explore standalone selenium grid setup using jars and compare docker compose, kubernetes helm charts, and deployment yaml options, with pods, replica sets, and services definitions.
This comprehensive Selenium WebDriver course covers a wide range of topics, including setting up development environments, Java programming fundamentals, intermediate and advanced Java concepts, working with data in Java, TestNG testing framework deep-dive, web automation with Selenium, logging using Log4j/SLF4j, reporting using Allure, building automation framework with best in industry software coding and architectural practices, running automation tests on Jenkins server, and more. Additionally, you will explore the power of ChatGPT for automated test code generation, efficient data generation, result analysis, and failure debugging assistance, taking your automation skills to the next level.
Key Features Of This Course:
Course Built with Latest Technologies. AI Automation Testing with ChatGPT. Year 2023 Ready!
You'll work with the latest technologies from 2023: Java (JDK 17), Maven, TestNG, and recent Selenium WebDriver libraries and use IntelliJ IDEA IDE for development in this course.
You'll learn to harness the power of ChatGPT to automate test code generation, data generation, data strategies, test failure debugging, test run analysis, test migration, and test run optimization.
Hands-On Practice with Starter Kits
For every coding section of this course, you'll be provided with a starter and finished Java source code kit, which can be used for interactive coding during the video lessons.
A total of 37 source code kits, comprising both starter and finished versions, will be made available to enhance your coding lectures throughout the course. These thoughtfully designed starter kits offer a valuable advantage by providing a solid foundation, enabling you to concentrate on the subject matter covered in each section. Conversely, the finished kits serve as invaluable resources, offering feedback and solutions to assist you in overcoming any obstacles encountered during your coding.
Build Automation Framework From Scratch
We'll construct a robust and adaptable LIVE ReactJS web application automation framework. This framework will be meticulously designed, considering extensibility, scalability, and architectural integrity. It will serve as a valuable foundation that can be effortlessly customized to suit your requirements for future web projects throughout your professional journey.
You will be provided with an HTML playground specifically designed for Selenium testing. The playground offers ample opportunities to practice and experiment with various Selenium testing techniques, allowing you to sharpen your skills effectively during the course.
Multi-Platform Source Code Compatibility
All source codes demonstrated in this course will be made available to you.
The source code implementations showcased in this course will be fully compatible with contemporary Windows 8/10/11, Linux (specifically Ubuntu), and macOS operating systems, including support for M1/M2 arm processors.
Summary of Topic Covered In This Course:
Setting Up Development Environments
Learn how to set up Windows, Linux, and macOS development environments.
Create a Maven project in IntelliJ IDEA IDE.
Java Programming Fundamentals
Gain knowledge of Java programming fundamentals, including object-oriented programming, arithmetic, unary, equality/relational, conditional operators, flow/loop statements, and I/O operations.
Intermediate and Advanced Java Concepts
Dive into intermediate and advanced concepts in Java programming, such as collections, generics, functional programming.
Working with Data in Java
Learn to work with data in Java, using different formats like Text, CSV, Excel, and PDF files.
Utilize JDBC to access an SQLite database.
Explore Prompt Engineering and 30+ ChatGPT Prompts
Learn the foundations of Prompt Engineering for automation testing.
Leverage ChatGPT's potential in test code generation, data generation, data strategies, failure debugging, migration, result analysis, and test run optimization.
TestNG Testing Framework
Master TestNG annotations, XML-based configuration, parameterized tests, data-driven tests, grouping, listeners, parallel testing, dependency testing, and dependency injection.
Configure logging for TestNG tests with listeners, reporters, custom loggers, and popular logging libraries like Log4j2 and SLF4J.
Use TestNG XML to generate HTML reports, explore external reporting libraries, and understand the Allure Framework for test automation reporting.
Web Automation with Selenium APIs
Gain a solid foundation in HTML, CSS, JavaScript, automation best practices, identifying and utilizing Selenium locators, wait methods, and browser interactions.
Understand Selenium internals, components, architectures, and testing in multiple environments.
Learn about Selenium Grid's components, advantages, caveats, and API endpoints.
Acquire strategies for planning and developing real-world test scenarios, page objects, controls, data table control implementation, authentication framework, and application bootstrapping.
LIVE Project and HTML Playground for Selenium
Develop automated tests with PageObject class implementations, data providers, and test authoring techniques.
Build Selenium & TestNG automation framework from scratch for a LIVE Web application with cross-browser, parallel, multiple-environment, and localization testing support.
Utilize the HTML playground setup for practicing Selenium WebDriver APIs.
Implement four end-to-end Selenium UI automation tests with the framework implemented from scratch.
Setting Up Jenkins Server
Set up and utilize a Jenkins server for automated testing.
Install plugins, configure agents, create and run jobs using UI, and by writing Jenkinsfile.
Strategies for DatePicker Controls in Selenium
Learn strategies and best practices for working with DatePicker controls in Selenium, including implementation approaches.
How This Course Can Accelerate Your Testing Success:
Struggling to set up your development environment for Selenium Java and TestNG automation? Learn the step-by-step process to configure your development environment, including setting up dependencies, IDE configurations, and project structure, so you can hit the ground running.
Want to take your TestNG skills to the next level? Dive deep into the advanced features and functionalities of the TestNG testing framework and harness its full potential for robust and scalable test automation.
Are you tired of the manual hassle of managing test data? Feeling overwhelmed by the need for efficient test data management? Explore the power of data-driven testing with Selenium Java and TestNG! Discover how ChatGPT can revolutionize test data generation and strategies for efficient and scalable automation.
Have you wasted endless hours struggling to implement an automation framework? Are you frustrated with the wasted time and effort hindering your automation progress and productivity? Fast-track your success with this comprehensive course! Discover battle-tested practices and leverage ChatGPT to revolutionize your automation journey.
Are you tired of spending precious time tracking and debugging errors, impacting your testing efficiency and delaying feedback? Dive into logging integration (log4j2, SLF4j) with Selenium, Java, and TestNG to identify issues. Gain visibility into test execution and resolve errors quickly with ChatGPT's assistance.
Struggling to generate insightful test reports that integrate seamlessly with your automation tests? Frustrated with the lack of valuable insights for effective test analysis? Discover the secrets to integrating robust reporting frameworks (Allure Reports) with Selenium Java and TestNG, unlock valuable insights, and optimize test runs with ChatGPT's result analysis and test run optimization techniques.
Are your test suites taking too long to execute? Unlock the power of parallel testing with TestNG and dramatically speed up your testing cycles without compromising quality.
Are cross-browser compatibility issues causing headaches in your automation testing? Discover the secrets to seamless cross-browser testing and ensure your web applications work flawlessly on Chrome, Firefox, Edge, and Safari.
Is localization testing a challenge in your automation testing efforts? Learn the best practices for automated testing of your applications in different languages, cultures, and regions, and deliver a truly global user experience.