Repository files navigation

ClearTH

This is the official ClearTH project repository.

Introduction

ClearTH is a test automation tool whose primary purpose is testing of Clearing, Settlement and Back-Office Systems.

It is able to simultaneously execute multiple end-to-end test scenarios in batches. Test scenarios can be executed within a schedule, thus providing fully autonomous test execution capabilities.

ClearTH typically interacts with the system under test via its gateways / APIs, but can be easily extended with new protocols and data formats to work with.

ClearTH Core provides basic functionality to execute test scenarios, some automation actions and connectivity support. ClearTH modules extend this functionality with new data formats support and other features.

Applications that use ClearTH are built on top of ClearTH Core, optionally including its modules.

Tutorials

Here are the links to the tutorial videos introducing you to the main features of ClearTH and helping you get set up.

How to build

JDK 11 is required.

Build and publish ClearTH Core and modules to a local repository, i.e. "shared" directory in the repository root by executing the following command from the repository root:

$ ./gradlew clean build publish

Create a new project that will use ClearTH Core and its GUI module by executing the following command from the repository root.

New project will use Jetty 9.4 and, thus, JDK 11 is required to execute this command successfully.

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME

Alternatively, you can create the project that will use Jetty 12 to host ClearTH, thus, JDK 17 is required:

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME -Pserver=jetty12

Anyway, the new project will be created in the directory adjacent to the repository root. It will include Jetty server with needed modules installed and ready to host ClearTH.

Starting ClearTH

JDK 17 is required on ClearTH host if the project uses Jetty 12. Otherwise, JDK 11 is required.

Navigate to the directory with your new project and execute the following command to start ClearTH within the Jetty server:

$ ./gradlew jettyRun

Alternatively, you can use the following command to explicitly build the WAR file with your project and deploy it to the Jetty server:

$ ./gradlew runClearTH

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin

ClearTH in Docker

Navigate to the directory with your new project and create the WAR file with your project:

$ ./gradlew copyWar

Build Docker image:

$ docker build -t NAME:TAG -f docker/Dockerfile .

Create a directory for persistent data, give it write permissions:

$ mkdir docker-volume-data && chmod o+wx docker-volume-data/

Now you can start ClearTH from the image you built:

$ docker run -v ./docker-volume-data:/clearth/persistentFiles -p 8080:8080 -it NAME:TAG

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ClearTH

This is the official ClearTH project repository.

Introduction

ClearTH is a test automation tool whose primary purpose is testing of Clearing, Settlement and Back-Office Systems.

It is able to simultaneously execute multiple end-to-end test scenarios in batches. Test scenarios can be executed within a schedule, thus providing fully autonomous test execution capabilities.

ClearTH typically interacts with the system under test via its gateways / APIs, but can be easily extended with new protocols and data formats to work with.

ClearTH Core provides basic functionality to execute test scenarios, some automation actions and connectivity support. ClearTH modules extend this functionality with new data formats support and other features.

Applications that use ClearTH are built on top of ClearTH Core, optionally including its modules.

Tutorials

Here are the links to the tutorial videos introducing you to the main features of ClearTH and helping you get set up.

How to build

JDK 11 is required.

Build and publish ClearTH Core and modules to a local repository, i.e. "shared" directory in the repository root by executing the following command from the repository root:

$ ./gradlew clean build publish

Create a new project that will use ClearTH Core and its GUI module by executing the following command from the repository root.

New project will use Jetty 9.4 and, thus, JDK 11 is required to execute this command successfully.

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME

Alternatively, you can create the project that will use Jetty 12 to host ClearTH, thus, JDK 17 is required:

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME -Pserver=jetty12

Anyway, the new project will be created in the directory adjacent to the repository root. It will include Jetty server with needed modules installed and ready to host ClearTH.

Starting ClearTH

JDK 17 is required on ClearTH host if the project uses Jetty 12. Otherwise, JDK 11 is required.

Navigate to the directory with your new project and execute the following command to start ClearTH within the Jetty server:

$ ./gradlew jettyRun

Alternatively, you can use the following command to explicitly build the WAR file with your project and deploy it to the Jetty server:

$ ./gradlew runClearTH

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin

ClearTH in Docker

Navigate to the directory with your new project and create the WAR file with your project:

$ ./gradlew copyWar

Build Docker image:

$ docker build -t NAME:TAG -f docker/Dockerfile .

Create a directory for persistent data, give it write permissions:

$ mkdir docker-volume-data && chmod o+wx docker-volume-data/

Now you can start ClearTH from the image you built:

$ docker run -v ./docker-volume-data:/clearth/persistentFiles -p 8080:8080 -it NAME:TAG

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ClearTH

This is the official ClearTH project repository.

