Skip to main content

๐Ÿ“š SHAFT Release History (through 10.2.20260618)

ยท 7 min read
AutoBot
SHAFT's AI-Powered Release Assistant

Every SHAFT release used to get its own standalone blog post. That was great for day-of-release visibility, but it made the blog archive noisy once dozens of releases piled up. Starting now, releases older than one month are folded into this single, chronological history post (newest first); recent releases (the last month) keep their own dedicated post as before.

This page consolidates every release announcement published before 2026-06-19 โ€” from the very first automated release in 2023 through 10.2.20260618. Nothing was removed: version numbers, dates, highlights, breaking-change notes, and links to the original GitHub release/changelog are all preserved below, just without each release's repeated boilerplate (contributor avatar walls, identical "how to upgrade"/"join the conversation" sections, etc.).

New Feature Announcement - Swagger Contract Validation

ยท 2 min read
Kyrillos Nageh
SHAFT_Engine maintainer
SHAFT_Engine

Say goodbye to manual schema checksโ€”contract testing is now automated and built right into SHAFT!โ€‹


๐Ÿ›ก๏ธ What is Contract Validation?โ€‹

Contract testing ensures your API requests and responses follow the defined structure (contract), helping prevent:

  • Unexpected field changes
  • Data type mismatches
  • Missing or extra fields
  • Runtime errors in API consumers

With the latest release, SHAFT now integrates Swagger/OpenAPI schema validation for all API tests. It will fail your test automatically if the request or response doesnโ€™t match the OpenAPI spec you provide. ๐Ÿ”ฅ


๐Ÿ”ง How to Enable Itโ€‹

๐Ÿ“‚ Via custom.propertiesโ€‹

src/main/resources/properties/custom.properties
swagger.validation.enabled=true
swagger.validation.url=https://petstore.swagger.io/v2/swagger.json

๐Ÿงช Or via Codeโ€‹

SHAFT.Properties.api.set().swaggerValidationEnabled(true);
SHAFT.Properties.api.set().swaggerValidationUrl("https://petstore.swagger.io/v2/swagger.json");

You can toggle validation dynamically per test or test class.


โœ… What Gets Validated?โ€‹

  • Request structure (body, headers, parameters)
  • Response structure (status, body schema)
  • Alignment with your OpenAPI/Swagger definition

๐Ÿ“„ Sample Testโ€‹

@Test
public void testCreateUserWithContractValidation() {
SHAFT.API api = new SHAFT.API("https://petstore.swagger.io/v2");

String invalidPayload = "[{\"id\":\"INVALID_ID\"}]";

api.post("/user/createWithList")
.setRequestBody(invalidPayload)
.setContentType("application/json");

api.assertThatResponse().statusCode().isEqualTo(400);
}

SHAFT will automatically validate the above request and response against the Swagger schema. โŒ If anything is off, your test will fail and report the contract violation.


๐Ÿง Why It Mattersโ€‹

BenefitDescription
๐Ÿงช Test reliabilityEnsure tests align with backend changes
๐Ÿ” Catch regressionsCI/CD-ready contract enforcement
โŒ Reduce flakinessEliminate schema mismatch failures
๐Ÿ” API governanceHold your APIs to their contract

New Feature Announcement - Virtual Threads

ยท 2 min read
Mustafa Agamy
SHAFT_Engine maintainer

We're starting off 2024 with a huge announcement!

SHAFT_Engine

๐Ÿค

Oracle

- The future of automation frameworks is here, and it's all about working smarter, not harder.โ€‹

- SHAFT_ENGINE, your trusty automation solution, just got a major upgrade with virtual threads, a clever trick that makes it more efficient and helpful than ever.โ€‹

- What is a Virtual Thread?โ€‹

  • Virtual-Threads, introduced with Java 21 are a new way to handle multiple tasks concurrently within a single program or application. They're the new java way for asynchronous operations.
  • Think of it like hiring a whole crew of tiny helpers. While one tractor's plowing, another can check the soil, and another can keep an eye on the weather.
  • These lightweight assistants don't need fancy equipment or guzzle up resources, meaning SHAFT_ENGINE can now handle a ton more tasks without breaking a sweat.

Now let's think of test automation. In automating a registration form, envision employing a crew of virtual threads as tiny helpers :โ€‹

  • Rather than idly waiting for the entire site to load, each virtual thread can be assigned specific tasks as soon as the relevant elements become available. For instance, one thread focuses on inputting the username, another simultaneously handles the email input, and yet another sets the password. This parallel execution optimizes efficiency, ensures prompt responsiveness to dynamically changing elements, and efficiently utilizes resources.
  • As the crew of virtual threads collaborates seamlessly, the registration form is filled and submitted swiftly, providing a more agile and responsive automation process compared to traditional sequential approaches.

- Save your execution Time :โ€‹

  • That's not all, SHAFT_ENGINE utilities the Virtual Threads for Engine launch and configuration which will make your overall experience a lot faster and swifter.

Bing AI framework comparison

ยท 3 min read
Mohab Mohie
SHAFT_Engine creator

We asked Bing AI to compare SHAFT against some of the well known test automation options, here's what it had to say:

Sure! Here is an expanded comparison between SHAFT_Engine, native Selenium WebDriver, Cypress and Microsoft Playwright in a tabular format:

