{"id":21523209,"url":"https://github.com/testcentricity/tc_multi_webdriver_sample","last_synced_at":"2025-06-24T06:37:51.889Z","repository":{"id":217967521,"uuid":"745238910","full_name":"TestCentricity/tc_multi_webdriver_sample","owner":"TestCentricity","description":"This example uses TestCentricity™ For Web gem to demonstrate instantiation of multiple WebDriver instances to support verification of real-time multi-user interactions across multiple concurrent browsers.","archived":false,"fork":false,"pushed_at":"2025-01-26T19:19:03.000Z","size":184,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T17:49:44.351Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TestCentricity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-18T22:57:43.000Z","updated_at":"2025-01-26T19:18:15.000Z","dependencies_parsed_at":"2024-05-21T23:41:36.333Z","dependency_job_id":"532462b8-222a-48c7-ab59-8be4ad83fedf","html_url":"https://github.com/TestCentricity/tc_multi_webdriver_sample","commit_stats":null,"previous_names":["testcentricity/tc_multi_webdriver_sample"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TestCentricity/tc_multi_webdriver_sample","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TestCentricity%2Ftc_multi_webdriver_sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TestCentricity%2Ftc_multi_webdriver_sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TestCentricity%2Ftc_multi_webdriver_sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TestCentricity%2Ftc_multi_webdriver_sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TestCentricity","download_url":"https://codeload.github.com/TestCentricity/tc_multi_webdriver_sample/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TestCentricity%2Ftc_multi_webdriver_sample/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261622816,"owners_count":23186024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T01:12:59.455Z","updated_at":"2025-06-24T06:37:51.866Z","avatar_url":"https://github.com/TestCentricity.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tc_multi_webdriver_sample\n\nThis is a Cucumber based sample test suite and framework utilizing the TestCentricity™ For Web gem and a page-object model\narchitecture for desktop and mobile web functional testing using the Appium Pro Chat web portal. This example is intended\nto demonstrate the instantiation of multiple WebDriver instances within a test case or test scenario to support the\nverification of real-time multiple user interactions across multiple concurrent browsers.\n\nBeginning with TestCentricity™ Web version 4.4.0, the `WebDriverConnect.initialize_web_driver` method accepts an optional\n`options` hash for specifying desired capabilities (using the W3C protocol), driver type, driver name, endpoint URL, device\ntype, and desktop web browser window size information. TestCentricity also now supports the instantiation of multiple\nWebDriver objects to establish connections with, and coordinate test execution between multiple desktop and/or mobile web\nbrowser instances.\n\nSome use cases for the verification of real-time multiple user interactions across multiple concurrent browsers or devices are:\n- Chat, Messaging, or Social Media apps/web portals used by one or more users interacting in real time (posts, reposts, likes)\n- Ride Hailing/Sharing Services with separate Rider and Driver experience apps/web portals\n- Food Delivery Services with a Customer app for finding restaurants and ordering food, a Restaurant app for fulfilling\n  the food order and coordinating delivery, and a Driver app for ensuring delivery of the order to the customer\n- Learning Management/Student Engagement platforms that allow teachers to monitor student engagement and progress on assigned\n  activities and support for remote real-time collaboration between students and teachers\n\nThis project was inspired by [**Edition 118 (Testing Real-Time User Interaction Using Multiple Simultaneous Appium Sessions)**](https://appiumpro.com/editions/118-testing-real-time-user-interaction-using-multiple-simultaneous-appium-sessions)\non the Appium Pro web site.\n\n\n## Gem Dependencies:\n\ncucumber  [![Gem Version](https://badge.fury.io/rb/cucumber.svg)](https://badge.fury.io/rb/cucumber)\n\ntestcentricity_web  [![Gem Version](https://badge.fury.io/rb/testcentricity_web.svg)](https://badge.fury.io/rb/testcentricity_web)\n\n\n## Supporting Documentation\n\n[TestCentricity Web Framework - testcentricity_web gem](https://rubygems.org/gems/testcentricity_web)\n\n[TestCentricity Web - documentation](http://www.rubydoc.info/gems/testcentricity_web/)\n\n\n## Prerequisites to running tests:\n\nIn order for Cucumber to execute the features and scenarios in the `tc_multi_webdriver_sample` test automation project\nagainst desktop web browsers, you must have the Chrome, Firefox, and Edge desktop browsers installed on the test system\nwhere the tests will be run.\n\nThe `tc_multi_webdriver_sample` test automation project also supports running tests against mobile web browsers running\non iOS simulators and Android virtual device emulators. The capabilities profiles for running tests against an iPhone,\niPad, Android phone, and an Android tablet are stored in the test data asset file located at `/config/test_data/data.yml`.\n\n    📁 tc_multi_webdriver_sample\n     ├── 📁 config\n     │   └── 📁 test_data\n     │       └── 📄 data.yml\n     ├── 📁 doc\n     ├── 📁 features\n     └── 📁 reports\n\nIn order to run the tests against mobile web browsers, you must install Appium, XCode, the iOS version-specific device\nsimulators for XCode, Android Studio, and the desired Android version-specific virtual device emulators. The capabilities\nprofiles in `data.yml` file are currently set to the following:\n\n| Mobile device browser | OS version ('appium:platformVersion':) | Device name ('appium:deviceName': / 'appium:avd':) |\n|-----------------------|----------------------------------------|----------------------------------------------------|\n| `:iPhone`             | '17.2'                                 | 'iPhone 13 Pro Max'                                |\n| `:iPad`               | '17.2'                                 | 'iPad Pro (12.9-inch) (6th generation)'            |\n| `:android_phone`      | '12.0'                                 | 'Pixel_5_API_31'                                   |\n| `:android_tablet`     | '12.0'                                 | 'Pixel_C_API_31'                                   |\n\nIf you prefer to run tests against mobile web browsers using simulators other than the ones already preconfigured, you can\nedit the capabilities profiles in the `data.yml` file. Refer to [**section 8.6 (Locally Hosted Mobile Browsers on Simulators or Physical Devices)**](https://www.rubydoc.info/gems/testcentricity_web#locally-hosted-mobile-browsers-on-simulators-or-physical-devices)\nof the TestCentricity Web gem documentation for information on specifying the desired capabilities for mobile web simulators\nand devices.\n\n\n## Instructions for running tests\n\nIn order for Cucumber to execute features or scenarios from the `tc_multi_webdriver_sample` test automation project, the\n`test_context` must be specified in the Cucumber command line at runtime. There are 3 test execution modes, or `test_context`,\nthat are supported:\n  * `desktop`  - Desktop browsers only\n  * `mobile`   - Mobile browsers only\n  * `combined` - Combined desktop and mobile browsers\n\n1. To run the Cucumber tests against desktop only web browsers, execute the following command in the Terminal:\n\n        bundle exec cucumber -p test_context\n\n   ℹ️ **NOTE:**\n    * To have Cucumber generate HTML formatted test results, append `-p report` to the above command line arguments.\n\n   For example, to execute the test suite against desktop only web browsers, with test results being logged to an HTML test\n   results file, execute the following command in the Terminal:\n\n        bundle exec cucumber -p desktop -p report\n\n   To execute the test suite against mobile only web browsers, execute the following command in the Terminal:\n\n        bundle exec cucumber -p mobile\n\n   To execute the test suite against desktop and mobile web browsers, execute the following command in the Terminal:\n\n        bundle exec cucumber -p combined\n\n   ℹ️ **NOTE:**\n    * Appium will automatically be started prior to tests being executed against mobile browser (`mobile` and `combined`\n      test contexts)\n\n2. As the Cucumber tests are executing, the Terminal will display the lines of each feature file and scenario as they run\n   in real-time.\n\n3. Upon completion of test execution, the Terminal will display the final test results.\n\n4. If you specified in the command line that HTML formatted test results should be generated (`-p report`), you can view \n   them by opening the `reports` folder in the `tc_multi_webdriver_sample` project directory, and selecting the `test_results.html`\n   file. Right-clicking on the `test_results.html` file will display a popup menu. Select the **Open in Browser** menu\n   item, and then select a web browser from the popup sub menu that appears. The formatted test results will open in the\n   web browser that you selected.\n\n\n## Detailed Documentation\n\nDetailed HTML documentation of the features, scenarios, step definitions, classes, and methods for the `tc_multi_webdriver_example`\nproject can be accessed from the `index.html` file within the `doc` folder in the `tc_multi_webdriver_example` project folder:\n\n    📁 tc_multi_webdriver_sample\n     ├── 📁 config\n     ├── 📁 doc\n     │   └── 📄 index.html\n     ├── 📁 features\n     └── 📁 reports\n\nTo view this documentation, navigate to the `index.html` file, right click on it, and select *Open in Browser*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestcentricity%2Ftc_multi_webdriver_sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftestcentricity%2Ftc_multi_webdriver_sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestcentricity%2Ftc_multi_webdriver_sample/lists"}