{"id":36418008,"url":"https://github.com/griddynamics/test-data-pool","last_synced_at":"2026-01-11T17:01:19.137Z","repository":{"id":57724746,"uuid":"63328956","full_name":"griddynamics/test-data-pool","owner":"griddynamics","description":null,"archived":false,"fork":false,"pushed_at":"2018-05-04T18:26:28.000Z","size":103,"stargazers_count":0,"open_issues_count":4,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-09T01:14:18.350Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/griddynamics.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}},"created_at":"2016-07-14T10:56:08.000Z","updated_at":"2016-07-15T10:58:25.000Z","dependencies_parsed_at":"2022-09-11T04:52:31.784Z","dependency_job_id":null,"html_url":"https://github.com/griddynamics/test-data-pool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/griddynamics/test-data-pool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/griddynamics%2Ftest-data-pool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/griddynamics%2Ftest-data-pool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/griddynamics%2Ftest-data-pool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/griddynamics%2Ftest-data-pool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/griddynamics","download_url":"https://codeload.github.com/griddynamics/test-data-pool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/griddynamics%2Ftest-data-pool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28314254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"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":[],"created_at":"2026-01-11T17:00:39.332Z","updated_at":"2026-01-11T17:01:19.106Z","avatar_url":"https://github.com/griddynamics.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data Pool tool.\nData Pool is a configurable test automation supporting tool which fetches data from known data-sources and provides a way to query the data which is safe to be used by tests.\n\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.griddynamics.qa.datapool/data-pool/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/com.griddynamics.qa.datapool/data-pool)\n\n[License information](/data-pool/license.txt).\n\n## Purpose\n In a real world you need to run your automated tests against different environments (“dev”, “test”, “stage”, “pre-prod”, “prod” etc). Normally those environments point to different DBs thus data-sets may vary from endpoint to endpoint. At the same time, your tests need to know what to expect in each particular environment case. If you follow so called  “FullDB” approach your tests are being run against an application-under-test(AUT)'s instance pointing to a pre-populated DB or some other data-source and you do not have much control over that data. Somehow you need to ensure expected values correspond to actual data used by the AUT otherwise you will get false alarms due to “no-such-data” or “wrong-state-data” cases. Also your environments may not be completely ready (e.g. some services or third party components are absent or misconfigured). So a possible way is to run at least those tests which are able to pass on that environment while skipping all others. Another issue is coupling tests to test data, i.e. you need either to \"hard-code\" several sets of data or copy-paste tests themselves.\n\nData Pool solves or significantly mitigates the issues outlined above by providing a single source of valid and available expected data for your tests.\n\n## Features\n* fetches data from known data-sources and stores it into the pool(in-memory storage);\n* provides a way to query the pool in order to get valid data which is safe to be used by tests;\n* allows to filter fetched data to get those values only which are needed by concrete test;\n* makes it possible to store and load fetched data to/from file system;\n* highly customizable, e.g. you can plug your own fetchers, filter criteria, custom data-types etc in.\n\n## Getting started\n\n### Download\n```\n\u003cdependency\u003e\n   \u003cgroupId\u003ecom.griddynamics.qa.datapool\u003c/groupId\u003e\n   \u003cartifactId\u003edata-pool\u003c/artifactId\u003e\n   \u003cversion\u003e1.0.1\u003c/version\u003e\n \u003c/dependency\u003e\n```\n\n### Examples\nPlease have a look at [data-pool-examples](/data-pool-examples) project. It contains a set of ready-to-run examples like:\n\n#### Fetching\n\n* there are two simple fetchers by default: [DbFetcher](/data-pool/src/main/java/com/griddynamics/qa/datapool/fetchers/DbFetcher.java) and [SimpleRestFetcher](/data-pool/src/main/java/com/griddynamics/qa/datapool/fetchers/SimpleRestFetcher.java) ;\n* you could create your own fetchers by extending [AbstractFetcher](/data-pool/src/main/java/com/griddynamics/qa/datapool/fetchers/AbstractFetcher.java) class or implementing [IFetcher](/data-pool/src/main/java/com/griddynamics/qa/datapool/fetchers/IFetcher.java) interface;\n* Data Pool uses data-type managers to fetch data. So you should provide corresponding managers which know from where to get data and how to build corresponding data-type instances. Managers shall implement [IDataTypeManager](/data-pool/src/main/java/com/griddynamics/qa/datapool/datatype/IDataTypeManager.java) interface. See [UserManager](/data-pool-examples/src/main/java/com/griddynamics/qa/datapool/examples/dbfetcher/UserManager.java) as an example.\n\nFor DB fetching example please see [DbFetcherExample](/data-pool-examples/src/main/java/com/griddynamics/qa/datapool/examples/dbfetcher/DbFetcherExample.java).\n\nFor REST Web Service fetching example please see [SimpleRestFetcherExample](/data-pool-examples/src/main/java/com/griddynamics/qa/datapool/examples/simplerestfetcher/SimpleRestFetcherExample.java) .\n\n#### Query and filtering\n\n* there is a set of built-in matchers(IS_LESS, IS, etc). Have a look at [StandardMatchers](/data-pool/src/main/java/com/griddynamics/qa/datapool/matchers/StandardMatchers.java);\n* you could create your own matchers by implementing [IMatcher](/data-pool/src/main/java/com/griddynamics/qa/datapool/IMatcher.java) interface.\n\nFor Find\u0026Filter example please see [FindExample](/data-pool-examples/src/main/java/com/griddynamics/qa/datapool/examples/find/FindExample.java)\n\n#### Store\u0026Load\n\n* by default Data Pool supports some basic Java types upon storing/loading data;\n* you could support you own types by extending [Yamler](/data-pool/src/main/java/com/griddynamics/qa/datapool/serialization/Yamler.java) class.\n\nFor Find\u0026Filter example please see [SerializationExample](/data-pool-examples/src/main/java/com/griddynamics/qa/datapool/examples/seriliazation/SerializationExample.java)\n\n#### Usage by automated tests\nFor Cucumber based example please have a look at [.../cuke/datapool.feature](/data-pool-examples/src/test/resources/com/griddynamics/qa/datapool/examples/cuke/datapool.feature).\n\n### Package view\n![Package view](./data-pool_package_view.jpeg \"Package view\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgriddynamics%2Ftest-data-pool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgriddynamics%2Ftest-data-pool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgriddynamics%2Ftest-data-pool/lists"}