Introduction

ClearTH is a test automation tool whose primary purpose is testing of Clearing, Settlement and Back-Office Systems.

It is able to simultaneously execute multiple end-to-end test scenarios in batches. Test scenarios can be executed within a schedule, thus providing fully autonomous test execution capabilities.

ClearTH typically interacts with the system under test via its gateways / APIs, but can be easily extended with new protocols and data formats to work with.

ClearTH Core provides basic functionality to execute test scenarios, some automation actions and connectivity support. ClearTH modules extend this functionality with new data formats support and other features.

Applications that use ClearTH are built on top of ClearTH Core, optionally including its modules.

Tutorials

Here are the links to the tutorial videos introducing you to the main features of ClearTH and helping you get set up.

How to build

JDK 11 is required.

Build and publish ClearTH Core and modules to a local repository, i.e. "shared" directory in the repository root by executing the following command from the repository root:

$ ./gradlew clean build publish

Create a new project that will use ClearTH Core and its GUI module by executing the following command from the repository root.

New project will use Jetty 9.4 and, thus, JDK 11 is required to execute this command successfully.

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME

Alternatively, you can create the project that will use Jetty 12 to host ClearTH, thus, JDK 17 is required:

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME -Pserver=jetty12

Anyway, the new project will be created in the directory adjacent to the repository root. It will include Jetty server with needed modules installed and ready to host ClearTH.

Starting ClearTH

JDK 17 is required on ClearTH host if the project uses Jetty 12. Otherwise, JDK 11 is required.

Navigate to the directory with your new project and execute the following command to start ClearTH within the Jetty server:

$ ./gradlew jettyRun

Alternatively, you can use the following command to explicitly build the WAR file with your project and deploy it to the Jetty server:

$ ./gradlew runClearTH

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin

ClearTH in Docker

Navigate to the directory with your new project and create the WAR file with your project:

$ ./gradlew copyWar

Build Docker image:

$ docker build -t NAME:TAG -f docker/Dockerfile .

Create a directory for persistent data, give it write permissions:

$ mkdir docker-volume-data && chmod o+wx docker-volume-data/

Now you can start ClearTH from the image you built:

$ docker run -v ./docker-volume-data:/clearth/persistentFiles -p 8080:8080 -it NAME:TAG

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ClearTH

This is the official ClearTH project repository.

Introduction

ClearTH is a test automation tool whose primary purpose is testing of Clearing, Settlement and Back-Office Systems.

It is able to simultaneously execute multiple end-to-end test scenarios in batches. Test scenarios can be executed within a schedule, thus providing fully autonomous test execution capabilities.

ClearTH typically interacts with the system under test via its gateways / APIs, but can be easily extended with new protocols and data formats to work with.

ClearTH Core provides basic functionality to execute test scenarios, some automation actions and connectivity support. ClearTH modules extend this functionality with new data formats support and other features.

Applications that use ClearTH are built on top of ClearTH Core, optionally including its modules.

Tutorials

Here are the links to the tutorial videos introducing you to the main features of ClearTH and helping you get set up.

How to build

JDK 11 is required.

Build and publish ClearTH Core and modules to a local repository, i.e. "shared" directory in the repository root by executing the following command from the repository root:

$ ./gradlew clean build publish

Create a new project that will use ClearTH Core and its GUI module by executing the following command from the repository root.

New project will use Jetty 9.4 and, thus, JDK 11 is required to execute this command successfully.

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME

Alternatively, you can create the project that will use Jetty 12 to host ClearTH, thus, JDK 17 is required:

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME -Pserver=jetty12

Anyway, the new project will be created in the directory adjacent to the repository root. It will include Jetty server with needed modules installed and ready to host ClearTH.

Starting ClearTH

JDK 17 is required on ClearTH host if the project uses Jetty 12. Otherwise, JDK 11 is required.

Navigate to the directory with your new project and execute the following command to start ClearTH within the Jetty server:

$ ./gradlew jettyRun

Alternatively, you can use the following command to explicitly build the WAR file with your project and deploy it to the Jetty server:

$ ./gradlew runClearTH

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin

ClearTH in Docker

Navigate to the directory with your new project and create the WAR file with your project:

$ ./gradlew copyWar

Build Docker image:

$ docker build -t NAME:TAG -f docker/Dockerfile .

Create a directory for persistent data, give it write permissions:

$ mkdir docker-volume-data && chmod o+wx docker-volume-data/

Now you can start ClearTH from the image you built:

$ docker run -v ./docker-volume-data:/clearth/persistentFiles -p 8080:8080 -it NAME:TAG

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ClearTH

This is the official ClearTH project repository.

Introduction

