VER-3.2.0 Release Notes:
- Closed 3.2.0 milestone
New Features:
- Repository editor UI and back end server
- #411 Data generator to generate set of data in specified format
- #421 Emailable report Feature
- #423 JSON compare util
- Added Utility to generate java runtime scenario code from feature file
- Added PostmanCollectionsImporter to import postman collection
- Added support for wscj and locj file, josn representation for locator and web services call repository
- Added
Bdd2Generator
that can be used to convert scenarios written inbdd
format tobdd2
format - New support libraries for GRPC - qaf-support-grpc
Enhancements
- #426 QAFExtendedWebElement isPresent() method enhancement
- ws#12 Used ApacheHttpClient as default http client to support custom methods including
PATCH
- Support of individual meta-data filter as subset of include/exclude property. Usage:
include.metakey=metaval1;metaval2
- Updated gson version to 2.9.0. Updated code to support latest version (2.10) of gson.
- Changed parameter resolver order for parameter resolution in request call
Bug fixes
- #410 Fixed Configuration methods not reported in dashboard
- Fixed duration conversation issue in dynamic wait
- #429 JSONUtil.toObject throws ArrayStoreException
- #436 Unable to write : com.qmetry.qaf.automation.testng.report.ClassInfo in file
- Fixed null pointer exception if element not found
- ws#17 fixed fillData with map argument not populating map fields
VER-3.1.0 Release Notes:
- Closed 3.1.0 milestone
- Removed jxl dependency, xls files will be handled using poi. log4j 1.x was one of the dependency from jxl. By removing this dependency now log4j also will not get resolved. User can add any library of their choice for logging.
- Removed commons-lang dependency, will be resolved by commons-io
- Updated commons-io version from 2.5 to 2.11.0
- Removed slf4j-log4j12 dependency. Now log4j is not required or resolved, removing this dependency.
- Changed minimum supported selenium version to 3.6.0
- Removed deprecated interfaces from QAFWebDriver interface
New Features:
- #388 Selenium 4 support
Enhancements
- Updated poi version from 4.1.2 to 5.0.0
- Updated commons-io version from 2.5 to 2.11.0
- Excel data provider:
- Used same implementation for xls and xlsx, removed old implementation ExcelUtil
- For cell with string (Text or @) format, considering empty cell value as empty string. Null for others including no format (General)
- Form data bean: support objects in depending value expression parameter resolution
Bug fixes
- #386 PoiExcelUtil NullPointerException when there is no content in cell
- #393 FormDataBean with dependsOnField throws ClassCastException
- #394 java.lang.NoClassDefFoundError: org/testng/IAnnotationTransformer2
- #395 Gradle listener is throwing nullpointer exceptions
- #399 Report total count retry count in test count
- #401 Step call issue for list of map with one key and one entry
- #404 PoiExcelUtil RuntimeException for data table
VER-3.0.1 Release Notes:
- Closed 3.0.1 milestone
- Json reporter using
TestCaseResultUpdator
as default qaf reporting - Updated aspectj version to 1.9.5
New Features:
-
New listener QAFConfigurationListener - #350 Support to load properties from classpath
- #370 support for WebDriver Manager
- #374 Custom locator strategy Support to find element by js
- #15 Provides support for xlsx data provider Closes
- New support libraries
Enhancements
- #381 Provision for support libraries to add global step provider packages.
- #378 Alternative arrangements for JEP-372
- code enhancements and behavior change for string matching in wait/assert/verify
- Updated StringMatcher with additional matchers from StringUtils.seleniumEquals
- updated StringUtils.seleniumEquals to use StringMatcher
- updated default string matching pattern from glob to exact
- property
stringmatcher.default.matcher
to set default string matcher used in wait/assert/verify, if not set usedexact
instead ofglob
. - Added wait/assert/verify methods for window title and URL
- #174 Support of different version of TestNG (testng 6.10, 6.11, 7.0+)
Bug fixes
- #361 Parallel suite execution reporting
- #359 ResultUpdator throws RejectedExecutionException if there are multiple suites
- #331 java.lang.NoSuchFieldException: modifiers on jdk12.0.2
VER-3.0.0 Release Notes:
- Closed 3.0.0 milestone
- Minimum selenium version set to 3.0.0
- Minimum Java version set to 8
- Breaking changes in ResultUpdator interface
- Elasticsearch integration for cross execution dashboard using kibana.
- New Features:
- Support to have multiple result updater
- Random data and expression in parameter interpolation support
- Parameter within parameter interpolation support
- Runtime Scenario factory
- BDD Generator - generates feature file from code or bdd with embedded examples.
- New property
report.log.level
to set report level,report.log.skip.success
for not reporting success message(s) - Inherit meta-data from @meta-data annotation on test class
VER-2.1.15 Release Notes:
- #287 Updated license to MIT
- Deprecated
RestWSTestCase
useWSTestCase
instead
New Features
- Support to add third party step finder service
- #276 Support to locate element using extJs.
Provided additional locator strategies:
- extDom : to locate element by ExtJS dom query
- extComp : to locate element by ExtJS component query
- #301 Format meta-data value in report
- #302 Enforce meta-data rules in dryrun
- qaf-aem-support AEM CoralUI functional test automation support.
- BDD2 with cucumber runner support through qaf-cucumber
Enhancements
- Ensuring clear step mapping when populating steps mapping
- decreased report file name prefix max length from 50 to 45 char
- Moved meta data related method to MetaDataScanner
- Code improvement to process outline for data driven scenario without
- support to trigger element listener on find element command
- #23 Support JSON report for multiple XML suite in single run
- #123 Added comment for CDN.
- #275 - support of JQuery locator strategy to find child element
- #277 Support to have custom step provider class object factory
Bug fixes
- #241 Capabilities with driverName prefix should take effect with custom driver
- #242 cacheble set through default element data doesn’t take effect
- #243 Issue with Time Duration at Test Level
- #249 ResultUpdator not awaiting for completion When groups include/exclude used in xml configuration file
- #250 null pointer exception when test method from class in default package
- #256 Exception when feature file is empty or all statement commented
- #257 Scenario not parsed by Gherkin and BDD2 Factory when additional details provided after Feature Keyword
- #269 BDD2 - Examples - Blank/Empty data is not being executed
- #278 Runtime exception when test method has @Parameters annotation
- #300 Scenario outline in bdd2 should work without Examples keyword
VER-2.1.14 Release Notes:
New Features
- New bdd parser and factory - derived from QAF BDD, Jbehave and Gherkin. It supports meta-data with tags, data driven test using meta-data or example, tag support with examples
- BDD multi-line comment support
- #185 support to provider xml file for xml data provider
- #180 added intercepter and filter support in data-provider
- #177 Set proxy for specific URL(s) configuration
Enahancements
- #231 When https.accept.all.cert property set to false, then QAF should revert the previous value in JVM
- #212 meta-data with parameters should get reflected with value in qaf report
- #184 Support to format step arguments
- #182 enhanced utility methods to get parameters from TestNG context
- #176 New annotation @PageIdentifier test-page
- #175 Support for selenium-support library 3+
- #38 for data driven test
global.datadriven.parallel
and<test-case>.parallel
property - #226
- Additional wait/assert/verify method with
QAFWebElement
for css style color properties to match expected and actual values as color object
Bug Fixes
- #196 xml reference resolution in step argument
- #195 parameter name with numbers in step description changes the order of argument to be considered
- #203 sendkeys command uses encrypted password instead of decrypted version
- Fixed issue with findElement and findElements with type argument methods
in component, moved it form
QAFWebCompont
toQAFExtendedWebElement
- #181 Fixed Step call in Gherkin data-table with single entry
- #131 Ability to teardown driver by name
- #229 Database data provider not working if query contains “=”
VER-2.1.13 Release Notes:
New Features
- #171 Support to have encripted password
- #168 Support to specify default webelement implementation
- #160 Timeout support in BDD Scenario
- Default element listener for password field and element scroll behavior
- Support of
@Inject
annotation in step library class - Added support for custom by
Enahancements
- #131 Ability to teardown driver by name
- Support to provide default element meta-data using property
element.default.metadata
- Support to allow all certificates and ignore host name verification for web-services using property
https.accept.all.cert
- Disabled Delimiter Parsing for xml configuration
- Web service request entity logging
- Added methods in DatabaseUtils to support multiple database
Bug Fixes
- #169 With long bdd scenario name, not able to open captured images on windows
- #159 Checkpoints and command log not available in report for test case with timeout
- #154 Not able to override step.provider.pkg property for data driven scenario
- #153 result file generation for scenario name with some special characters is not working
- #139 Optional parameter in step
- #108 exclude capture screen shot for web-service failure
- Fixed element not found exception from isPresent called by element from component
VER-2.1.12 Release Notes:
New Features
Enahancements
- Added project name and project path as
project.name
andproject.path
properties
Bug Fixes
- #129 changing driver.name property doesn’t take effect
- #126 Wait for ajax throws exception
dojo is not defined
- #124 Test-NG #1480 impact on parallel execution
- #119 Selenium 3+ causes unable to cast error
- #106 Fixed issue of parameter having property with subnode
- #94 parameter support in BDD meta-data for data-provider
VER-2.1.11 Release Notes:
New Features
- #54 Support XML node key in BDD step call where to JavaStep requires map
- #96 Support for Multiple Devices in one script
Enahancements
- #73 Support to define component with locator repository
- #74 Data driven scenario count issue in case of verification failure
- #91 Support for Rest Client Factory
- #92 TestNG version upgrade to 6.10
Bug Fixes
- #66 dependsOnMethods not working for BDD scenarios
- #69 Getting Error “Error communicating with the remote browser. It may have died.”
- #70 Unable to capture screenshot for IE driver
- #75 Duplicate result file for data driven testcase
VER-2.1.10 Release Notes:
New Features
- #14 support for bdd, kwd dry-run mode
Enahancements
- #45 Support to set class-finder for TestStepFinder
- #52 allowed space in path for step provider classes
Bug Fixes
- #40 TestStep executed from the wrong package
- #41 Gherkin parser does does not include last step in scenario
- #42 Unable to load step from the class extending another class
- #50 Step reporting broken in when test authored in java
- #53 Solved ClassCastException in fillData
VER-2.1.9 Release Notes:
New Features
- #11 TestNG 6.9.10 support
- #28 Gherkin for test authoring
- #29 Driver initialize failure method in driver listener
- #30 Introduce new property
qaf.listeners
to register any of qaf listener - #19 scenario object access in test-step listener
- #31 FormDataBean Custom Component support
- #32 New property
step.provider.sharedinstance
to allow class variable sharing among steps in same class. Default is false. - #36 New step creation code snippet when step not found
- #37 new property
driver.init.retry.timeout
to retry on driver initialization failure - #10 Support for xml for test-authoring
- Support to third party java step annotation (for example cucumber Given/When/Then instead of QAFTestStep)
- Added new driver name perfecto can be used in
driver.name
value asperfectoDriver
orperfectoRemoteDriver
Enahancements
- #17 passing params in deployResult instead of scenario.getMetadata()
- #20 support to provide .xml or .loc file location as resources
- QAF BDD background support
- Private method (with step annotation or Step provider annotation at class level) will be excluded from step mapping
- Utility method in UIDriverFectory to get capability that will be used by factory to create driver object.
- Updates releated to selenium 3 and Removed seleniumExceptions to make code work without selenium-leg dependency with selenium 3.
Bug Fixes
- #18 Fixed infinite loop issue with retry.count
- Fixed issue of not scanning steps from all step provider package. Improved step finder.
Depricated/Removed features
- Moved cucumber package in seperate QAF-Cucumber project.
VER-2.1.8 Release Notes:
New Features:
- Refactored package from com.infostretch to com.qmetry.qaf
VER-2.1.7b Release Notes:
New Features:
- Test step threshold support at step level
- Inbuilt step to start and stop time tracking with threshold
- Test step duration and threshold recording in json report
- Command execution duration recording in json report
- test step result as warning when one or more warning in sub steps
- non-java custom step definition updates custom step definition to have parameter names instead of index, for ex: instead of bdl step def : “login with {0} and {1}” user can define as “login with {username} and {password}”
- Supported to access map and array argument in step call within custom step.
- Removed web driver response status from command log for web driver command result
- Retry analyzer support for data-driven test
- Introduced new property ‘retry.analyzer’ : Provide this property to use your custom retry analyzer
- Added support to provide license file for license
- property list value passed as system property
- Specified default driver “firefoxDriver” if driver property not provided, with console message
- Added support to specify individual capability with “driver.capabilities” prefix for all driver
- Enhanced step exceptions handling
- Enhanced verify/assert for text/attribute/value to have proper message if timeout with element not present
- Added support to have BDD Keyword Synonyms
- Added support to scan bdd,kwd and excel file with step provider package to load non java steps
- Support of TestStep meta-data by using MetaData annotation at method level or at class level.
- Step Provider Package order and priority.Last package in list has highest priority.
- Underlying configuration of property util from property configuration to xml configuration
- For Test Step string argument , Single quote (‘) or Double quote (“) is now compulsory
- Updated cucumber formatter
- Deprecated “driver.class” use instead “driverClass”
Bug Fixes:
- ISFW-148 - Same Scenario name overwrites <test_case_name>.json file in report.
- ISFW-150 - Run Configuration Include / Exclude not working properly.
QAF Reporter:
- Report Enhancements/Improvements
- Test step duration indication in checkpoints and subcheckpoints
- BarChart for Test step threshold and duration
- Actual summary time at scenario level
- Added duration in command log
- Added Different Exception type as Error Analysis
- Added rerun count
- Added retry icon at scenario level
- Well formatted Command Logs and Error Trace
VER-2.1.6b Release Notes:
New Features:
- custom meta-data support in json report
- Test management tool integration support for QMetry 6
- Randomized data selection for the data driven test cases
- Introduced new property ‘bean.populate.random’
- Generate failed test cases incase of bdd
- Added property change listener to handle driver, resources, step provider package changes on the fly.
- Renamed few of properties related to driver.
- selenium.defaultBrowser–>driver.name
- selenium.server–>remote.server
- selenium.port–>remote.port
- removed setup method from WebDriverTestBase class
- for Test Step string argument , Single quote (‘) or Double quote (“) is now compulsory
- Renamed Attritube to Attribute for following methods
- verifyAttritube –> verifyAttribute
- verifyNotAttritube –> verifyNotAttribute
- waitForNotAttritube –> waitForNotAttribute
- waitForAttritube –> waitForAttribute
- assertAttritube –> assertAttribute
- assertNotAttritube –> assertNotAttribute
QAF Reporter:
- Report Enhancements/Improvements
- Custom meta-data display in report
- Report backward support
Bug Fixes:
- ISFWR-46 - QAS report Order by “Name” not working Properly.
VER-2.1.5 Release Notes:
New Features:
- Custom meta-data filter support using include and exclude parameters
- Typo correction in ‘assertNotText’
- Enable Perfecto Command logs same as selenium logs
- Test management tool integration support for QMetry
Bug Fixes:
- ISFW-113 - BDD Empty Scenario must run without any error.
- ISFW-115 - Screenshot not capture on failure case.
- ISFW-117 - wrong exception display on failure of assert.
- ISFW-119 - driver.executeScript throws java.lang.NullPointerException.
- ISFW-116 - Unexpected behaviour while QAFTestStep defined at interface level and implemented interface in class.
QAF Reporter
- Report Enhancements/Improvements
Bug Fixes
- ISFWR-43 - Wrong PassRate percentage in report.
VER-2.1.4 Release Notes:
New Features:
-
Fetch all data of DataProvider
-
Performance Enhancements
-
Step exception handling, line number and bdd file name in stacktrace.
-
TestCase marked as skip in-case of TestStep not found or BDD parsing issue.
-
Provision in StepInvocation listener to have step type, step index and also to set next step index from listener.
-
Report to have , not run step in case of TestCase fail or skip.
-
BDD test steps call are now case-insensitive.
Bug Fixes:
- ISFW-148 - Same Scenario name overwrites <test_case_name>.json file in report.
QAF Reporter:
- ISFWR-35 - TrendChart showing incorrect execution count.
VER-2.1.3 Release Notes:
Supported selenium-server version 2.41 or above
New Features:
- Supported jre 1.6 or above (1.8 will now supported with updated base data bean)
- Compatibility Perfecto mobile
- Continue to selenium 1 support
- Added support for custom locator strategy especially to support custom strategy by appium
- Added support for getting underlaying driver
- Test Management Tool Integration Support for BDD and KWD.
- Appium 1.7 version support
- Test Step Library BDL and KWL
Bug Fixes:
- ISFW-126 - Wrong testcase count in report.
- ISFW-105 - BDD/KWD data-driven test data map as Parameter not working.
- ISFW-99 - With perfacto driver, actual capabilities are not available in Report.
- ISFW-100 - verification/ assertions with perfecto QASMobileElement is not working.
- ISFW-101 - Custom locator startegy always taking xpath.
- ISFW-102 - StepProvider Package for parellel execution not working.
- ISFW-95 - Typo of method name for assert.
- ISFW-93 - QAS report showing invalid checkpoints for Java Arguments.
QAF Reporter:
Enhancements:
- Combine checkpoint and overview tab.
- Auto refresh button redesign.
- Add legend in trend chart related to pass, skip, and fail test cases.
- Indication for expandable step in checkpoints tab.
- Navigate to particular execution from trend-chart.
- Add tool tip for count of pass, fail, skip test cases in trends-chart.
- Execution number on sidebar in reports.
- Add label for Number of Test Cases in trends-chart.(Y-Axis)
Bug Fixes:
- ISFWR-33 - method results are not expanding in report.
VER-2.1.2 Release Notes:
- Supported selenium-server version min 2.34
New Features:
-
ISFW-51: multiple step provider packages.
-
ISFW-54 Added support for data-bean field value list (list or key) to pick random value
-
ISFW-45 Alternate/multiple locator support
-
ISFW-43: Support for override property from xml configuration in web-service testing
-
ISFW-49: JQuery Locator support
-
Added waitForAjaxToLoad with IsExtendedWebDriver.
-
Test step BDD client - Behavior driven support
-
Test step listener support
-
Property file with .loc extension
-
Cucumber with ISFW (Web application functional Android/IPhone native and Rest web service automation)
- Validation Support
- Reporting check points in default cucumber report(s)
- ISFW reporter support
- Parameter support in cucumber feature file step call arguments
Bug Fixes:
- seleniumEquals Null Pointer exception.
- ISFW-57: VerifyPresent is not working in case of nested child component
- ISFW-47: Wrong Description in report
Deprecated Feature
JSONUtil.toMap method
Modifications
Following properties modified/added
Original property name|New Property name load.locale|env.load.locale default.locales|env.default.locales teststep.listeners
ISFW Reporter New Features
Attached deffect tracker with report.
Bug Fixes
- ISFW-55 Not Able to get Test Case Summary in ISFW New Report
- Not displaying method result if args not provided in method meta-info.json
VER-2.1.1 Release Notes:
New Features:
Supported selenium-server version min 2.22.0 max 2.32.0 and upto 2.34
-
Pro: Added ISFW build information and environment information in report under test overview section.
-
Pro: Added CSV step client
-
Pro: Added group, soft dependency, ordering support for CSV/Excel scenario
-
Pro: Added predefined steps working with web element object
-
Pro: Added rest web service testing support
-
Added Validator class to provide assertion/verification methods that supports hamcrest matchers
-
Added onInitialize method in web driver command listener
Improvements:
-
Updated QMetry client
-
Removed feature of automatic starting selenium server.
-
Renamed properties:
selenium.browser.url - > env.baseurl
test.props.dir -> env.resources
app.autolaod.test.prop -> resources.load.subdirs
-
selenium.server.start.command -> discontinued
Package restructured and renamed some classes, please refer Upgrade notes.
Screen Shots
VER-2.1.0 Release Notes:
Improvements:
Renamed properties:
-
driver.extra.capabilities to driver.additional.capabilities
-
driver.extra.capabilities to driver.additional.capabilities
Package restructured and code clean up:
-
Removed “com.qmetry.qaf.automation.webdriver.custom” package holding sample custom component.
-
Removed class/pacakage from selenium community (org.**).
-
Removed deprecated methods:**
/**
* key:test.selenium.report.dir <br/>
* value: dir to place generated result files
*
* @Deprecated: use {@link #REPORT_DIR} instead
*/
@Deprecated
SEL_REPORT_DIR("selenium.report.dir"),
- ISWebDriverBackedSelenium:
/**
* @deprecated Use {@link #getWrappedDriver()} instead.
*/
@Deprecated
public IsExtendedWebDriver getUnderlyingWebDriver() {
return getWrappedDriver();
}
- Base test case:
/**
* blank implementation need to override this method to provide before
* individual test specific implementation Override beforeTest method for
* before test implementation if you are configuring parallel methods
* instead of method with @beforeTest annotation
*
* @deprecated use @beforeMethod instead
* @param stb
* @param m
*/
@Deprecated
protected void beforeTest(SeleneseTestBase stb, Method m) {
}
/**
* blank implementation need to override this method to provide before each
* test specific implementation
*
* @deprecated use @beforeMethod instead
* @param stb
*/
@Deprecated
protected void beforeTest(SeleneseTestBase stb) {
}
- PropertyUtil:
/**
* @deprecated use {@link #getString(String, String)} instead
* @param sPropertyName
* @param def
* @return
*/
@Deprecated
public String getProperty(String sPropertyName, String def) {
return getString(sPropertyName, def);
}
/**
* @param sPropertyName
* @return default value is key itself
*/
public String getPropertyValue(String key) {
return this.getString(key, key);
}
/**
* @deprecated use {@link #getInt(String)} instead
* @param sPropertyName
* @return
*/
@Deprecated
public int getPropertyIntValue(String sPropertyName) {
return getInt(sPropertyName, 0);
}
/**
* @deprecated use {@link #getInt(String, int)} instead
* @param sPropertyName
* @param defaultVal
* @return
*/
@Deprecated
public int getPropertyIntValue(String sPropertyName, int defaultVal) {
return getInt(sPropertyName, defaultVal);
}
/**
* @deprecated use {@link #getString(String,String)} instead
* @param sPropertyName
* @param def
* @return
*/
@Deprecated
public String getPropertyValue(String sPropertyName, String def) {
return getString(sPropertyName, def);
}
- ConfigurationManager:
/**
* @deprecated Use {@link ConfigurationManager#getBundle()} instead
* @return
*/
@Deprecated
public PropertyUtil getApplicationProperties() {
return getBundle();
}
VER-2_0-b09 Release Notes:
Improvements:
-
Compatibility for chrome driver with server version above or below 2.22 (latest till the date is 2.33)
-
Changed the way of providing extra capabilities from csv to json for example
chrome.extra.capabilities={"platform"="ANY","cssSelectorsEnabled"=true,"chrome.switches":["--ignore-certificate-errors","--user-data-dir=F:\chirag\projects\STFWs\ISFWTestStepDemoProject\chromeprofile"]}
VER-2_0-b08 Release Notes
New Features:
-
Added support localization of xml file. To create xml file for specific local provide local ext after .xml for example testdata.xml.en
-
Added test step feature:
Step Feature:
ISFW will provide a mechanism to specify any method as test step by annotating the method with @IsTestStep. Furthermore methods in class specified as step provider by annotating the class with@IsTestStepProvider. Also we have provided provision to supply step description so that it can be reported in report.
public class SampleClass{
@IsTestStep(description="do the needful with {0}")
public static void testStep(String s) {
System.out.println("testStep invoked!....." + s);
}
@IsTestStep(description="do the needful")
public void testStep2() {
System.out.println("testStep without args invoked!.....");
}
}
@IsTestStepProvider
public class SampleStepProvider {
public void step() {
System.out.println("step invoked!.....");
}
public void anotherStep() {
System.out.println("anotherStep invoked!.....");
}
}
- Added Step client for Excel
Bug Fixes:
- Fixed issue of overriding resources from config file by providing resource file(s)/dir(s)
VER-2_0-b07 Release Notes:
New Features:
-
Json based reporting support , you need to copy dashboard.htm and jquery directory.
-
Added service entry to register testNG listener. Now you don’t require to register testng listener of ISFW. Please remove “com.qmetry.qaf.automation.testng.IsTestNGListener” entry from the listener entries in existing build files.
-
Added support to directly provide remote webdriver url in case it is not in standard remote webdriver format. ie http://
: /wd/hub. In case the remote wd url is different then the defult pattern then insted of providing server and port just provide actual url as value of server property. For example: http://14.97.73.4:7777/wd/ -
Added support/compatibility with selenium 2.25 and later for using running browser session
Bug Fixes:
- Fixed issue of finding element within component.
VER-2_0-b06 Release Notes
New Features:
- Added String matcher and additional wait/assert/verify methods for element text and value with String matcher argument
example:
import static com.qmetry.qaf.automation.util.StringMatcher.containsIgnoringCase
ele.verifyText(containsIgnoringCase("partial text"));
ele.verifyText(exact("text"));
ele.verifyText(startsWith("prefix"));
ele.verifyText(startsWithIgnoringCase("prefix"));
ele.verifyText(like("valid regular expr"));
ele.verifyText(likeIgnoringCase("valid regular expr"));
- Added Support to provide wait time for wait methods.
example:
ele.waitForText(containsIgnoringCase("partial text")); //default timeout and interval
ele.waitForText(containsIgnoringCase("partial text"),5000); //with timeout 5000 ms and default interval
ele.waitForText(containsIgnoringCase("partial text"),5000,100); //with timeout 5000 ms and interval 100ms
- Added support for xml data provider
@IsDataProvider(key = "test.set")
@Test
public void xmlDPTest(String p1, String p2, String p3) {
System.out.printf("data - p1:[%s] p2:[%s] p3:[%s]", p1, p2, p3);
}
@IsDataProvider(key = "test.set")
@Test
public void xmlDPTest(Map<String, String> data) {
System.out.println("data - " + data);
}
below is the content of data file
<testdata>
<test>
<set>
<val1>aaa</val1>
<val2>bbb</val2>
<val3>ccc</val3>
</set>
<set>
<val1>xxx</val1>
<val2>yyy</val2>
<val3>zzz</val3>
</set>
<set>
<val1>111</val1>
<val2>222</val2>
<val3>333</val3>
</set>
</test>
</testdata>
-
Added support for xml property configuration
-
Added locale support
Any locale or env specific data can be stored in properties file with extension of the locale or env. It can be retrieved by getting subset. We need to specify which locales we want to initialize by setting following property
#all the locales that can be usedload.locales= zh_CN;hi
above setting will load properties from *.zh_CN *.hi files
To access hi locale properties
ConfigurationManager.getBundle().subset("hi").getString("test.prop");
props.subset("hi").getString("test.prop");
props.subset("zh_CN").getString("test.prop");
There is a provision of setting default locale by providing default.locale
In that case if multiple locale loaded and want to use prop from default locale then don’t require to use subset.
For example:
load.locales= zh_CN;hi
default.locale= hi
Then use properties directly for hi locale:
props.getString("test.prop");
For zh_CN:
props.subset("zh_CN").getString("test.prop")
Default encoding for reading locale properties is UTF-8 that can be change by providing system/application property “locale.char.encoding”
- Added component class and support to find component from parent element.
public class TestComponent extends Component {
public TestComponent(String locator) {
super(locator);
} ....
}
TestComponent comp = ele.findElement("css=a", TestComponent.class);
List<TestComponent> testComponents =
ele.findElements("css=.pass", TestComponent.class);
-
Added support to link java doc with test description in report. To enable set property ‘report.javadoc.link=true’ to set docs dir path set property
javadoc.folderpath
default is"../../../docs/tests/"
to customize link setreport.javadoc.link.format
default value is<a href="%s" target="_blank">[View-doc]</a>
-
Added support to pass parameter in locator string.
For exmple
in locator xpath=//@/[name()=’ wl:trnslate’][.=’${foo.bar}’]//.. ${foo.bar} will be replaced with the value of property “foo.bar”. Assuming value is xxx then the locator will become xpath=//@[name()=’.. Same way link=${foo.bar} will become link=xxx
It supports multiple parameters as well as same parameter multiple times.
-
Added QC support - refer QC integration doc
-
Support for JSON file to provide test data. Test method should expect Map.
-
Added support to use map as parameter for data-driven test where db is used to provide data. column name/alise will be key and column value will be value.
-
Added support to use existing driver session
Following are the steps:
- Webdriver session can be created through http://localhost:4444/wd/hub/static/resource/hub.html. After starting session you can perform manual steps on the browser!
- You need to use only appropriate remote driver for this purpose. (e.g. firefoxRemoteDriver)
- You need to provide session id by setting driver extra capability webdriver.remote.session or a property webdriver.remote.session . The session id can <driver>.extra.capabilities=webdriver.remote.session=<session id> or webdriver.remote.session=<session id>
Introduced page launch strategy so that one can define the page launch behavior from one of the following
- always launch from parent
- always launch from root
- launch page only if required (default)
- Added support for retry command through command tracker so that in on failure we can set retry to true and give it to one more try.
-
Added support for self-descriptive web element:
For self descriptive locator you can provide json string with key "desc". See below example of normal and self descriptive element locator.
String LOGOUT_LINK_LOC = "{'locator':'link=Logout','desc'='Logout link'}";
String LOGOUT_LINK_LOC ="{'locator':'key=loc.properyname.in.property.file','desc'='Logout link'}";
//self descriptive
the element description is available by ele.getDescription(). Also it will be used in different assertion/verification messages automatically by the fw.
- Added support for fill string in given format for bean property. Added randomize parameter format which can be used to provide format of the value. It will work only with String properties of bean.
Sample format
- 999-999-99
- aaa-a9a-99
- 99.99.aa
alphabet will replaced random alphabet and digit will replaced with random digit
-
Added safari driver support. required selenium server 2.21 or latest
-
Added support for Date property in data bean. Fill random data will generate random date for day range min-max to current date
-
Added new FindBy Annotation so you can find element by selenium-1 locator strategy
-
Added order parameter in UiElement annotation. This can be used to set order of bean properties for fillUiElement.
-
Support to override any property using testng config or system property. Priority will be system property, xml config, property file.
-
Additional flag “selenium.failure.screenshots” to skip screen-shot for each failure and to have single screen-shot in case of failure.
-
Added support for providing extra capability through property.
- For all driver set property “driver.extra.capabilities”
- For specific driver set property “<driver>.extra.capabilities”
Example:
driver.extra.capabilities=acceptSslCerts=false;platform=WINDOWS
chrome.extra.capabilities=acceptSslCerts=true;chrome.switches=[--ignore-
certificate-errors] chrome.extra.capabilities=acceptSslCerts=true;chrome.switches=[--
ignore-certificate-errors, --sample-other-switch] -added support for otherDriver or
otherRemoteDriver
For that you must need to set property “other.extra.capabilities”. In case of otherDriver (not remote driver) you must need to provide driver class as capability : “driver.class”,
Example :
other remote driver
other.extra.capabilities=platform=ANY;browserName=safari
other driver
other.extra.capabilities=driver.class=org.openqa.selenium.safari.SafariDriver
-
Added new form data bean and UiElement annotation
-
Support to java script expr for dependent value match in form data bean
-
Added support to use map as parameter for data-driven test, first row will be treated as header row header column will considered as key.
-
Added support to populate bean from map having bean properties as keys
-
Added skip parameter in Randomizer annotation
Data bean random data generation:
- Added support for min and max value
Improvements:
-
Updated properties util, derived from PropertiesConfiguration [dependency of commons-configuration.jar]
-
Updated data-provider functionality
-
Updated data driven functionality
-
added new annotation IsDataProvider
-
added listener IsAnnotationTransformer
-
Properties:
For test data: <tc>.testdata=<param>=value;<param>=value globle. <param> are one of the parameter of IsDataProvider (dataFile, sheetName,hasHeaderRow,labelName,sqlQuery)
Discontinue to support property CMD_EXECUTION_INTERVAL (key:commands.execution.interval) to Set execution interval between two selenium commands.
Bug Fixes:
- Fix for IllegalAccessException while filling random data in non public variables
- Fixed issue of varification failed test considered as pass with testng 6.
VER-2_0-b05 Release Notes
New Features:
-
Added support to provide application.properties file by setting system property application.properties.file.
-
Added support to provide read test.props.dir from system property if exist.
Improvements:
-
Separated UI code as ISFW-UI project
-
Updated to search server jar in all folders in project if selenium server is not started
-
Updated QMetry integration to support new Scheduler xml and web-service
-
added support for filter by script name, runid
-
added support for multiple script name, tc id, run id
-
Separated Qmetry integration from ISFW base test case and provided
Bug Fixes:
- Fixed issue of execution fail if application.properties file not found.
VER-2_0-b04 Release Notes
New Features:
- Added setAttribute custom command
Improvements:
- Updated excel data provider
VER-31072011 Release Notes
Posted on July 5, 2011
New Features:
-
Added new feature to set interval between two commands by setting property
-
Added capture screen shot support for remote web-driver
-
Added Web-driver support
VER-05042011 Release Notes
Posted on Apr 5, 2011
New Features:
-
Added
-
ClipBoardUtil
-
ImageCompareUtil (requires JAI dependency jars )
-
-
Tage: extjs
-
Support for Extjs component model
For example purpose inbuilt basic implementation for ExtGrid, ExtTree, ExtCombo
Improvements:
-
Updated ConfigurationManager default application properties file name to “resources/application.properties” from “resources/appication.properties”
-
Used property “selenium.screenshots.kwargs” as parameter while capturing screen shot
VER-04032011 Release Notes
Posted on Mar 4, 2011
New Features:
- Added flexCall method for support to call flash/flex methods not available in client interface/implementation.
Improvements:
- Updated BaseTestCase, moved result updater thread pool to ResultUpdator
Bug Fixes:
- Fixed issue of null point exception in testNG group run.
VER-19022011 Release Notes
Posted on Feb 19,2011
New Features:
-
Added ext component implementation with basic functionality for
-
Grid
-
Tree
-
Combo-box
-
Window
-
-
Added support for flex api
-
Extended selenium interface
-
Extended selenium implementation
-
VER-11022011 Release Notes
Posted on Feb 11, 2011
New Features:
-
Selenium Command Listener
-
Ability to create and register listeners to perform before and after events while executing selenium command from command processor.
-
Inbuilt AutoWaitInjector - auto wait listener, that can be registered to inject wait for locator before executing commands
-
Inbuilt IEScreenshotListner - auto scroll window before capturing screen-shot.
-
-
Added ajaxwait ability for phpjs toolkit
VER-05022011 Release Notes
Posted on Feb 05,2011
New Features:
ExtJs utility:
-
Classes to construct extjs container and component object using framework.
-
Any ext component can be pointed using component class object
Ajax wait:
- waitForAjaxToLoad() and waitForAjaxToLoad(JavaScriptToolkit) methods to support wait forajaxrequest to complete.
-
At present supportingajaxwait for following toolkit.
-
DOJO
-
EXTJS
-
JQUERY
-
YUI
-
PROTOTYPE
-
- Tested for extjs with example application, for other toolkit testing not done
IS Automation framework UI:
-
Settings tab
-
Test runner can
-
view list of property files loaded.
-
view all properties loaded from selected file.
-
set/update property value and load (Hot-fix property value also possible)
-
It might be helpful when updating (Hot-fix) property value after started run for pending test. For example, started test run with initial 10000 wait timeout value which is AVG value for AUT. But found AUT much slow after some test executed and want to change wait time for remaining tests, then one can set and load property value say 20000 that will take effect immediately .
VER-28012011 Release Notes
Posted on Jan 28, 2011
New Features:
IS Automation framework QMetry Integration:
-
Scheduler filter
- Accepts scheduler file as argument to run script; filters test case and run tcs provided in scheduler xml file
-
Posting run results to QMetry: for fail and pass test-cases.
-
Parameter mapping
- QMetry TC ID : using one of following way (annotation has priority)
-
QMetry annotation TC_ID value eg. @QmetryTestCase(TC_ID = “999”)
-
test case name with prefix TC eg TC999 maps to Qmetry TC ID 999
-
QMetry project, build, release, suit, platform: from scheduler xml file.
-
QMetry instance URL, user, pwd : from application properties
-
Supported way
- Executing test runner from other tools : execute batch file or ant script
-
-
call bath file: seleniumToolRunner.bat <scheduler file>
-
call ant script: ant -f seleniumtestrunner.xml -Dqmetry.schedule.file=<scheduler file>
- UI (Supposed): Select scheduler file
IS Automation framework UI:
-
GUI for start/stop automation run
-
User can stop automation run at any point of time and can get report of run test-cases, not-run will marked as skipped.
-
Integrating third party XML editor tool for configuration file editing
-
Stop/check-status/Start selenium server from UI; (start support only for localhost)
Selenium IDE code formator
VER-30122010 Release Notes
Posted on Dec 30, 2010
Improvements:
-
Removed use of property selenium.report.dir used test.results.dir instead
-
Provided work-around for base URL with basic authentication not working when directly open /[/]
VER-28122010 Release Notes
Posted on Dec 12,2010
Improvements:
Bug Fixes:
- Fixed issue of selenium tear down with parallel data provider
VER-25122010 Release Notes
Posted on Dec 25, 2010
Improvements:
-
Updated framework to provide report message filtering with pass, fail, info check-box with each test case result
-
Updated reportNG with JS and CSS for the same. jar: ireportng-1.1.3.jar
-
Updated framework to support configurable Selenium base url
-
Now supports baseUrl property in testNG configuration file
Bug Fixes:
- Fixed issue of opened browser when running in parallel mode with data-provider
VER-Old Release Notes
Features:
-
Excel data provider. It will allow non Windows operating systems to use Excel spreadsheets as data file.
-
CSV data provider support.
-
Support to distributed server for different browse
-
Configurable capturing screen-shot capability
-
Parallel support
-
Logging selenium
-
Test Page based framework design with support of different page concepts.
-
Record of assertion/verification messages
-
Customized reportNg to provide tc details, assertion/verification messages and selenium command log
-
Auto scroll while capturing screen-shot