What is new in Sahi Pro v8.0.0
abstract
Sahi Pro v8.0.0 is a major release with significant feature additions and modifications. The following summarizes features and enhancements in Sahi Pro v8.0.0.
danger
Read this section, before upgrading to Sahi Pro v8.0.0
NOTE: license.data files will no longer work from v8.0.0.
NOTE: Sahi Pro License Servers will also not work from v8.0.0.
NOTE: license.data files will no longer work from v8.0.0.
NOTE: Sahi Pro License Servers will also not work from v8.0.0.
-
We have brought in significant changes to our licensing mechanism to ease end user administration.
From v8.0.0, license product keys will be used instead of license.data files.
We are reaching out to our customers to provide product keys for the licenses they have bought. - Sahi Pro User licenses allow installation only on one machine
- Sahi Pro Concurrent licenses should be used if you need to work on multiple machines
- Two (2) Sahi Pro Runner licenses are provided free with each Concurrent license. Additional Runner licenses will need to be purchased. (Eg. If you have 5 concurrent licenses, you will get 1 product key and you will be able to run 5 concurrent instances of Sahi Pro and 10 instances of Sahi Pro Runner.)
Key Features
License Product Keys
- From v8.0.0, Sahi Pro will use Product Keys instead of license.data files. Administration of license keys are done from the Sahi Pro License Hub portal. For detailed overview please see License and Product Keys
Dependency, Retry and Modes in Suites
- Dependency:
A module of an application under test may depend on another module. For example, a loan processing step depends on the correct working of loan application form. There is no point of verifying loan processing, if the loan application step is broken. In such cases, in our data driven suite, we can now specify that the loan_processing sub-suite/script depends on loan_application sub-suite/script. When a script fails, the dependent scripts are marked as SKIPPED. - Retry:
Till 7.5.0, Sahi Pro would create a failed_script_suite comprising all failed scripts of a suite. This could be rerun as a separate target later.
With the Dependeny feature, a failure may cause all dependent scripts to unnecessarily be skipped. So we have introduced immediate retry, which retries a script as soon as it fails. The number of script retries for ABORTED and FAILURE statuses can be configured at suite level from Editor, ANT and batch/shell scripts. Such retries are also correctly reported in playback logs. - Modes:
In distributed playback, some nodes may have specific browsers, some may be connected to iOS devices and some to Android. A script may have specific needs for execution. Eg. a script may want to interact with Chrome browser and an Android device. In such cases, we can specify "Modes" for a script in Data Driven Suites. Such a script will only execute when its "Modes" requirements are met. If any matching node is available, scripts will be queued for execution on such matching nodes. If no matching node is found, the script will be marked as NOT_SUPPORTED.
Logs and Reports
Suite Analysis
: Suite Analysis report allows users to analyze the causes of failures of the specific run and also of all historical runs of that suite. More on Suite Analysis.Consolidated Report
: On the Suites List page, one can select specific Suites and get a consolidated report of pass/fail etc. This is useful when sending reports to Management. Consolidated Report can also be downloaded as Excel. More on Consolidated Report.- Added SKIPPED, NOT_SUPPORTED, ABORTED and USER_ABORTED statuses to logs. See Script/Suite statuses
- Added graphs in offline suite report page.
- Added checkbox to show/hide image in HTML logs.
- Added checkboxes to filter suite report by status.
Editor
- Passing Named Parameters: In Scenario files, till v7.5.0, only parameter values were passed to keywords.
Eg.
We have now introduced the ability to pass named parameters: Eg.login | "testuser" | "mypassword"
login | username:"testuser" | password:"mypassword"
The advantages are:- The scenario is more readable, especially in cases where lots of similar parameters are passed.
- Parameters can be passed in any order
- Parameters can be omitted easily
- Added
depends
andmodes
columns in dd.csv files. For more details please refer Data Driven Suites - Implemented better Search in Documentation.
- Add Function Call Checkbox: While extracting functions, both the function definition and function call were created. Now, we can optionally choose whether we want the function call or not using "Add Function Call" checkbox.
- Dynamic Accessor Repository Entry:
Sometimes the identification of an element depends on text that changes dynamically.
Eg.
In this, "Ram" may change dynamically. This can now be handled like this:_button("Edit", _near(_div("Ram")))
// my_AR.sah $_BUTTON_EDIT_NEAR = _button("Edit", _near(_div("DYNUSER"))); //DYNUSER is just any placeholder. You can use anything here.
// myScript.sah var $user = "Sita"; var $btn = $_BUTTON_EDIT_NEAR; // $btn is now _button("Edit", _near(_div("DYNUSER"))); $btn = $btn.replace2("DYNUSER", $user); // use replace2 to replace any string with its replacement string // $btn is now _button("Edit", _near(_div("Sita"))); _click($btn);
-
CSV Files as Accessor Repository: Till v7.5.0, Accessor Repository files were just .sah javascript files in
name=value;
format. Since v8.0.0, one can create Accessor Repository files as CSV files. CSV files allows multiple AR values (say for EnglishWeb, JapaneseWeb, EnglishMobile etc.) to be associated with the same AR keys. They can then be loaded using _include("my_AR.csv", "JapaneseWeb") to load corresponding AR values. Read Accessor Repository in CSV Format. - For fetching the data from external source in Scenario files, added the capability to get the row based on row identifier. For more details please see Using External Data
case 6 and case 7.
- Added support for TypeScript for scripting. For more details please see TypeScript Playback.
REST Client
- REST Client now supports files uploading from the request body fields. Supports both multipart form and binary upload. For more details please see Uploading a file using REST Client.
Controller
- Added checkboxes for Sahi modes in Controller Info tab.
- Added feature to auto create snippet script when the script name field for recording is empty.
Database
- Fixed for MySql connection issue with a new connector. Added SQL in create_report for setting the SQL mode to 'NO_BACKSLASH_ESCAPES'
- Fixed Sahi reports for Postgresql.
- Added batch and shell script to delete suite reports of specified duration.
New APIs
- _addResponseSubstitutionRule: Substitutes the HTTP response for all further responses coming in this browser session.
- _removeResponseSubstitutionRule: Removes the response substitution rule for all further responses coming in this browser session.
- _getLayout: Returns string representing page layout.
Modified APIs
- _getDB: Argument
$isPasswordEncrypted
is added. - _takeScreenShots: Added
$noLogs
(it will not log the images in Sahi logs) parameter. - _readCSVFile:
includeHeader
default value changed tofalse
and modified 2nd argument type to object. - _getDB: Added Overloaded API which accept object as parameter.
Bug Fixes
- Fixed : _containsText: for indexOf not defined in IE enterprise.
- Fixed : _testcase: After one test case failure, further test cases were showed as the failure.
- Fixed : _takePageScreenshot: taking the screenshot of an element inside the scrolled element, for pages with scroll.
- Fixed : _closeBrowser: Not releasing the browser capacity due to which launchNewBrowser was breaking after browser capacity.
- Editor - Slowness.
- Editor - Fixed passing array as a single parameter while importing functions at Scenario files.
- Editor - REST Client: REST request was encoding the request body for all content types; now encodes request body only on Content type is application/x-www-form-url-encoded. Also removed redundant encoding of the REST request fields.
- Editor - Fixed column size breaking in Chrome/Opera for sheets.
- Logs - Code Coverage: If web page contains IFrame or web page reloads.
- Logs - Email Report: Added
view logs
link andtest case report
table. For Outlook, reports table was visible properly. - Logs - Fixed graph in offline report and email report for Dload.
- Fixed Authentication: Added curl support for bypassing Windows Negotiate/NTLMSSP authentication credentials prompts. Supports persistent connections for servers like IIS which require Persistent authentication connection.
- Fixed Heap Space issue while reading large XLSX file.
- Fixed HAR Logging for request returning HTTP/1.1 200 200 instead of HTTP/1.1 200 OK and for the request having decoded characters.
- Fixed Firefox 90 seconds issues.
- Fixed Screenshot with dual screen issue.
- Fixed certificate generation for subject alternative names of SSL.
- Fixed certificate creation with short Domains.
- Fixed SSL - Added nss-util command to import Sahi certificate in NSS trusted certificates database.
warning
Refer What's new in Sahi Pro Desktop Add-on v8.0.0 for features and enhancements done in Sahi Pro Desktop Add-on v8.0.0.
warning
Refer What's new in Sahi Pro Mobile Add-on v8.0.0 for features and enhancements done in Sahi Pro Mobile Add-on v8.0.0.