Sometime back, I worked on setting up Appium tests execution on a Selenium Grid environment. Was able to run parallel tests across 5 devices at a time (4 Android, 1 iOS). We also arrived at a set of use cases to achieve a self-maintaining Grid setup, but could not work on all of them at that time. I am sharing the use cases here, just in case if anyone had already worked on them, we can discuss more
Its a pretty out-dated one though.
Purpose and Scope:
– This Use Case is to implement a self-maintaining, customized Grid environment for the parallel execution of Selenium/Appium tests.
– The user should be able to run tests on multiple browsers & platforms like Android and iOS devices simultaneously.
Common Pre-Conditions:
– The test scripts should be sourced at the HUB machine.
– Hubs should be able to control the limit of the number of nodes they can support.
– Hubs and Nodes on the Grid should be customizable.
– JSON files should be used to configure the Hub & Node grid parameters.
– TestNG xml files should be used to drive the test execution on grid.
UC 1: Run Parallel tests on Grid – Register ‘N’ nodes and run tests:
User should be able to register a Hub with N nodes – N/2 for android and N/2 for iOS devices.
Multiple tests should be distributed to these nodes matching the capability and executed successfully.
UC 2: Run Parallel tests on Grid – Add nodes to existing environment:
User should be able to register a Hub with N nodes – N/2 for android and N/2 for iOS devices.
Users should be able to scale the Grid by adding another set of N nodes to the Hub.
Multiple tests should be distributed to these nodes matching the capability and executed successfully.
UC 3: Run Parallel tests on Grid – Register nodes after launching the test:
User should be able to register a Hub and trigger test execution.
If user registers a node, tests matching the capability set in the node should be executed successfully.
UC 4: Run Parallel tests on Grid – Prioritization of tests
User should be able to register a Hub with a custom prioritizer to run Android tests first and then call tests on iOS devices.
User should be able to register N nodes on this hub and run tests.
Multiple tests should be distributed to these nodes matching the capability and executed successfully.
UC 5: Run Parallel tests on Grid – Update node configuration and Re-register on Hub
User should be able to register a Hub with N nodes – N/2 for android and N/2 for iOS devices. User should be able to update the configuration of the existing nodes and re-register it on the Hub.
Multiple tests should be distributed to these nodes matching the capability and executed successfully.
UC 6: Run Parallel tests on Grid – Register nodes using –hubHost and -hubPort
User should be able to register a Hub with default configuration and register nodes by specifying the Hub information using parameters –hubHost and –hubPort.
User should be able to register N nodes on this hub and run tests.
Multiple tests should be distributed to these nodes matching the capability and executed successfully.
UC 7: Run Parallel tests on Grid – De-Register nodes if not alive
User should be able to register a Hub with default configuration. User should be able to register N nodes on this hub and run tests.
If a node is down or not alive for a specific period, it should be automatically de-registered from the
Hub.
UC 8: Run Parallel tests on Grid – Register Hub using Customized Capability
User should be able to register a Hub with customized capability that can locate a node with a Node Name. User should be able to register N nodes on this hub and run tests
Multiple tests should be distributed to these nodes matching the capability and executed successfully.
UC 9: Run Parallel tests on Grid – Print all nodes registered to a Hub
User should be able to register a Hub with customized servlets that can list all the nodes registered into it.
User should be able to register N nodes on this hub and run tests
Multiple tests should be distributed to these nodes matching the capability and executed successfully.
UC 10: Run Parallel tests on Grid – Access & store logs of nodes
User should be able to register a Hub with default configuration and register nodes with customized servlets that can read all the logs from the nodes and display.
User should be able to register N nodes on this hub and run tests
Multiple tests should be distributed to these nodes matching the capability and executed successfully.