On behalf of the Sencha Test team, I’m proud to announce that Sencha Test is now generally available. Sencha Test is an exciting new product that helps our existing and new Ext JS customers to release quality applications. With Sencha Test, you can perform cross-browser and cross-platform testing using one comprehensive solution. We have brought together leading open source technologies and our in-house test expertise to create this great solution that will significantly reduce your software release cycles. We want to take a moment to thank you, our community, for your ongoing support and feedback.
Table of Contents
See It In Action
- Download Sencha Test – 30-day free trial
- Try Sencha Test Examples
- Read the Guides and Documentation
- Register for our upcoming webinar – March 1, 9am PST | 12pm EST | 5pm GMT
Why We Built Sencha Test
Customers that use Ext JS and Sencha Touch to build web and mobile applications have been waiting for a comprehensive test solution that addresses their test automation needs. Web app development has gone through big changes in the last decade and so has testing. There are many different open source as well as commercial solutions available in the market, but there are none that specifically address the different components that Ext JS provides. Customers are left to cobble together open source solutions to create a test framework that becomes painful to maintain at a large scale. Testing must happen at the early stages of the application development lifecycle – with more effort on writing good tests and less effort creating and maintaining a complex third party test framework.
How Sencha Test Can Help You
Sencha Test integrates some of the leading open source test frameworks, including Jasmine and Istanbul, with Sencha built components to create one comprehensive solution. Out of the box, customers can build unit and end-to-end functional tests using Sencha Test. The seamless integrations enable you to write good tests rather than deal with integration issues or incompatibilities with an external library. It should be very simple for developers and test automation engineers to identify and write tests for Ext JS components. Using Sencha Test, you can be up and running tests in less than 15 minutes.
What Sencha Test Offers
Software organizations have given up the traditional code-first and test-later model and are adopting more modern approaches like the Test Driven Development philosophy, which mandates that developers create the test first, based on the requirements, and then create the code to make the test “pass.” This change signifies that the industry is treating “testing” as a primary focus and is making significant changes to accommodate testing early in the product development lifecycle.
Unit testing is the first test activity performed by a software development team. Developers who write Ext JS code then create unit tests in parallel that validate the core functionalities of the feature developed. Using Sencha Test, Ext JS developers will be able to isolate the smallest unit and create unit tests and make sure that the integrated code is tested against the requirement.
Sencha Test Product Overview
Sencha Test uses a local workspace where you can either import your existing Ext JS development project and its tests* or create a new workspace to start writing end-to-end tests for an Ext JS application, even without having access to the source code. Sencha Studio, the GUI application centerpiece of Sencha Test, will detect the local browsers and can be easily configured to work with browsers on mobile devices, virtual machines, or browser farms. It’s simple, yet powerful, interactive test runner allows developers to easily run tests on one or more of the configured browsers in parallel.
(*Note: Sencha Test runs Jasmine 2.4.1. Existing tests written with Jasmine 2.0 and above can be imported and used in Sencha Test. Please use the forum to report any inconsistencies.)
Sencha Test also provides a command line interface (CLI) for automating test runs in an unattended, Continuous Integration (CI) environment. In addition to capturing the CLI output using tools including Jenkins and TeamCity, the CLI can also upload test results to a Sencha Test Archive server for later review in Sencha Studio. This combination of unattended execution and powerful reviewing tools offers a big productivity increase when regression testing.
The test runner in both Sencha Studio and the CLI acts as a proxy between the browser and the application server, allowing any page to be instrumented with tests. The test runner in the CLI uses WebDriver to launch browsers and directs them to this proxy. Using WebDriver, developers have the flexibility to connect to in-house browser resources (via a custom hub) as well as third-party browser farms including Sauce Labs.
Sencha Studio supports WebDriver as well, but it can also launch locally-installed browsers without using a custom hub. This ability allows developers to gracefully debug application code, test cases, or both directly in their browser during test runs. Developers can also point other browsers, for example in a virtual machine or on a mobile device, at the Sencha Studio proxy. These additional browsers will then be listed in the Sencha Studio interactive test runner and can be used as any other local browser.
Sencha Test provides a powerful new API for test development that we call the “Futures API”. Using the Futures API, developers and test automation engineers can write compact and expressive tests that interact with Ext JS components or raw elements. For example, consider the following code:
ST.grid('#mygrid'). rowWith('firstName', 'Bill').cell('lastName'). reveal(). textLike('Preston');
The above code will select a grid (using a Component Query selector), then select a row by matching a field and a cell given the column id. The resulting cell is then revealed (scrolled to) and checked for desired content.
Sencha Test is a completely integrated test environment that provides an easy-to-use and comprehensive solution.
Sencha Test Components
There are four main components of Sencha Test that enable you to create unit and end-to-end tests with minimal effort.
Test Authoring: Studio
- Use the powerful Sencha Test Futures API to write compact, expressive tests that make interfacing with Ext JS components and DOM elements trivial.
- Leverage the Event Recorder to drastically reduce the code you need to write to interact with the application’s UI.
- Use different locator strategies to create the most robust tests even with dynamic applications.
- Use your existing source control mechanism to store the tests and switch between your IDE and Studio, based on your preference.
Test Execution: Test Runner
- Run selected tests on any or all browsers on local machines or remote virtual machines.
- Reduce testing time by executing tests simultaneously on multiple browsers through integration with leading browser farms including Sauce Labs, BrowserStack, and WebDriver hubs.
- Review results from manual test runs instantaneously.
- Run tests in parallel, which reduces the time to get feedback about specific tests.
- Use Istanbul (integrated with Sencha Test) to run tests with code coverage options and find areas of code that are not tested.
Test Automation: Command Line Interface
- Execute tests from the command line or automate the end-to-end process using a CI system and minimize manual tasks when running existing tests.
- Run hundreds of thousands of tests in minimal time because Sencha Test scales well in continuous integration environments.
- Use CLI and CI effectively to leverage your existing IDE for writing tests.
Results Archiving: Test Archiver
- Store results of test runs initiated by CLI and CI to understand historical trends.
- Obtain a roll-up summary of failed tests and details in Studio, for current test runs and historical runs, based on results stored in the archive server.
- Use Studio to retrieve results stored in archive server and analyze them in a matrix format.
- Use access controls to ensure the right information is shared with the right people.
- Automate visual screen comparison tests by comparing against archived screen captures.
Supported Browsers and Platforms
Browser Desktop (PCs & Laptops)
Browser Mobile (Tablets & Smartphones)
Test Framework Integrations
Supported Sencha Applications
Test Automation Integrations
|Internet Explorer 8+||IE 10+ on Windows Phone 8+||Jasmine 2.4.1||Ext JS 4.2+||Browser Farm – Sauce Labs+|
|Microsoft Edge||Chrome / Stock Browser on Android 4+||Istanbul 0.4.1||Sencha Touch 2.0+||Continuous Integration – Team City, Jenkins|
|Chrome||Safari iOS 6+|
A Big Thank You
We wish to extend our heartfelt thanks to our community. Your suggestions, feedback, and bug reports have made it possible for us to deliver on the goals of this release. We’ve worked very hard to simplify Sencha Test, so you can get started quickly. We want to help you build complex tests that are maintainable and sustainable over the long term.