ATS : Release Notes 4.0.6

05 September 2019

Note - Update in progress

Deprecation of Java SE 7 support

Currently minimum supported Java SE version is 7. However many ATS dependencies have already moved to Java 8. That's why in next version ATS framework should also raise the minimum needed Java version to 8.

New Features and Improvement

Environment Cleanup

Add possibility to drop and recreate tables during restore of DB backups. This is useful for intense DB data tests like performance tests.
So far DB restore first did delete of all existing records and then inserted some records  to restore to a well known state. This delete is not effective when last test (mostly a performance one) had created hundreds of thousands or even millions of records. Now it is added option to specify for a table to be dropped and then recreate it with all its previous metadata - columns and indexes.
Here you may find example and notes.

Add option to specify whether DB tables' content will be backed-up or not.

Improve sequence of SQL statements in regular DB backup files. Now it is Lock table,  Delete data, Insert data, Unlock table. This will provide better consistency when there is parallel access during restore. Although such parallel access is not recommend.

Optimize memory usage when creating backups of big DB tables.

Improvements in DB logging. Before and after execution of restore and backup action there are added clear messages with info severity. Also print each of the SQL statements that will be performed during restore.

 DB Logging

Ability to set or get testcase meta information. In addition to run and scenario level, now there is possibility to attach arbitrary key-value data to a testcase. Usually to the current testcase. New methods are AtsDbLogger.addTestcaseMetainfo(key,value) and AtsDbLogger.getTestcaseMetainfo(...).

Improve customization for Microsoft SQL Server connectivity. It is possible to select another JDBC driver to be used for such SQL Server DB connections. Info here, section for Microsoft SQL Server specifics.

 Agent

Use ${AGENT_HOME}/work sub-folder as a temporal folder to unpack agent WAR file. Before it was extracted into /tmp (for Linux) and in some configurations it doesn't had much space free.

 Remember all configurations passed to ATS agents to ease the debugging

Action library

REST Client

Add possibility to register custom connector provider like more advanced Apache Connector instead of default java.net.URLConnection implementation. It also provides better tracing of HTTP traffic. Details are here in REST Operations Configuration, section "Register third-party connector provider"

Log a WARN message for user to expect Jersey to complain when executing PUT/POST HTTP operation with empty or null body.

Database Snapshots

Change SQL queries for obtaining Database data and remove start and end delimiters (_|) for DbRecordValuesList.

SSH Operations

Provide way to specify global and session config properties when working with SshClient and SFTP instance of FileTransferClient.

FileTransferClient

For HTTP(S) client file upload now could be set to chunked mode (affecting and Transfer-Encoding header). Property details are mentioned here in HTTP/HTTPS client section.

Test Harness (Test lifecycle integration)

AtsTestngListener - Log message when the test sources directory could not be found

 UI Engine

 Add method to switch to another window with the same title as current one. Note that if there are many the order is not guaranteed.

S3 Client

  Added new method for efficient delete of large set of objects/files. This method also solves case when deleting the whole bucket with large number of objects. Sample code could be found here, in Examples section.

Common library

  Added constant and method to detect macOS type. New method is com.axway.ats.common.system.OperatingSystemType.isMacOs() and enum value OperatingSystemType.MAC_OS. It can be primarily used via SystemOperations.getOperatingSystemType() method.


Bug Fixes

Action Library

REST Client

File upload was failing for files larger than 2GB
The problem is located in Jersey client and now it is upgraded to version 2.25.1.  Note that this is the last one build with Java 7 byte-code compatibility.

When response length was not known (chunked), the entity was not buffered for reuse. This is backward-compatible behavior.

Filesystem Operations

Do not log the whole file, but file size when invoking createFile().

File Transfer Operations

Fix NullPointerException when trying to upload/download file over not connected SFTP client.

Secure mail operations

Fix mail signing in SMimePackageEncryptor. Whole certificate chain for chained (not self-signed) certificates was not included in the signed mail.

Database snapshots

Fix logic when custom IndexNameMatcher is provided.

Logging

Log single warning message instead of throwing an Exception when ATS DB appender is tried to be used in code and the  appender is not not attached to the Log4J root logger.

Non-printable characters are now escaped also for PostrgreSQL DBs before insert.

Update run event now updates runs from PostgreSQL database.

Prevent second emit of EndTestCaseEvent.

Test Harness

Various fixes in test lifecycle states regarding integration with TestNG listeners.

Agent, Monitoring

Fix when monitoring is stopped in the middle of a test. If there are other test messages to log on the agent side then messages were not logged.

Fix in System monitoring. Now DB port used for reporting is set prior to initializing system monitoring on agent side.

Prevent NullPointerException when de-serializing message from agent, that has no detailed message filed set.

Do not allow adding same action more than once in same queue. This was breaking actions reporting logic.


Changes in third party dependencies

  • Jersey client is updated to version 2.25.1. This is the latest one supporting Java 7.
  • Jsch SSH library is updated to version 0.1.54.
  • Apache Commons Compress changed to version 1.18.
  • Build tools
    • Checkstyle plugin updated to version to 3.0.0
    • Puppycrawl tools plugin. Change version to 6.19. Again the latest one that supports Java 7.

Deprecated code and pending updates

  • Java 7 support will be dropped in next recent versions because many dependencies now provide fixes and new features with minimum Java 8 class level support. ATS version 4.0.6 is validated against Java 7 and Java 8. Newer versions will be extensively tested in next version.
  • Deprecated old TestNG listeners. There is new easy way for ATS to listen for test lifecycle events. Deprecated listeners are AtsTestngClassListenerAtsTestngSuiteListener and AtsTestngTestListener.
    Instead of them use only AtsTestngListener. For painless work, currently we recommend TestNG 6.10 because newer versions have some identified issues.
  • Logging library - AutoLogger class is now deprecated. Use AtsDbLogger instead.
  • UiEngine - PhantomJS driver is now deprecated because the third-party library used is outdated, without recent support.

Test Explorer

Release notes for Test Explorer are located here

HTTP DB Logger

Release notes for HTTP DB Logger are located here



Go to parent page

Go to Table of Contents