title | layout |
---|---|
(DB-driven browser automation) |
default |
{% include links %}
- TOC {:toc}
SeLite automates browser navigation and testing. It extends Selenium. It
- improves Selenium (API, syntax and visual interface),
- enables reuse,
- supports reporting and interaction,
- facilitates team work.
SeLite enables DB-driven navigation with SQLite (the most widely deployed SQL database).
SeLite enables the following in Selenium IDE
- reusable, structured and expressive scripts
- [SelBlocks Global] - flow structures, blocks of Selenese commands (functions) re-used across Selenese [cases][case]
- EnhancedSelenese: enhanced syntax for shorter and cleaner scripts
- Commands (e.g. random input generators)
- DB-driven operations
- test database isolated from the application (see TestMethods and HandlingData)
- data access through high-level formulas (see Components > DB Objects)
- making and reverting database snapshots through SettingsInterface directly from Selenium IDE
- configuration of scripts - see Settings
- having custom fields (SettingsFields)
- managed through files (SettingsManifests) or via GUI (SettingsInterface)
- team-friendly: selectively shareable (SettingsScope)
- extra automation
- [Exit Confirmation Checker] validates presence of confirmation when leaving unsubmitted forms
- [Auto Check] detects webserver errors/warnings
- Run All Favorites executes multiple Selenese [suites][suite]
- productive environment
- Hands-on GUI enhances Selenium IDE visual interface. It enables editing commands in-place (in the list itself). It makes Selenium IDE more intuitive.
- Clipboard And Indent improves operation of clibpoard. It supports indentation of commands.
- fast development cycle for custom Javascript functionality (via Bootstrap)
- robust loading of extensions honouring dependancies (through [Extension Sequencer])
- Preview presents custom reports and forms. User can preview and confirm next actions.
- see also tips on Selenium IDE productivity.
Some application errors cause incorrect data that doesn't show up on the immediate screens (or not at all during the same session). Such defects present themselves only on subsequent screens or even much later (through their knock-on effect). Having a test DB (in SQLite) isolated from the application's DB facilitates early detection of those bugs.
Separation allows validation of the data as presented by the application anytime later, rather than just right after the data was updated. So in addition to checking the immediate pages within the same test run, this also checks the application continually, taking any previous operations into account (including previous sessions). If the application shared its database with the test, such defects would be difficult or even impossible to detect.
See illustrations at TestMethods and details at TestMethodsTheory.
SeLite is easy to install, with no server side (apart from the controlled web application itself). You need Firefox and Components (Selenium IDE and components of SeLite family). You may want some AddOnsThirdParty.
See Compatibility regarding Opera and Chrome.
When using complex scripts you need a framework. Several come with SeLite and are listed at AppsFrameworks. Follow InstallFramework and any framework-specific steps. Read PackagedScripts on how to run demos. See also Customisation below.
Scripts (whether for testing or not) can store their data in SQLite database. When used for testing, test DB is initialised to a copy (or an export) of the web application's DB.
- If the web application stores its data in SQLite, test data lifecycle is streamlined. You can then use all buttons of SettingsInterface. They snapshot application DB (into 'vanilla' DB). They (re)load test DB and/or application DB from that snapshot.
- Otherwise import the app DB (from Postgres, MySQL and potentially other types) via customisable filters. Apply DataImport.
When customising or creating frameworks or components for Selenium IDE, following topics can assist you:
Quality is ensured by
- coding standard (JavascriptEssential, JavascriptComplex and JavascriptSpecial)
- strict Javascript
- testing by PackagedScripts
- processes for TroubleShooting and ReportingIssues
- DocumentationStandard
- code on GitHub: SeLite, SelBlocks Global and this documentation
- Components are verified by Mozilla.
SeLite is compatible with Firefox 48 and Selenium IDE 2.9.1. It's platform-independent. (It doesn't support Flash/Silverlight/ActiveX.) Its part [SelBlocks Global] is mostly forward compatible with SelBlocks 2.0.1.
Currently it doesn't operate with browsers other than Firefox. However, in 2017 Firefox extensions will use the same API as Opera and Chrome.
SeLite is not for Selenium WebDriver. Effectiveness and convenience of Selenium IDE together with SeLite can, however, outweigh WebDriver. For detailed comparison see WhySeleniumIDE.
Subscribe to XML RSS feed on compatibility.
SeLite is fully open source. Most Components are under GNU LGPL 3.
You could get more out of SeLite. However, it depends on third party components. To help it progress, please would you
- vote for ThirdPartyIssues
- star on GitHub
- code projects: SeLite and SelBlocks Global
- documentation projects: SeLite documentation and API reference
- star and review at Mozilla
- multi-package (all SeLite components packaged together)
- collection and each of its add-ons
- tell others.