{"id":37016489,"url":"https://github.com/netcracker/qubership-testing-platform-ram","last_synced_at":"2026-02-05T15:00:18.378Z","repository":{"id":298303609,"uuid":"967909673","full_name":"Netcracker/qubership-testing-platform-ram","owner":"Netcracker","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-22T12:36:03.000Z","size":2117,"stargazers_count":0,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-23T04:22:40.648Z","etag":null,"topics":["qubership-tp"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Netcracker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-17T07:33:55.000Z","updated_at":"2026-01-20T09:08:19.000Z","dependencies_parsed_at":"2025-07-22T07:13:53.233Z","dependency_job_id":"bed5c81f-353b-42a0-bb53-ae049d5f8523","html_url":"https://github.com/Netcracker/qubership-testing-platform-ram","commit_stats":null,"previous_names":["netcracker/qubership-testing-platform-ram"],"tags_count":7,"template":false,"template_full_name":"Netcracker/qubership-repo-template","purl":"pkg:github/Netcracker/qubership-testing-platform-ram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-testing-platform-ram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-testing-platform-ram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-testing-platform-ram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-testing-platform-ram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Netcracker","download_url":"https://codeload.github.com/Netcracker/qubership-testing-platform-ram/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-testing-platform-ram/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29124793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T14:05:12.718Z","status":"ssl_error","status_checked_at":"2026-02-05T14:03:53.078Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["qubership-tp"],"created_at":"2026-01-14T01:51:52.901Z","updated_at":"2026-02-05T15:00:18.367Z","avatar_url":"https://github.com/Netcracker.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Qubership Testing Platform RAM Service\n\n## System Requirements\nThe system consists of two services: ATP RAM and ATP RAM Report Receiver.\n\n|              |          ATP RAM           |  ATP RAM Report Receiver   |\n|--------------|:--------------------------:|:--------------------------:|\n|              | **Requests** / **Limits** | **Requests** / **Limits** |\n| **CPU**      |        100m / 200m         |        500m / 500m         |\n| **RAM**      |         1Gi / 1Gi          |         1Gi / 1Gi          |\n| **replicas** |             1              |             2              |\n\n## Database System Requirements\n\n|         |         MongoDB           |         GridFS            |\n|---------|:-------------------------:|:-------------------------:|\n|         | **Requests** / **Limits** | **Requests** / **Limits** |\n| **CPU** |        100m / 100m        |        100m / 100m        |\n| **RAM** |         1Gi / 1Gi         |       512Mi / 512Mi       |\n\n## Description\n\nQubership Testing Platform (QSTP) is a system intended to analyze the results of the execution of test scenarios and to publish the results for the project team.\n\nRun and Analysis Management (RAM) is a tool that allows collecting information on AT runs on different projects in a single database, helps in analyzing the results and allows obtaining graphs of statistical data.\n\n## Tasks Covered\n\nUsers running a large number of tests need to collect information about the runs and to analyze it.\n\nTo solve this problem, RAM Service was implemented, which covers the following tasks:\n\n- data storage;\n- analysis of the results;\n- viewing information about steps (status, message with logged information, screenshots, etc.);\n- viewing statistics;\n- results reporting via email (both automatic upon completion of tests and manual);\n- comparing two or more runs, etc.\n\n## Entities\n\n**Project**\n\nIt is an entity in the QSTP system intended for managing testing of a project. In QSTP, the projects are independent of each other and can be developed in parallel.\n\n**Test Plan**\n\nThis entity stores Test Case(s), settings necessary for its execution and Test Run(s) execution results.\n\nTest Plan is intended for preparing and organizing functional tests within single/multiple project versions.\n\n**Execution Request**\n\nThis entity allows the user to execute a set of automated and semi-automated Test Cases (TCs). Possible values for execution statuses are described below.\n\n**Test Case**\n\nThe Test Case entity stores the testing script.\n\n**Test Suite**\n\nThis entity is intended to group Test Case(s) by an attribute.\n\n**Test Run**\n\nThe Test Run entity is created when a Test Case is added to Execution Request. Test Run (TR) displays the Test Case execution status in the Execution Request. The possible values for testing and execution statuses are described below.\n\n**Log Record**\n\nThe Log Record entity is a child object of Test Run that stores information on the execution of a Test Case step. The possible values for testing statuses are described below.\n\n**AKB Record**\n\nAnalysis Knowledge Base Record (AKB Record) is a tool for detecting errors in Log Records based on regular expressions.\n\nBy means of AKB Records, a user can create a list of regular expressions for the subsequent search of errors in Test Runs logs. AKB Records are valid within a current project.\n\n**Global AKB Record**\n\nAnalysis Knowledge Base Record (AKB Record) is a tool for detecting errors in Log Records (LRs) based on regular expressions.\n\nBy means of AKB Records, a user can create a list of regular expressions for the subsequent search of errors in Test Runs logs. Global AKB Records are valid within a system, thus the same Global AKB Record can be used within several projects.\n\n**Defect**\n\nIt is an entity designed to register issues detected at the Test Runs/Log Records analysis.\n\n**Labels**\n\nIt is an entity in the QSTP system that allows grouping/selecting Execution Requests based on criteria, which are not available in QSTP.\n\n**Manual Root Cause**\n\nThis entity is used to manually specify the Failure Reason for Test Run on the Test Run Tree View, Execution Request Tree View pages.\n\n**Notifications**\n\nAfter Execution Request is completed, the user(s) can receive a notification reporting about ER execution results.\n\n## Local build\n\nIn IntelliJ IDEA, one can select 'GitHub' Profile in Maven Settings menu on the right, then expand Lifecycle dropdown of qubership-atp-ram-aggregator module, then select 'clean' and 'install' options and click 'Run Maven Build' green arrow button on the top.\n\nOr, one can execute the command:\n```bash\nmvn -P github clean install\n```\n\n## How to start Backend\n\n### Mongo params for configuring connections (optional step)\n\nSet default value in application.properties for:\n* **max.connection.idle.time** - the maximum idle time for a pooled connection im ms (_default: 0ms_)\n* **min.connections.per.host** - the minimum size of the connection pool per host (_default: 100_)\n* **connections.per.host** - the maximum size of the connection pool per host (_default: 2000_)\n\n## Build project\n\nGo to Maven - 'qubership-atp-ram-app' module\nExecute:\n**mvn clean package** (in some case with flag `-DskipTests`)\nas a result, the **qubership-atp-ram\\web** folder will be filled\n\n## Create new Configuration\n\n1. Go to Run menu and click Edit Configuration\n2. Add new Application configuration\n3. Set parameters:\n   - Name = `Local RAM dev01`, for example\n   - Run on: `Local machine`\n   - JDK/JRE: Java 8 SDK of `qubership-atp-ram-app' module`\n   - Module for class path: `qubership-atp-ram-app`\n   - Main class: `org.qubership.atp.ram.Main`\n   - Program arguments: left empty\n   - Working directory: path to your atp-ram project on local machine, `C:\\atp-ram` for example\n4. Add the following parameters in VM options - click Modify Options and select \"Add VM Options\":\n\ndev04 (kuber):\n-DSPRING_PROFILES=default  with security\n```text\n-Dspring.config.location=qubership-atp-ram/qubership-atp-ram-app/src/main/config/application.properties\n-DSERVICE_NAME=atp-ram-local\n-Dbase.url=localhost\n-Dspring.resources.static-locations=file:./qubership-atp-ram/web/\n-Datp-ram.web.root-page=qubership-atp-ram/web/index.html\n-DfixedRate.tr.in.milliseconds=${SCHEDULER_RATE_TR:600000}\n-DfixedRate.er.in.milliseconds=${SCHEDULER_RATE_ER:600000}\n-Dmin.connections.per.host=5\n-Dmongodb.database=some_db\n-Dmongodb.host=127.0.0.1\n-Dmongodb.port=31143\n-Dmongodb.user=some_user\n-Dmongodb.password=some_pass\n-Dgridfs.database=some_db\n-Dgridfs.host=127.0.0.1\n-Dgridfs.port=31143\n-Dgridfs.user=some_user\n-Dgridfs.password=some_pass\n-Dmail.smtp.host=iplanet.some-domain.com\n-Dmail.smtp.ssl.enable=false\n-Dkafka.project.event.enable=${KAFKA_PROJECT_EVENT_ENABLE:false}\n-Dkafka.test.plan.event.enable=${KAFKA_TEST_PLAN_EVENT_ENABLE:false}\n-Dkeycloak.auth-server-url=https://atp-keycloak-service-address/auth\n-Dkeycloak.realm=atp2\n-Dkeycloak.resource=ram\n-Dkeycloak.credentials.secret=b33ede0f-2834-4f43-aaec-ee8515e21f61\n-Datp-auth.project_info_endpoint=/api/v1/users/projects\n-Dcatalogue.url=http://atp-catalogue-service-address\n-Dfeign.atp.catalogue.url=https://test-atp-catalogue-service-address\n-Dfeign.atp.datasets.url=https://test-atp-dataset-service-address\n-Dfeign.atp.environments.url=http://test-atp-environments-service-address\n-Dfeign.atp.orchestrator.url=http://test-atp-orchestrator-service-address\n-Dfeign.atp.mailsender.url=http://test-atp-mail-sender-service-address\n-DKEYCLOAK_ENABLED=true\n-Dspring.profiles.active=default\n-Dspring.cloud.consul.config.enabled=false\n-Datp.public.gateway.url=http://test-atp-public-gateway-service-address\n-Datp.internal.gateway.url=http://test-atp-internal-gateway-service-address\n-Deureka.client.serviceUrl.defaultZone=http://atp-registry-service-service-address:8761\n-Deureka.client.enabled=true\n-Deureka.client.fetchRegistry=true\n```\n\nFor local work with feign clients (for every needed services):\nIn lens create new resource (Network-\u003eIngress)\ncopy basic and change these arguments:\n\nname: atp-ram22\n.....\n```yaml\nspec:\n    ingressClassName: nginx\n    rules:\n       - host: test-atp-ram-service-address\n         http:\n            paths:\n              - path: /\n                pathType: Prefix\n                backend:\n                    service:\n                        name: atp-ram\n                        port:\n                            number: 8080\n```\n\n-DSPRING_PROFILES=disable-security  without security\n```text\n-Dspring.config.location=qubership-atp-ram-app/src/main/config/application.properties\n-Dbase.url=localhost\n-Dspring.resources.static-locations=file:./qubership-atp-ram/web/\n-Datp-ram.web.root-page=qubership-atp-ram/web/index.html\n-DfixedRate.tr.in.milliseconds=${SCHEDULER_RATE_TR:600000}\n-DfixedRate.er.in.milliseconds=${SCHEDULER_RATE_ER:300000}\n-Dmongodb.database=dev01_ram\n-Dmongodb.host=127.0.0.1\n-Dmongodb.port=31143\n-Dmongodb.user=dev01_ram\n-Dmongodb.password=dev01_ram\n-Dgridfs.database=dev01_gridfs\n-Dgridfs.host=dev-atp-cloud.some-domain.com\n-Dgridfs.port=32763\n-Dgridfs.user=dev01_gridfs\n-Dgridfs.password=dev01_gridfs\n-Dcatalogue.url=https://atp-catalogue-service-address\n-Dmail.smtp.host=iplanet.some-domain.com\n-Dmail.smtp.ssl.enable=false\n-Dkafka.project.event.enable=${KAFKA_PROJECT_EVENT_ENABLE:false}\n-Dkeycloak.auth-server-url=https://atp-keycloak-service-address/auth\n-Dkeycloak.realm=atp2\n-Dkeycloak.resource=ram\n-Dkeycloak.credentials.secret=b33ede0f-2834-4f43-aaec-ee8515e21f61\n-Datp-auth.project_info_endpoint=/api/v1/projects\n-Dfeign.atp.catalogue.url=https://atp-catalogue-service-address\n-Dfeign.atp.datasets.url=https://atp-dataset-service-address\n-Dfeign.atp.environments.url=http://atp-environments-service-address\n-Dfeign.atp.orchestrator.url=http://atp-orchestrator-service-address\n-Dfeign.atp.mailsender.url=http://atp-mail-sender-service-address\n-DKEYCLOAK_ENABLED=false\n-DSPRING_PROFILES=disable-security\n-Dspring.cloud.consul.config.enabled=false\n-Dkafka.mails.responses.enable=false\n-Dkafka.project.event.enable=false\n-Dkafka.rca.enable=false\n-Dkafka.fdr.enable=false\n-Dkafka.mails.enable=false\n-Dkafka.test.plan.event.enable=false\n```\n\ndev222:\n```text\n-Dspring.config.location=qubership-atp-ram/qubership-atp-ram-app/src/main/config/application.properties\n-Dbase.url=localhost\n-Dspring.resources.static-locations=file:./qubership-atp-ram/web/\n-Datp-ram.web.root-page=qubership-atp-ram/web/index.html\n-DfixedRate.tr.in.milliseconds=${SCHEDULER_RATE_TR:600000}\n-DfixedRate.er.in.milliseconds=${SCHEDULER_RATE_ER:600000}\n-Dmongodb.database=dev222_ram\n-Dmongodb.host=localhost\n-Dmongodb.port=27017\n-Dmongodb.user=dev222_ram\n-Dmongodb.password=dev222_ram\n-Dgridfs.database=dev222_ram\n-Dgridfs.host=localhost\n-Dgridfs.port=27017\n-Dgridfs.user=dev222_ram\n-Dgridfs.password=dev222_ram\n-Dcatalogue.url=https://atp-catalogue-dev222.dev-atp-cloud.some-domain.com\n-Dmail.smtp.host=iplanet.some-domain.com\n-Dmail.smtp.ssl.enable=false\n-Dkafka.project.event.enable=${KAFKA_PROJECT_EVENT_ENABLE:false}\n-Dkafka.test.plan.event.enable=${KAFKA_TEST_PLAN_EVENT_ENABLE:false}\n-Dkeycloak.auth-server-url=https://atp-keycloak-dev222.dev-atp-cloud.some-domain.com/auth\n-Dkeycloak.realm=atp2\n-Dkeycloak.resource=ram\n-Dkeycloak.credentials.secret=b33ede0f-2834-4f43-aaec-ee8515e21f61\n-Datp-auth.project_info_endpoint=/api/v1/users/projects\n-Dfeign.atp.catalogue.url=https://atp-catalogue-dev222.dev-atp-cloud.some-domain.com\n-Dfeign.atp.datasets.url=https://atp-dataset-dev222.dev-atp-cloud.some-domain.com\n-Dfeign.atp.environments.url=http://atp-environments-dev222.dev-atp-cloud.some-domain.com\n-Dfeign.atp.orchestrator.url=http://atp-orchestrator-dev222.dev-atp-cloud.some-domain.com\n-Dfeign.atp.mailsender.url=http://atp-mail-sender-dev222.dev-atp-cloud.some-domain.com\n-DKEYCLOAK_ENABLED=true\n-DSPRING_PROFILES=default\n-Dspring.cloud.consul.config.enabled=false\n```\n\nUse `atp1.integration.enable=false`, when need to disable integration with ATP1 (optional)\n\n## Create mongo and gridfs users (optional step - when creation mongo and users is needed)\n1. Connect to mongo (Search knowledge base for: Short. Connect to Mongo cluster in Openshift from local environment)\n2. Run command: `use atpram`\n3. Run command: `db.createUser({user: \"ramuser\",pwd: \"rampass\",roles: [\"readWrite\"]})`\n4. Run command: `use gridfs`\n5. Run command: `db.createUser({user: \"ramuser\",pwd: \"rampass\",roles: [\"readWrite\"]})`\n\n## Connect and Port Forward to Mongo and GridFs\n1. Connect to mongo:\n   - for OpenShift use separate instructions\n   - for Kubernetes use separate instructions\n   - Note! Use the same ports for port forward as specified in VM options configuration, for example:\n```text\n   -Dmongodb.port=27017\n   -Dgridfs.port=27017\n   oc port-forward \u003cpod\u003e 27017:27017\n```\n\n## MailSender selection (optional step)\n### The current version implements two mail senders\n- mail-sender: used rest request to atp-mail-sender\n- kafka: used kafka\n### You can select the kafka sender type via property\n```properties\nkafka.enable=true\n```\nUsed by default the mail-sender\n### If you used kafka sender then you need to set the spring.kafka.bootstrap-servers and kafka.mails.topic properties\n```properties\nkafka.mails.topic=mails\nspring.kafka.bootstrap-servers=kafka:9092\n```\n### Full example\n```properties\nkafka.enable=${KAFKA_ENABLE:false}\nkafka.mails.topic=${KAFKA_MAILS_TOPIC:mails}\nspring.kafka.bootstrap-servers=${KAFKA_SERVERS:kafka:9092}\n```\n## Turn off connection to Catalog (optional step)\nTo turn off connection to Catalog, please comment the following lines in class **CatalogRestClient**\n```text\n        try {\n            m2mRestTemplate.exchange(catalogueUrl + CATALOGUE_ENDPOINT, HttpMethod.POST, entity, List.class);\n        } catch (Exception e) {\n            log.error(\"Unable update test cases in catalogue\", e);\n        }\n```\n\n## Run Main\n\nJust run Main#main with args from step \"Create new Configuration\"\n\n## Set authorization token\n\n1. Open cloud catalogue\n2. Open DevTools by click F12\n3. Go to DevTools \u003e Application tab \u003e Storage \u003e Session Storage\n4. Copy values for token and user parameters\n5. Go to local catalogue\n6. Open DevTools by click F12\n7. Go to DevTools \u003e Application tab \u003e Storage \u003e Session Storage\n8. Create token and user parameters and paste copied values from cloud catalogue\n\n## How to create dump on production and restore it to local DB (optional step)\n[Create and restore dump]\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-testing-platform-ram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetcracker%2Fqubership-testing-platform-ram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-testing-platform-ram/lists"}