{"id":29687272,"url":"https://github.com/thepalaceproject/mobile-integration-tests-new","last_synced_at":"2025-10-24T13:50:32.372Z","repository":{"id":190177815,"uuid":"656797336","full_name":"ThePalaceProject/mobile-integration-tests-new","owner":"ThePalaceProject","description":"Integration tests for the Palace Project mobile apps. ","archived":false,"fork":false,"pushed_at":"2025-04-24T14:06:21.000Z","size":1639,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-24T15:23:42.949Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","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/ThePalaceProject.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,"zenodo":null}},"created_at":"2023-06-21T16:55:03.000Z","updated_at":"2025-04-24T14:06:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"7604c042-b6b0-4f3d-a0ab-21c8aa46e7e1","html_url":"https://github.com/ThePalaceProject/mobile-integration-tests-new","commit_stats":null,"previous_names":["thepalaceproject/mobile-integration-tests-new"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ThePalaceProject/mobile-integration-tests-new","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThePalaceProject%2Fmobile-integration-tests-new","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThePalaceProject%2Fmobile-integration-tests-new/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThePalaceProject%2Fmobile-integration-tests-new/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThePalaceProject%2Fmobile-integration-tests-new/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThePalaceProject","download_url":"https://codeload.github.com/ThePalaceProject/mobile-integration-tests-new/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThePalaceProject%2Fmobile-integration-tests-new/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266619009,"owners_count":23957273,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-07-23T04:36:32.507Z","updated_at":"2025-10-24T13:50:32.341Z","avatar_url":"https://github.com/ThePalaceProject.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mobile integration tests\n\nThis repository contains integration tests for the Android and iOS code of the [Palace](https://thepalaceproject.org/) application\n\n# About framework\n\nJDK 11 is used in this project. As a framework for automation testing was selected [aquality](https://github.com/aquality-automation/aquality-appium-mobile-java) framework.\nThis framework designed to simplify automation of Android and iOS mobile applications using Appium. Most of performed methods are logged using LOG4), so it is easy to see a history of performed actions in log.\n\n## Cucumber\n\nCucumber is used in this project. It is a tool that supports BDD (behavior driver development). Central to the Cucumber BDD approach is its ordinary language parser Gherkin. It allows expected software behaviors to be specified in a logical language that every person can understand.\n\n## JUnit\n\nThe next big part of the solution is a test runner. As the test runner JUnit is used. This framework permits validate results of the tests and run tests in pair with Cucumber.\n\n# How to run tests\n\nTests are created for Palace Bookshelf, A1QA Test Library and Lyrasis Reads libraries and run on iOS and Android platforms on such devices:\n\n* Android\n  - Samsung Galaxy S23 Ultra (Android 13)\n  - Samsung Galaxy S22 Ultra (Android 12)\n  - Samsung Galaxy S21 (Android 12)\n  - Samsung Galaxy Tab S9 (Android 13)\n  - Google Pixel 8 Pro (Android 14)\n  - Google Pixel 7 Pro (Android 13)\n\n* iOS\n  - iPhone 15 Pro Max (iOS 17)\n  - iPhone 14 Pro Max (iOS 16)\n  - iPhone 13 Pro Max (iOS 15)\n  - iPad Pro 2022 (iOS 16)\n  - iPhone XR (iOS 15)\n  - iPhone SE 2020 (iOS 16) \n  - iPhone 8 (iOS 15)\n\n## Run via GitHub Actions\nAll tests run at night in BrowserStack. Runs are configured with GitHub Actions in [maven.yml file](https://github.com/ThePalaceProject/mobile-integration-tests-new/blob/main/.github/workflows/maven.yml). Test run time on each device is configured in a file that describes it using cron expressions. These devices are described in repositories for [Android](https://github.com/ThePalaceProject/android-binaries/tree/main/.github/workflows) and [iOS](https://github.com/ThePalaceProject/ios-binaries/tree/master/.github/workflows) devices. In the [Actions](https://github.com/ThePalaceProject/mobile-integration-tests-new/actions) section click the **Run workflow** button and start tests configured by tiers, app version and git branch. Below attached the screenshot with Ul of the Github actions solution.\n\n![Screenshot_2](https://github.com/ThePalaceProject/mobile-integration-tests-new/assets/33911738/b1ddcfc0-daa2-46ef-894c-ea1fbac32165)\n\nSelect the **Test Run** option in the left menu and click the **Run workflow**. Options to configure:\n1. ﻿﻿_Use workflow from_ - git branch to launch (e.g. main)\n2. _Tags to run_ - tags (e.g. @tier1 @tier2, @smoke) if to run a specific tier. @tier1 - Tests for Lyrasis Reads library, @tier2 - tests for A1QA Test Library and Palace Bookshelf libraries, @smoke - smoke tests.\n3. _﻿﻿app_url of uploaded to BS link_ - the app URL that can be gotten in the App Automate on the Browserstack \n4. _build name of given application_ - assembly name can be anything\n5. _Platform name_ - ios/android\n6. _device name and version for the autotests_ - device name to run tests. They can be found in the [iOS](https://github.com/ThePalaceProject/ios-binaries/tree/master/.github/workflows) repository for iOS devices and [Android](https://github.com/ThePalaceProject/android-binaries/tree/main/.github/workflows) repository for the Android.\n\nAfter configuring the test run, click the **Run workflow** green button to apply the run\n\n## Run locally\nTests can also be run locally (e.g. by **Intellij Idea**). The [settings.json](https://github.com/ThePalaceProject/mobile-integration-tests-new/blob/main/src/test/resources/settings.json) file is used to configure device, application build and platform. Write down target platformName, remoteConnectionUrl, deviceKey, username and access key from BrowserStack and app link to run tests.\n\n![Screenshot_1](https://github.com/ThePalaceProject/mobile-integration-tests-new/assets/33911738/79dab8b2-0a15-44d4-a04b-591fb5264128)\n\n* _platformName_ - android/ios\n* _remoteConnectionUrl_ - https://hub-cloud.browserstack.com/wd/hub\n* _deviceKey_ - the device name where to run tests. Can be found in [devices.json](https://github.com/ThePalaceProject/mobile-integration-tests-new/blob/main/src/test/resources/devices.json) file\n* _app_ - the link to the build on iOS or Android from the Browserstack.\n* _browserstack.user_ - user name of the Browserstack account.\n* _browserstack.key_ - key of the Browserstack account\n\nAll devices are described in [devices.json](https://github.com/ThePalaceProject/mobile-integration-tests-new/blob/main/src/test/resources/devices.json) file.\n\n![Screenshot_3](https://github.com/ThePalaceProject/mobile-integration-tests-new/assets/33911738/4167f0af-3b7c-49ae-8fc6-e938f8245095)\n\nFor Lyrasis Reads and A1QA Test library libraries credentials are needed. It can be configured in [config.json](https://github.com/ThePalaceProject/mobile-integration-tests-new/blob/main/src/test/resources/config.json) file.\n\n![Screenshot_4](https://github.com/ThePalaceProject/mobile-integration-tests-new/assets/33911738/b653ca3d-d989-4a23-851b-60423aa3d557)\n\n* _libraryName_ - LYRASISReads/A1QATestLibrary\n* _barcode_ - barcode\n* _pin_ - password\n\nFeature files are used to run tests.\n\n![Screenshot_5](https://github.com/ThePalaceProject/mobile-integration-tests-new/assets/33911738/09d6e84e-2a9e-48b4-bc40-1183a816be94)\n\n![Screenshot_6](https://github.com/ThePalaceProject/mobile-integration-tests-new/assets/33911738/868dbde7-b1f0-4a2f-bcab-b3edd27a326c)\n\n## Run via maven\n`mvn clean test -Daquality.buildName=\"NameOfTheBuild\" -Daquality.token=TRACKING_API_TOKEN -Daquality.suiteName=\"@tier1/@tier2/@tier3\" -Daquality.environment=\"ios/Android\" -Dcredentials.LYRASIS.${{secrets.BookCard }}=${{secrets.BookPin }} -Dcredentials.LYRASIS.${{secrets.BookCardLyrasis2 }}=${{secrets.BookPinLyrasis2 }} -Dcredentials.\"The New York Public Library\".${{secrets.BookCardNYPL }}=${{secrets.BookPinNYPL }} -DremoteConnectionUrl=RemoteUrlToTheBrowserstack -DplatformName=${{github.event.inputs.platform_name}} -DdriverSettings.${{github.event.inputs.platform_name}}.capabilities.app=${{github.event.inputs.bs_app_link}} -Dcucumber.options=\"--tags '${{github.event.inputs.test_tag}} and not @exclude_${{github.event.inputs.platform_name}}'\"`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthepalaceproject%2Fmobile-integration-tests-new","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthepalaceproject%2Fmobile-integration-tests-new","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthepalaceproject%2Fmobile-integration-tests-new/lists"}