{"id":22173666,"url":"https://github.com/stefruseva88/appium-testing","last_synced_at":"2025-07-09T18:37:06.861Z","repository":{"id":256404042,"uuid":"855121487","full_name":"StefRuseva88/appium-testing","owner":"StefRuseva88","description":"Mobile Testing Automation with Appium and C#","archived":false,"fork":false,"pushed_at":"2024-11-28T17:25:28.000Z","size":11424,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-28T18:29:47.816Z","etag":null,"topics":["appium-android","appium-csharp","appium-tests"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StefRuseva88.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-09-10T10:50:21.000Z","updated_at":"2024-11-28T17:25:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"b7177b6b-d657-48d7-8764-16bf64caee59","html_url":"https://github.com/StefRuseva88/appium-testing","commit_stats":null,"previous_names":["stefruseva88/appium-testing"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefRuseva88%2Fappium-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefRuseva88%2Fappium-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefRuseva88%2Fappium-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefRuseva88%2Fappium-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StefRuseva88","download_url":"https://codeload.github.com/StefRuseva88/appium-testing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227691272,"owners_count":17805090,"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":["appium-android","appium-csharp","appium-tests"],"created_at":"2024-12-02T07:34:36.159Z","updated_at":"2025-07-09T18:37:06.578Z","avatar_url":"https://github.com/StefRuseva88.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Appium Mobile Automation Tests\n\n[![C#](https://img.shields.io/badge/Made%20with-C%23-239120.svg)](https://learn.microsoft.com/en-us/dotnet/csharp/)\n[![.NET](https://img.shields.io/badge/.NET-5C2D91.svg)](https://dotnet.microsoft.com/)\n[![Android Studio](https://img.shields.io/badge/Built%20with-Android%20Studio-3DDC84.svg)](https://developer.android.com/studio)\n[![Appium](https://img.shields.io/badge/tested%20with-Appium-41BDF5.svg)](https://appium.io/)\n\n### This is a test project for Front-End Test Automation July 2024 Course @ SoftUni\n\n## Overview\nThis repository demonstrates how to automate testing of Android mobile applications using **Appium** and **Page Object Model (POM)**.\n\n## \"Summator\" Page Object Model (POM)\n **Summator** is a calculator Android application. The app allows users to perform simple arithmetic operations.\n\n### Automated Testing Scenario\n\nThe testing scenario involves the following steps:\n\n1. **Open the Summator App.**\n2. **Perform tests with both valid and invalid inputs:**\n   - For valid inputs, verify the calculation results are correct.\n   - For invalid inputs, ensure that an \"error\" message is displayed in the result field.\n\n### Configure Appium Inspector\n\nTo run tests, follow these steps to configure Appium Inspector:\n\n1. **Start the Appium Server.**  \n   If you're using the web version, start it with `--allow-cors` enabled.\n   \n2. **Start your Android Virtual Device (AVD).**\n   \n3. **Install the application** on your AVD by dragging and dropping the `.apk` file into the emulator.\n\n4. **Set up Appium Inspector:**\n   - Provide the host and port of your Appium server (e.g., `http://127.0.0.1:4723`).\n   - Add the desired capabilities:\n     - `automationName`: `UiAutomator2`\n     - `platformName`: Android (use `appium driver list` to get the value)\n     - `platformVersion`: Get the Android version using `adb shell getprop ro.build.version.release`.\n     - `deviceName`: Use `adb devices` to find the connected device name.\n     - `app`: Path to the `.apk` file on your computer.\n### Identify Element IDs\n\nUsing Appium Inspector, retrieve the IDs of the elements you need for testing, such as text fields, buttons, etc. For example:\n- Click on a field, and the ID will be displayed in the \"Selected Element\" panel.\n\n## ColorNote App\n\nThe **ColorNote** app is a simple notepad application that allows users to create, edit, and delete notes. We will create automated tests for various scenarios in this app.\n\n### Automated Testing Scenarios\n\n1. **Creating a New Note:**\n   - Open the app and skip the tutorial.\n   - Add a new note with a title and content.\n   - Verify the note is successfully created.\n\n2. **Editing a Note:**\n   - Open the app and skip the tutorial.\n   - Add a new note, then edit its content.\n   - Verify the note has been updated.\n\n3. **Deleting a Note:**\n   - Open the app and skip the tutorial.\n   - Add a new note, then delete it.\n   - Verify the note is successfully deleted.\n\n### Configuring Appium Inspector for ColorNote\n\n1. **Start Appium Server and your AVD.**\n   \n2. **Install the app** on the AVD if not already installed.\n\n3. **Configure Appium Inspector:**\n   - Use the same host and port (`http://127.0.0.1:4723`).\n   - Add the desired capabilities, including:\n     - `\"appium:autoGrantPermissions\": \"true\"` to automatically handle permission dialogs.\n\n### Recording with Appium Inspector\n\nTo record steps for a scenario, follow these steps:\n\n1. **Open the ColorNote App** and skip the tutorial.\n   \n2. **Add a new note:**\n   - Click the \"+\" or \"Add Note\" button.\n   - Select \"Text\" to create a text note.\n   - Type the content of the note, and confirm with the \"Tick\" symbol.\n   \n3. **Pause the recording** and view the elements and actions in the \"Recorder\" tab.  \n   You can view boilerplate code generated by the Inspector as a reference, but it’s essential to refactor the code to follow best practices.\n\n### Writing Tests for ColorNote\n\nCreate tests in **Visual Studio** using NUnit and Appium:\n\n- **Install the Appium.WebDriver package** from the NuGet Package Manager.\n- **Define your test class:**  \n  Use `[TestFixture]` to mark the class as a test suite and configure the setup and teardown methods using `[OneTimeSetUp]` and `[OneTimeTearDown]`.\n\n#### Sample Test Scenarios:\n\n- **Test to Create a Note:**\n  - Add a new note and verify it is displayed on the main screen.\n\n- **Test to Edit a Note:**\n  - Modify an existing note and verify the changes.\n\n- **Test to Delete a Note:**\n  - Delete a note and verify it is removed from the app.\n\n## License\nThis project is licensed under the [MIT License](LICENSE). See the [LICENSE](LICENSE) file for details.\n\n## Contact\nFor any questions or suggestions, please open an issue in the repository.\n\n---\n### Happy Testing! 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefruseva88%2Fappium-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefruseva88%2Fappium-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefruseva88%2Fappium-testing/lists"}