{"id":18965840,"url":"https://github.com/wso2/testgrid","last_synced_at":"2025-04-05T04:11:40.699Z","repository":{"id":40911207,"uuid":"108240819","full_name":"wso2/testgrid","owner":"wso2","description":"TestGrid provides the enterprise customers confidence on the products and updates WSO2 ship.","archived":false,"fork":false,"pushed_at":"2025-03-28T07:23:39.000Z","size":32481,"stargazers_count":56,"open_issues_count":98,"forks_count":68,"subscribers_count":48,"default_branch":"master","last_synced_at":"2025-03-29T03:07:35.352Z","etag":null,"topics":["common"],"latest_commit_sha":null,"homepage":"","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/wso2.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGE_LOG.md","contributing":"CONTRIBUTING.md","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":"2017-10-25T08:21:00.000Z","updated_at":"2025-03-28T07:23:43.000Z","dependencies_parsed_at":"2024-03-28T12:47:20.718Z","dependency_job_id":"78c62814-fc07-4fc4-9d26-c865ed7b83ee","html_url":"https://github.com/wso2/testgrid","commit_stats":null,"previous_names":["wso2-incubator/wso2-test-grid"],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Ftestgrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Ftestgrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Ftestgrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Ftestgrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wso2","download_url":"https://codeload.github.com/wso2/testgrid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284950,"owners_count":20913704,"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":["common"],"created_at":"2024-11-08T14:32:55.589Z","updated_at":"2025-04-05T04:11:40.661Z","avatar_url":"https://github.com/wso2.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://wso2.org/jenkins/buildStatus/icon?job=testgrid/testgrid)](https://wso2.org/jenkins/job/testgrid/job/testgrid/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n# WSO2 TestGrid\n\nWelcome to main repo of WSO2 TestGrid.\n\n\nTestGrid strengthens the positioning of WSO2 products and adds major value to the subscriptions WSO2 offers. Following are some benefits TestGrid provide:\n\n1. TestGrid tests entire feature-set of our products (APIM/IS/EI/SP/IOT) against a wide-array of supported infrastructure combinations.\nIn essence, we add value to what we have claimed at [Tested DBMSs](https://docs.wso2.com/display/compatibility/Tested+DBMSs),\n [Tested Operating Systems and JDKs](https://docs.wso2.com/display/compatibility/Tested+Operating+Systems+and+JDKs),\n and more.\n\n Here's a conversation that may highlight the value of Testgrid at WSO2:\n\n\u003e _User asks_  : Does WSO2 IS support IBM JDK 8 with DB2 database on AIX\noperating system?\n\n\u003e _WSO2 response_ : Yes, IS has been tested exactly against this set of\ncombinations, and is proven to work.\n\u003e You can find the current status of this infrastructure combination in\nthe WSO2 TestGrid's dashboard at testgrid-live.wso2.example.com.\n\n2. Users get to validate their WSO2 deployments through the scenario test\nsupport we provide.\n\n3. Users get to see a document with a set of user stories each having\nscenario test scripts. Each scenario test script will test for minor\nconfiguration variations (like caching enabled/disabled).\nThis document will provide a single source of truth for user stories.\nSee the current development at\n[identity-test-integration](https://github.com/wso2-incubator/identity-test-integration/blob/master/README.md\n), and [apim-test-integration](https://github.com/wso2-incubator/apim-test-integration/blob/master/README.md)\nrepositories.\n\n## Where to go next from here?\n\n1. Read the quick architecture details below\n2. Do the [quick start guide](docs/QuickStartGuide.md), and get a local testgrid running\n3. Read the Testgrid concepts at [Infrastructure / Deployment / and Scenarios Repository Structure](docs/Infrastructure-Deployment-Scenarios-Repository-Structure.md)\n4. See developer docs at [How to Pass Data between Testgrid steps](docs/How-to-Pass-Data-to-Next-Steps.md)\n\n## Building Testgrid\n\nYou need Oracle JDK 8, Node JS, MySQL Server 5 and Apache Maven 3.5 to build Testgrid.\n\n`mvn clean install`\n\nNOTE: For Ubuntu/Debian to install NodeJS, issue the following commands\n1. `sudo apt update`\n2. `sudo apt install nodejs`\n\n## Testgrid architecture\n\n### Overall system components are as follows:\n\n![testgrid-system-architecture](docs/testgrid-architecture.png)\n\n* Testgrid uses Jenkins as the runtime engine due to its CI capabilities that\nclosely matches with some of the key requirements for testgrid's\nfunction. They include:\n\n1. Mature master-slave architecture: Jenkins provides a scalable model for\nTestGrid to execute multiple test-runs in parallel. The slave nodes can be\nscaled up and down depending on the size of the build queue.\nThis allows TestGrid to be highly scalable which is a key requirement when\nthe number of infrastructure combinations grow.\n2. Build triggers for running builds periodically, per git pull-request merge etc.\n3. Scripting support: Jenkins2 provides scripting of builds through\nJenkins Pipelines.\n\n* TestGrid Core - TestGrid core is a library that knows how to execute a given\ntest-plan. In TestGrid, Jenkins is the runtime execution engine, and the\nTestGrid Core is just a library. Jenkins is the one that instruct the TestGrid\nCore to execute test-plans, publish reports etc. as appropriate.\n\n* TestGrid Database - TestGrid test-run status is persisted in a database.\nThe TestGrid Core store the build data in here. It includes the tested products\n(ie. product name+version), deployment patterns, and the test status of each\nscenario.\nPlease find the [ER diagram](docs/erd/testgrid-erd.png).\n\n* Dashboard - Dashboard shows the build status of durable jobs.\n\n\n### Testgrid core execution flow\n\nGiven a test-plan as an input, testgrid core knows where to\nfind the infrastructure-as-code repo, product deployment scripts (puppet?),\nand test scripts. It can then execute the testgrid's three-step\nexecution flow:\n\n1. Provision infrastructure (AWS/K8S/Azure)\n2. Create the deployment (Puppet/Shell scripting)\n3. Execute test scripts (JMeter / TestNG (via maven))\n\n![testgrid-system-architecture](docs/testgrid-testplan-executor-workflow.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwso2%2Ftestgrid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwso2%2Ftestgrid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwso2%2Ftestgrid/lists"}