{"id":13584413,"url":"https://github.com/romsper/qa-automation-base","last_synced_at":"2025-04-07T17:08:13.428Z","repository":{"id":175428205,"uuid":"127629963","full_name":"romsper/qa-automation-base","owner":"romsper","description":"There are basic projects for automation frameworks based on Kotlin/Java and TypeScript for the backend, frontend, and mobile.","archived":false,"fork":false,"pushed_at":"2025-02-23T02:10:44.000Z","size":7920,"stargazers_count":67,"open_issues_count":0,"forks_count":18,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-31T16:17:41.345Z","etag":null,"topics":["allure","appium","assertj","browsers-farm","chai","docker","gradle","grafana","javascript","jest","junit5","kotlin","mocha","playwright","rest-assured","retrofit","selenide","selenoid","testng","typescript"],"latest_commit_sha":null,"homepage":"https://romsper.github.io/qa-automation-base/","language":null,"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/romsper.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":"2018-04-01T13:04:47.000Z","updated_at":"2025-03-20T20:20:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"3186dcc5-e57a-42da-a40a-67f3c7d9a071","html_url":"https://github.com/romsper/qa-automation-base","commit_stats":{"total_commits":46,"total_committers":4,"mean_commits":11.5,"dds":0.4565217391304348,"last_synced_commit":"be6e520a5530a9378abcb2c89a584b1fea6a97e8"},"previous_names":["romsper/qa-automation-base"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romsper%2Fqa-automation-base","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romsper%2Fqa-automation-base/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romsper%2Fqa-automation-base/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romsper%2Fqa-automation-base/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/romsper","download_url":"https://codeload.github.com/romsper/qa-automation-base/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247694876,"owners_count":20980733,"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":["allure","appium","assertj","browsers-farm","chai","docker","gradle","grafana","javascript","jest","junit5","kotlin","mocha","playwright","rest-assured","retrofit","selenide","selenoid","testng","typescript"],"created_at":"2024-08-01T15:04:13.676Z","updated_at":"2025-04-07T17:08:13.397Z","avatar_url":"https://github.com/romsper.png","language":null,"funding_links":[],"categories":["Others","typescript"],"sub_categories":[],"readme":"# Automation project\n\n#### Description\n\nThe repository contains basic projects for automation testing on **Kotlin/Java** and **TypeScript** with examples for **backend**, **frontend**, and **mobile**.\n\n#### GitHub Actions\n\nThis branch `kotlin-junit5-retrofit` is integrated into GHA -\u003e It passes test results to this branch `allure-pages` and hosts them using GitHub Pages \n\n#### Branches\n\n  - [kotlin-junit5-retrofit](https://github.com/romsper/qa-automation-bases/tree/kotlin-junit5-retrofit) - Kotlin | Retrofit | Selenide | JUnit 5 | Allure -\u003e Updated `22.02.2025`\n  - [kotlin-junit5-playwright](https://github.com/romsper/qa-automation-base/tree/kotlin-junit5-playwright) - Kotlin | Playwright | JUnit 5 | Allure -\u003e Updated `31.12.2024`\n  - [typescript-playwright-allure](https://github.com/romsper/qa-automation-bases/tree/typescript-playwright-allure) - TypeScript | Playwright | Allure -\u003e Updated `31.12.2024`\n  - [kotlin-junit5-appium](https://github.com/romsper/qa-automation-bases/tree/kotlin-junit5-appium) - Kotlin | Selenide/Appium | JUnit 5 | Allure | Allure EE | TestRail\n  - [kotlin-testng-rest-assured](https://github.com/romsper/qa-automation-bases/tree/kotlin-testng-rest-assured) - Kotlin | Rest-Assured | Selenide | TestNG | Allure\n  - [js-mocha-chai](https://github.com/romsper/qa-automation-bases/tree/js-mocha-chai) - JS | Mocha | Chai | Allure\n  \n#### Frameworks \n\n[Kotlin](https://kotlinlang.org/docs/reference/) - programming language based on JVM and fully compatible with Java! It's much easier than Java don't worry ;) \n\n[JUnit5](https://junit.org/junit5/docs/current/user-guide/) - highly recommend reading about [DataProviders](https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests-sources) aka Sources\n\n[Selenide](https://selenide.org/) - framework is a kind of wrapper based on Selenium WebDriver and is developed especially for testing purposes.\n\n[Selenoid](https://aerokube.com/selenoid/latest/) - powerful `Golang` implementation of the original Selenium Grid farm. One configuration for the `localhost` and `remote` runs and easy to update and manage through `Docker` and `VNC` `(free)`. Also, they provide `paid` `Kubernetes` (`free` for 4 pods) solution [Moon](https://aerokube.com/)\n\n[Retrofit](https://square.github.io/retrofit/) - this is an API framework. It's much faster and easier than Rest-Assured. Also, you can try [Feign](https://github.com/OpenFeign/feign)\n\n[Kotest](https://github.com/kotest/kotest) - highly recommend using this framework as the main assertion framework for your project. This one [AssertJ](https://assertj.github.io/doc/) is good if you prefer Java.\n\n\n# Report\n\n[Allure](https://docs.qameta.io/allure/) - THE BEST test report framework ever! This framework supports the most popular languages and test runners. It's easy to integrate into almost any CI.\n\n#### The most popular annotation: \n\n`@Step` - combine all steps (annotated methods) and generate a readable test report where you will see all the steps as text. Also, it adds variables with values to the step into the report.\n\n`@DisplayName` - just JUnit 5 annotation which means a test name\n\n`@Issue` - add a link to Jira (or any other system) to your report for the test\n\n`@TmsLink` - add a link to TestRail (or any other system) to your report for the test\n\n`@Severity` - add a marker as BLOCKER or CRITICAL into your report for the test\n\n`@Flaky` - add a marker to the test as flaky in the report system\n\n`@Epic` -\u003e `@Feature` -\u003e `@Story` - combine your tests into a tree and split them by epic | feature | story\n\n\n[Allure EE](https://qameta.io/) - this is like Allure + TestRail + CI. [Documentation](https://docs.qameta.io/allure-ee/) with features and etc.\n\n#### The main features: \n\n`Live documentation` - Allure EE keeps your test documentation updated based on test runs.\n\n`TMS` - Allure EE supports both Manual and Automated testing. Unified test documentation allows you to manage and review all your product tests from a single view. Also, it has a lot of filters and you can create custom fields and filters.\n\n`Integrations` - Allure EE is based on Allure and has the same integrations and many more with Jira and other systems.\n\n`Metrics` - Allure EE supports many more metrics than Allure and you can integrate the system with Grafana and add custom metrics etc.\n\n`Migration` - Allure EE supports test-cases transfer from any TMS like TestRail etc.\n\n# How to run\n\n#### Before start\n\nYou need to install `Selenoid and Selenoid-UI` and `Allure`\n\n#### Notes\n\n1. Those tests were split by `TAG` (annotation above test classes) and you need to check this before if you want to run only one group. \n2. If you want to run a few test classes please be sure you have free nodes for UI because all tests work in `PARALLEL` mode by class\n\n#### Start\n\nRun only one test group/tag: \n\n```bash\n$ mvn clean test -D TAG=\u003ctag name\u003e\n```\nor\n```bash\n$ ./gradlew clean test -D TAG=\u003ctag name\u003e\n```\n\nRun all tests (UI and BACK):\n\n```bash\n$ mvn clean test\n```\nor\n```bash\n$ ./gradlew clean test\n```\nor\n```bash\n$ mvn clean test -D TAG=regress\n```\n[ONLY FOR UI] If you want to run the tests on the remote computer you need to transfer `HUB_URL` variable to the env:\n```bash\n$ mvn clean test -D TAG=\u003ctag name\u003e -D HUB_URL=\u003cip or host\u003e\n```\n\n#### After tests\n\nIf you want to see the test report locally: \n```bash\n$ allure serve target/allure-results\n```\nor\n```bash\n$ allure serve target/allure-results --host localhost --port 9999\n```\n\nIf you want just generate the test report without web service run:\n```bash\n$ allure generate target/allure-results\n```\nGo to `src/allure-report` folder and click `index.html`\n\n#### CI\n\nIf you use Jenkins or TeamCity and etc. the report will be generated automatically after a run and connected with this job. You will need just click on the Allure logo! \n  \n### Allure + Grafana\n\n**Allure** generates a report specially for **Grafana** and **Prometheus**\n\nHow to use it for **Grafana**:\n  - Generate **allure-report** by `$ allure generate allure-results`\n  - Install **InfluxDB** (use **Docker**)\n  - Get a file for **InfluxDB** in `/allure-report/export/influxDbData.txt`\n  - Install **Grafana** (use **Docker**)\n  - Integrate **InfluxDB** to **Grafana**\n  - Send the report to **InfluxDB** by \n  - `$ curl -XPOST 'http://\u003chost\u003e/write?db=\u003cdb name\u003e' --data-binary @allure-report/export/influxDbData.txt`\n  - Check **Grafana** \n  - ***PROFIT***\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromsper%2Fqa-automation-base","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromsper%2Fqa-automation-base","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromsper%2Fqa-automation-base/lists"}