FeatureSHAFT_EngineSelenium WebDriverCypressMicrosoft Playwright
Web GUI testingYesYesYesYes
Mobile testingYesNo (Appium required)NoNo
API testingYesNoYesNo
CLI testingYesNoNoNo
Database testingYesNoNoNo
Built-in test synchronizationYesNoYesYes
Built-in logging and reportingYesNoYesYes
Integration with third-party tools (e.g. Jira, Xray, Browserstack)YesNoLimitedLimited
Unlimited access to underlying frameworks (e.g. Selenium, Appium, RestAssured)YesN/AN/AN/A
Cross-browser testing supportYes (via Selenium)YesLimited (Chrome, Firefox, Edge)Yes (Chromium, Webkit, Firefox)
Parallel test execution supportYes (via TestNG)Yes (via TestNG or JUnit)YesYes
Language supportJava onlyMultiple languages (Java, Python, C#, Ruby, JavaScript)JavaScript onlyMultiple languages (JavaScript, Java, Python, .NET C#)
Open-sourceYesYesYesYes
Community support and resourcesLimited compared to Selenium WebDriver and CypressExtensiveExtensiveGrowing
User guideAvailableAvailableAvailableAvailable

What do you think? Is SHAFT the better option?

Dear SHAFT users, we need your support!

ยท One min read
Mohab Mohie
SHAFT_Engine creator

SHAFT is undergoing some major changes in its steering committee and we want to ensure that we align our strategies to what you guys really need!

SHAFT_Engine has always been (and will continue to be) a community driven project, made by Testers for Testers, and our mission was always to add value, remove redundancy, and help Software Engineers in Test focus on the exciting and non-repetitive parts of their work. For that we need your support to pinpoint and prioritize the features that you're using, and the features that you'd like to see in the near future.

Join us, become an honorary member of the new SHAFT_Engine Technical Leadership Committee by filling out this short survey, and watch your name shine as an honorary member on the dedicated page that we'll create on our official user guide!

Join us now!โ€‹

New Feature Announcement - Self-managed Appium Execution

ยท One min read
Mohab Mohie
SHAFT_Engine creator

A new Major feature approaches!

Selenium WebDriver ๐Ÿค Appium

What is self-managed appium execution?โ€‹

  • One of the common challenges for mobile application test automation is achieving and maintaining a proper testing environment.
  • A Testing environment consists of several elements; Android SDK CLI tools, Android System Image, Android Emulator, Support for Hardware acceleration, NPM, Appium 2.x server, drivers and plugins.
  • SHAFT will now download, and setup your testing environment.
  • SHAFT will also maintain everything in your environment to ensure that it's all up-to-date.
  • SHAFT will then initialize the Emulator, initialize the Appium server, and synchronize everything before starting test execution.

Watch the demo and explore the code โฎŠโ€‹

Selenium Ecosystem

ยท 3 min read
Mohab Mohie
SHAFT_Engine creator

We're starting off 2023 with a huge announcement!

SHAFT_Engine ๐Ÿค Selenium WebDriver

What is the Selenium Ecosystem?โ€‹

  • Over the last decade, a large ecosystem of Open Source projects have sprouted up around Selenium.
  • The Selenium Ecosystem attempts to capture some of those projects that make use of Selenium WebDriver as a central part of what they do.
  • It consists of a number of drivers, bindings, plugins, and frameworks created and maintained by third parties.

What are some other members of the Selenium Ecosystem?โ€‹

Why use a framework that's part of the Selenium Ecosystem?โ€‹

  • These projects are developed, and maintained by third parties who dedicate their time and efforts to complement the solid infrastructure provided by Selenium WebDriver; the undisputed market leader for test automation since its inception.
  • They are very mature with many contributors and many users.
  • They are powered by Selenium WebDriver, which guarantees the widest and most mature user-base versus other competitors.

Why use SHAFT_Engine?โ€‹

  • In its seventh year of development now and has accumulated 20 more contributors over the years.
  • One of the largest open source projects in the MEA region.
  • Has several tens of thousands downloads, and is being used by 18+ organizations (that we know of) to drive their automation efforts.
  • Powered by Selenium, Appium, RestAssured, and other best-in-class automation frameworks, SHAFT supports Web/Mobile/API/CLI/DB/Desktop test automation.
  • Offers excellent business-centric reporting with automated evidences (screenshots, videos, attachments) and logs.
  • Out-of-the-box simple test data management with secure encryption support.
  • Supports Local, remote, unattended, sequential, parallel, and containerized test execution.
  • Built-in test synchronization and error handling.
  • Built-in third party integrations with Jira, Xray, BrowserStack, and Applitools Eyes.
  • AI-powered Element Identification, visual checkpoints, and self-healing tests.
  • Element Locator Builder with full support for Selenium 4 Relative Locators.
  • Fluent actions and validations library.
  • And the list goes on...

What does being a member of the Selenium Ecosystem mean for SHAFT_Engine?โ€‹

  • It means that SHAFT_Engine is now one of 13 high-level frameworks that are built on top of Selenium WebDriver and have officially joined the ecosystem.
  • It will gain more visibility and more community support.
  • And our core maintainers will continue to remain close to the Selenium Technical Leadership committee, ensuring that SHAFT remains ahead of the curve and always aligned to the latest Selenium WebDriver has to offer.

In summary, we thank you for your support over the past 6 years, and we promise to continue to offer you a fully-featured best-in-class reliabie, consistent, secure, and fast Test Automation Solution.