ClearTH is a test automation tool whose primary purpose is testing of Clearing, Settlement and Back-Office Systems.

It is able to simultaneously execute multiple end-to-end test scenarios in batches. Test scenarios can be executed within a schedule, thus providing fully autonomous test execution capabilities.

ClearTH typically interacts with the system under test via its gateways / APIs, but can be easily extended with new protocols and data formats to work with.

ClearTH Core provides basic functionality to execute test scenarios, some automation actions and connectivity support. ClearTH modules extend this functionality with new data formats support and other features.

Applications that use ClearTH are built on top of ClearTH Core, optionally including its modules.

Tutorials

Here are the links to the tutorial videos introducing you to the main features of ClearTH and helping you get set up.

How to build

JDK 11 is required.

Build and publish ClearTH Core and modules to a local repository, i.e. "shared" directory in the repository root by executing the following command from the repository root:

$ ./gradlew clean build publish

Create a new project that will use ClearTH Core and its GUI module by executing the following command from the repository root.

New project will use Jetty 9.4 and, thus, JDK 11 is required to execute this command successfully.

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME

Alternatively, you can create the project that will use Jetty 12 to host ClearTH, thus, JDK 17 is required:

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME -Pserver=jetty12

Anyway, the new project will be created in the directory adjacent to the repository root. It will include Jetty server with needed modules installed and ready to host ClearTH.

Starting ClearTH

JDK 17 is required on ClearTH host if the project uses Jetty 12. Otherwise, JDK 11 is required.

Navigate to the directory with your new project and execute the following command to start ClearTH within the Jetty server:

$ ./gradlew jettyRun

Alternatively, you can use the following command to explicitly build the WAR file with your project and deploy it to the Jetty server:

$ ./gradlew runClearTH

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin

ClearTH in Docker

Navigate to the directory with your new project and create the WAR file with your project:

$ ./gradlew copyWar

Build Docker image:

$ docker build -t NAME:TAG -f docker/Dockerfile .

Create a directory for persistent data, give it write permissions:

$ mkdir docker-volume-data && chmod o+wx docker-volume-data/

Now you can start ClearTH from the image you built:

$ docker run -v ./docker-volume-data:/clearth/persistentFiles -p 8080:8080 -it NAME:TAG

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ClearTH

This is the official ClearTH project repository.

Introduction

ClearTH is a test automation tool whose primary purpose is testing of Clearing, Settlement and Back-Office Systems.

It is able to simultaneously execute multiple end-to-end test scenarios in batches. Test scenarios can be executed within a schedule, thus providing fully autonomous test execution capabilities.

ClearTH typically interacts with the system under test via its gateways / APIs, but can be easily extended with new protocols and data formats to work with.

ClearTH Core provides basic functionality to execute test scenarios, some automation actions and connectivity support. ClearTH modules extend this functionality with new data formats support and other features.

Applications that use ClearTH are built on top of ClearTH Core, optionally including its modules.

Tutorials

Here are the links to the tutorial videos introducing you to the main features of ClearTH and helping you get set up.

How to build

JDK 11 is required.

Build and publish ClearTH Core and modules to a local repository, i.e. "shared" directory in the repository root by executing the following command from the repository root:

$ ./gradlew clean build publish

Create a new project that will use ClearTH Core and its GUI module by executing the following command from the repository root.

New project will use Jetty 9.4 and, thus, JDK 11 is required to execute this command successfully.

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME

Alternatively, you can create the project that will use Jetty 12 to host ClearTH, thus, JDK 17 is required:

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME -Pserver=jetty12

Anyway, the new project will be created in the directory adjacent to the repository root. It will include Jetty server with needed modules installed and ready to host ClearTH.

Starting ClearTH

JDK 17 is required on ClearTH host if the project uses Jetty 12. Otherwise, JDK 11 is required.

Navigate to the directory with your new project and execute the following command to start ClearTH within the Jetty server:

$ ./gradlew jettyRun

Alternatively, you can use the following command to explicitly build the WAR file with your project and deploy it to the Jetty server:

$ ./gradlew runClearTH

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin

ClearTH in Docker

Navigate to the directory with your new project and create the WAR file with your project:

$ ./gradlew copyWar

Build Docker image:

$ docker build -t NAME:TAG -f docker/Dockerfile .

Create a directory for persistent data, give it write permissions:

$ mkdir docker-volume-data && chmod o+wx docker-volume-data/

Now you can start ClearTH from the image you built:

$ docker run -v ./docker-volume-data:/clearth/persistentFiles -p 8080:8080 -it NAME:TAG

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ClearTH

This is the official ClearTH project repository.

Introduction

ClearTH is a test automation tool whose primary purpose is testing of Clearing, Settlement and Back-Office Systems.

It is able to simultaneously execute multiple end-to-end test scenarios in batches. Test scenarios can be executed within a schedule, thus providing fully autonomous test execution capabilities.

ClearTH typically interacts with the system under test via its gateways / APIs, but can be easily extended with new protocols and data formats to work with.

ClearTH Core provides basic functionality to execute test scenarios, some automation actions and connectivity support. ClearTH modules extend this functionality with new data formats support and other features.

Applications that use ClearTH are built on top of ClearTH Core, optionally including its modules.

Tutorials

Here are the links to the tutorial videos introducing you to the main features of ClearTH and helping you get set up.

How to build

JDK 11 is required.

Build and publish ClearTH Core and modules to a local repository, i.e. "shared" directory in the repository root by executing the following command from the repository root:

$ ./gradlew clean build publish

Create a new project that will use ClearTH Core and its GUI module by executing the following command from the repository root.

New project will use Jetty 9.4 and, thus, JDK 11 is required to execute this command successfully.

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME

Alternatively, you can create the project that will use Jetty 12 to host ClearTH, thus, JDK 17 is required:

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME -Pserver=jetty12

Anyway, the new project will be created in the directory adjacent to the repository root. It will include Jetty server with needed modules installed and ready to host ClearTH.

Starting ClearTH

JDK 17 is required on ClearTH host if the project uses Jetty 12. Otherwise, JDK 11 is required.

Navigate to the directory with your new project and execute the following command to start ClearTH within the Jetty server:

$ ./gradlew jettyRun

Alternatively, you can use the following command to explicitly build the WAR file with your project and deploy it to the Jetty server:

$ ./gradlew runClearTH

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin

ClearTH in Docker

Navigate to the directory with your new project and create the WAR file with your project:

$ ./gradlew copyWar

Build Docker image:

$ docker build -t NAME:TAG -f docker/Dockerfile .

Create a directory for persistent data, give it write permissions:

$ mkdir docker-volume-data && chmod o+wx docker-volume-data/

Now you can start ClearTH from the image you built:

$ docker run -v ./docker-volume-data:/clearth/persistentFiles -p 8080:8080 -it NAME:TAG

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ClearTH

This is the official ClearTH project repository.

Introduction

ClearTH is a test automation tool whose primary purpose is testing of Clearing, Settlement and Back-Office Systems.

It is able to simultaneously execute multiple end-to-end test scenarios in batches. Test scenarios can be executed within a schedule, thus providing fully autonomous test execution capabilities.

ClearTH typically interacts with the system under test via its gateways / APIs, but can be easily extended with new protocols and data formats to work with.

ClearTH Core provides basic functionality to execute test scenarios, some automation actions and connectivity support. ClearTH modules extend this functionality with new data formats support and other features.

Applications that use ClearTH are built on top of ClearTH Core, optionally including its modules.

Tutorials

Here are the links to the tutorial videos introducing you to the main features of ClearTH and helping you get set up.

How to build

JDK 11 is required.

Build and publish ClearTH Core and modules to a local repository, i.e. "shared" directory in the repository root by executing the following command from the repository root:

$ ./gradlew clean build publish

Create a new project that will use ClearTH Core and its GUI module by executing the following command from the repository root.

New project will use Jetty 9.4 and, thus, JDK 11 is required to execute this command successfully.

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME

Alternatively, you can create the project that will use Jetty 12 to host ClearTH, thus, JDK 17 is required:

$ ./gradlew createProject -PnewProjectDir=../PROJECTDIR -PnewProjectName=PROJECTNAME -Pserver=jetty12

Anyway, the new project will be created in the directory adjacent to the repository root. It will include Jetty server with needed modules installed and ready to host ClearTH.

Starting ClearTH

JDK 17 is required on ClearTH host if the project uses Jetty 12. Otherwise, JDK 11 is required.

Navigate to the directory with your new project and execute the following command to start ClearTH within the Jetty server:

$ ./gradlew jettyRun

Alternatively, you can use the following command to explicitly build the WAR file with your project and deploy it to the Jetty server:

$ ./gradlew runClearTH

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin

ClearTH in Docker

Navigate to the directory with your new project and create the WAR file with your project:

$ ./gradlew copyWar

Build Docker image:

$ docker build -t NAME:TAG -f docker/Dockerfile .

Create a directory for persistent data, give it write permissions:

$ mkdir docker-volume-data && chmod o+wx docker-volume-data/

Now you can start ClearTH from the image you built:

$ docker run -v ./docker-volume-data:/clearth/persistentFiles -p 8080:8080 -it NAME:TAG

ClearTH GUI will be available at http://localhost:8080/clearth

You can log-in by using the following login/password:

admin/admin