EMOS Framework
History
|
|
Content
What's new in Release: 1.4.1.3
top
- Improved error reporting
Error numbers are converted to textual descriptions.
Many thanks to Mr. Skobowsky from DAT and his help on translating English error texts to German.
- Improved error handling
If a test block fails, a dialog is shown where you can choose whether retry,
continue or abort the test execution.
- Smaller changes that I might have lost track of
What's new in Release: 1.4.1.2
top
- BUGFIX of the 1.4.1.1 bugfix
What's new in Release: 1.4.1.1
top
- BUGFIX for sheet names with uppercase characters
FRM_open() function used to lowercase the table name in order to recognise
the reuse of the same table name in case of different spelling. This worked fine
as long as we only used table names (because Windows file system is case-insensitive).
Sheet names however ARE case-sensitive so we are now taking care not to convert
them prior to DDT_table_open() call.
Affected:
FRM/emos_frm_lib
What's new in Release: 1.4.1
top
- Support for multiple Excel sheets added
Probably the most important new feature in EMOS Framework in last few years.
This feature allows new ways of structuring tests in Excel tables with fewer files.
This feature builds upon the idea (and software) created by Anoop Joy.
His ExcelSheet.dll
and the routine SetExcelSheet
has been included in our emos_ddt_lib
and used accordingly in
other libraries.
For EMOS Framework users the change is visible in modified syntax of LINK,
LINA and LINX instructions. From now on you can specify the sheet name by
appending "#" to the second parameter. The new syntax rules are:
LINK~[driver]~[table][#sheet]~test
LINA~[driver]~[table][#sheet]~test
LINX~driver~[table][#sheet]~[test] --> not completely implemented!
Examples:
LINK~~C:/path/testa.xls#main~1
LINK~~tests.xsl#main~1
LINK~~#main~1
New examples can be found in the updated
FlightDemo project.
NOTE: Use this feature with care since it is not thorougly tested yet!
In fact, let me abuse you as beta testers for a while. So please let me know all the good and bad things.
Thanks a lot, dean
Affected:
DDT/emos_ddt_lib
FRM/emos_frm_lib
FRM/emos_frm_stp_lib
- Simple test statistics added
Upon Lars Underbacke's request the simple test statistics are now produced
by the standard EMOS Framework suite driver. The idea is realised with a
handful new functions in a new library "FRM/emos_frm_result_lib".
The calls to the new routines have been implanted inFRM/emos_frm_driver_lib
and in kickoff scripts.
Affected:
FRM/emos_frm_result_lib
FRM/emos_frm_driver_lib
FRM/TPL/Scripts/kickoff_new_style
FRM/TPL/Scripts/kickoff_old_style
- Version numbering corrected in registry
Version 1.4.0 used to print 7.01.00.06 in WR help screen
What's new in Release: 1.4.0
top
- New release numbering
We have finally given up the versioning approach that stupidly followed the
WinRunner's release numbering as EMOS Framework is, generally, independent of WR changes.
New version number was calculated by accumulating old versions:
6.02.00.02 --> 1.1.1
6.02.01.00 --> 1.2.0
6.02.01.01 --> 1.2.2
7.01.00.01 --> 1.3.1
7.01.00.02 --> 1.3.2
7.01.00.03 --> 1.3.3
7.01.00.04 --> 1.3.4
7.01.00.05 --> 1.3.5
7.01.00.06 --> 1.3.6
1.4.0
- History rewritten in HTML-format
This file used to be a plain text file.
Affected:
history.txt --> removed
history.htm --> inserted
- WrDoc package documentation added
Documentation improved adding package.html files into all directories.
Overview.html was added in two project roots (EMOS_GPL and EMOS_GPL/FRM/TPL).
Affected:
*/overview.html --> added
*/package.html --> added
- Invocation of non-existing tests can (optionally) raise an error
Motivation: see http://groups.yahoo.com/group/EMOS_frame/message/62
New function FRM_DRV_set_fail_on_unknown_test( mode ) and
FRM_DRV_set_is_fail_on_unknown_test() have been added to
emos_frm_driver_lib.
Setting "mode" to TRUE will cause FRM_DRV_test_set_driver() to raise an
error if an unknown test (i.e. nonexisting column) has been called. Leaving
this parameter alone (or setting it to FALSE) will leave the old logic
unchanged which only reports an "UNKNOWN, ignored" message.
To turn the feature on insert the following statement into your kickoff
test(s)
FRM_DRV_set_fail_on_unknown_test( TRUE );
Affected:
FRM/emos_frm_driver_lib
- Misha's Perl-like regular expressions (v0.2) included
Motivation: see Misha's birthday present
Here is Misha's original text:
This is the first release of a script and dll to provide WinRunner
with perl-like regular expression search and match functions.
If you currently use the builtin function match() you will probably
appreciate the expanded breadth of expressions supported.
Also added is a GUI property "label_like" for window label recognition.
re_func.dll is a wrapper for regex++ in the c++ library at www.boost.org.
The following functions are exported from the dll:
re_match - match a RE to a whole string
re_search - find a match for RE within a string
Also defined is a query and verify function for a new property called
"label_like".
This can be used to find regular expressions (equivalent to re_search)
in windows labels.
Note that this will probably not work with web objects or other custom
controls, as it
uses the windows API GetWindowText() to extract the label.
Included are a sample script and a copy of the supported regular
expression syntax.
EMOS Framework distributes v0.2 of re_func which contains another
improvement. Here Misha's text again:
This version now has another GUI property "id_like", to match MSW_id's.
To turn the feature on insert the following statement into your startup test:
re_func_init();
Note also that v0.3 of re_func is available which completely replaces the
built-in regular expression logic (i.e. including !-logic in GUI-Map). Although
we prefer this version we do not distribute it with EMOS framework because
of its (nice) feature that invalidates the original match() functionality.
Those who are interessted should check
http://groups.yahoo.com/group/winrunner/files/re_func_0.3.zip.
Affected:
STD/misha_std_re_func_lib
FRM/TPL/Scripts/startup
emosinit
What's new in Release: 7.01.00.06
top
- LINK now allows parameter driver to be left blank
The introduction of new driver logic allowed the following syntax construct
LINK~~~1 (see comments for v7.01.00.01 below)
As of this release this finally works.
Affected:
FRM/emos_frm_stp_lib
- Missing wait() added in EMOS_check_win_closed()
EMOS_check_win_closed() used to ignore the timeout parameter.
Affected:
STD/emos_std_win_lib
What's new in Release: 7.01.00.05
top
- Workaround for WinRunner bug in EMOS_win_close_all()
WinRunner function win_close() sometimes returns E_OK for windows
which are not closed. It seems to affect windows that do not have a
close button (x-button in the upper-right corner) such as Login window of
the Flight Application. Our workaround is to attempt Alt-F4 in such cases
which seems to work.
Affected:
STD/emos_std_win_lib
- Workaround for WinRunner bug with setvar/getvar("timeout"/"timeout_msec")
Mercury has managed again to confuse "timeout" amd "timeout_msec".
In version 7.00 and 7.01 "timeout_msec" did not work properly.
As of Version 7.5 "timeout" does not work any more. Try this code on different
WR versions if you are curious:
setvar("timeout", 1);
printf("timeout=%s", getvar("timeout"));
printf("timeout_msec=%s", getvar("timeout_msec"));
setvar("timeout_msec", 1000);
printf("timeout=%s", getvar("timeout"));
printf("timeout_msec=%s", getvar("timeout_msec"));
We have to use the trick now to make our set_timeout()/restore_timeout()
functions work in both envirinments.
Affected:
STD/emos_std_misc_lib
- Some reformatting/beautifying in TPL directory
Template directory was updated for the new driver logic which was introduced
in 7.01.00.04. However, the example is still the same old stupid "Hello world!"
If you are intrested in a better example, then you should consider the updated
FlightDemo example which is available on our download pages.
Affected:
TPL/*.*
What's new in Release: 7.01.00.04
top
- Improves/fixes thealgorithm for loading driver libraries
New driver logic originally did not allow the combination of new and old drivers
in a test suite. This proved to be incompatible in rare cases where a specially
designed test (the so called inverted test or tests whos data tables are not
organised in column-wise manner but row-wise similar to ddt-logic) needs
to be called within the suite.
This version introduces a new algorithm in emos_frm_drv_lib that first checks
whether the specified driver is a compiled module (or it has accompanied a
compiled module whthe same name plus suffix "_lib"). If this is true, the compiled
module is called using new driver logic. Otherwise the driver is treated as a
main test (i.e. old driver logic) and is called as usual with call_close statement.
Affected:
FRM/emos_frm_driver_lib
STD/emos_std_misc_lib
What's new in Release: 7.01.00.03
top
- Fixes a bug introduiced with 7.01.00.01
New driver logic used to incorrectly load/unload driver libs due to a "feature"
in TSL laod/unload/reload statements. We are now forced to reload driver libs
for each LINK statement which we hoped to have avoided earlier. In any case
this release should be stable. If you want to avoid unnecessary reloading of
your driver libs, than integrate all of your drivers into one lib and/or avoid
using the first argument of the LINK statement if not absolutely necessary.
Affected:
FRM/emos_drm_driver_lib
What's new in Release: 7.01.00.02
top
- WrSync integrated into EMOS Framework
If WrSync is present in its default location, emosinit will automatically load it.
WrSync is a new library from EMOS that can be used to syncronise WinRunner
tests on several machines. This can prove very useful for measuring
application's performance (especially in combination with WrLog) and/or for
implementing simple load tests. For more info on WrSync please contact
emos@emos.de
Affected:
emosinit
What's new in Release: 7.01.00.01
top
- New test driver logic introduced
This change has fixed a very subtle bug in Framework that present since its
creation. Namely, TSL does not provide for local variables in main tests (the
equivalent of "auto" variables in functions). This imposes limitations in case
of recursive invocations of main tests which was afecting Framework test
drivers. Until now we were using the variable frm_rc to indicate that some
failed. However, we were not able to completely mark the failed execution
call chain. This error was not that obvious from the default WinRunner test
results. However, with the introduction of WrLog this bacame really anoying
due to WrLogs feature to clearly mark the execution chain.
The new test driver logic does not use man test for drivers any more.
Instead you create a library with four functions (see DRV/drv_lib in FRM/TPL
directory for an example). These functions have reserved names and will be
called from the new function FRM_DRV_test_driver() that resides inside the
emos_frm_driver_lib. Due to a fat that we have managed to implement the
whole logic with functions we can now take the full advantage of recursion
while removing the bug with return codes.
One side effect of TSL functions ist that they do not create a branch in test
result tree (a feature that we used to love in EMOS Framework). We have
therefore included new main test in FRM/TPL/Scripts/DRV directory called
emos_test_driver. Its only purpose is to provoke a new test branch in test
result tree for every test invoked.
For compatibility reasons we have not removed the old (and from now on
obsolete) logic. The new Framework will by default execute the old logic
and should be transparent to existing installations. To activate the new
feature do the following:
- for every test driver you use create a new compiled module in the
same directory with the same name and witt suffix "_lib"
- extract the parts of your divers into the four functions (see example in
FRM/TPL/Scripts/DRV/drv_lib)
- include the following line in all your kickoff-files before calling the
emos_test_suite_driver:
FRM_DRV_set_new_test_driver( TRUE );
If you obey the naming covention fom the point a), then no changes in your
Excel tables are required. Otherwise all suite tables ans all LINK commands
are affected. Here a few examples:
LINK~drv/main~table1.xls~1
will attempt to load the library named "drv/main_lib" before attempting to process
the test 1 in table1.xls (if no suffix "_lib" exists, Framework will append it)
LINK~drv/xyz_lib~table1.xls~1
will attempt to load "drv/xyz_lib" (you may name any file as lng as you name it
"..._lib")
LINK~~table1.xls~1
will use the last loaded driver to process the test 1 in table1.xls (note that this
was NOT possible before, you always had to specify the driver)
LINK~~~1
willuse the last loaded driver to process test 1 in the current table (this was also
not possible before)
Affected:
FRM/emos_drm_driver_lib
FRM/emos_frm_stp_lib
FRM/TPL/Scripts/DRV/drv_lib
FRM/TPL/Scripts/DRV/emos_test_driver
What's new in Release: 6.02.01.01
top
- ATR mode added
Beside SET/CHK/GEN modes the framework now "understands" the ATR mode. ATR stands
for ATtRibute check. This means that you may now specify object's physical
attributes/properties to be checked. You can specify this with a colon-separated
pair attrName:attrValue ( e.g. enabled:1). Multiple attributes can be specified
by separating multiple pairs with embeded newlin character (within Excel Alt-Return).
Note that different FRM wrappers use different chk_info functions. For example
FRM_edit_set() uses edit_check_info(), FRM_obj_type() uses obj_check_info(),
FRM_static_get() uses static_check_info() etc.
Affected:
STD/emos_attr_lib (new)
FRM/emos_frm_gui_lib
FRM/emos_frm_web_lib
emosinit
- WrLog interface modified
Framework is now capable of supplying formatted report messages that can
be displayed and analysed with the modified WrLog system.
Affected:
STD/emos_wrlog_lib
FRM/emos_frm_driver_lib
FRM/emos_frm_lib
- Function EMOS_win_close_all() added
This function can be used to assure that none of the specified windows (passed as
0-indexed array) exist upon the exit of the function.
Affected:
STD/emos_std_win_lib
- Function debug_msg2() added
This function prints a report_msg if debug level (can be set by set_gebug()) is
greater than or equal 2.
Affected:
STD/emos_std_misc_lib
- WrLog functionallity removed
The WrLog interface was changed to a dummy interface. The full WrLog functinallity
is from now on only available through the separate product EMOS WrLog.
Affected:
STD/emos_std_wrlog_lib
What's new in Release: 6.02.01.00
top
Parameters for main test emos_frm_driver are now additionally made available
via getter/setter functions (can improve legibility of kickoff scripts).
Affected:
FRM/emos_frm_driver
- Restart capability integrated into emos_frm_driver
It is now possible to
restart the particular run by only executing the test that either failed or
were not executed the last time. This only works when executing tests in
interactive mode. In order to enable the retry capability you either need
to enable it generically (e.g. in the startup test) or individually for
EACH test suite by calling functions FRM_DRV_enable_retry() and/or
FRM_DRV_disable_retry().
Affected:
FRM/emos_frm_driver
kickoff scripts of your choice
- Support for multiple testsequence rows added
Step library extended to support spreading the testsequence over several
(max. 100) cells. This was done due to the bug in ddt-interface that prevents
writing to data tables into cells that exceed the length of 255 characters
(i.e. cells displayed as ####). All you need to do now is to split the big
cell across several rows. You must name additional test sequence rows by
appending 1, 2, etc. to the original name of this row. For example if your
test sequence row is indexed by the name "Testvorgang" you should name
additional rows "Testvorgang1", "Testvorgang2", etc.
Affected:
FRM/emos_frm_stp_lib
- Reporting improved
Reporting improved in emos_frm_stp_lib. This lib had the "property" of
poorely (or nothing at all) reporting the cases when internal steps (e.g.
LINK, CALL, EVAL) failed. This failures are mainly caused by erroneus
entries in the data tables. Fremework was detecting all such errors but it
used to "report" them only by misterious return codes and absolutely no
message at all. This is now hopefully imporoved.
Affected:
FRM/emos_frm_stp_lib
A few bugs removed from the emos_frm_stp_lib (e.g. LINA was not working at
all).
Affected:
FRM/emos_frm_stp_lib
- Command LINX added
In order to support the possibily for defining test casses
in an inverted form (i.e. spread accross rows insted columns, the same as native
ddt but with indexed rows) we had to introduce a new keyword. This keyword
performs a slightly different kind of "loading" of data tables. This loading is
similar to LINA command that loads all columns. The difference is that LINX
does not require a test (i.e. the column name) to exists.
This new feature enables the Framework to deliberately combine vertically and
horizontally organised tests by using the standard linking approach. In order
to implement such tests a special kind of test drivers has to be written wich
is capable of executing the horizontally oriented tests (not a complicated
thing to do).
Affected:
FRM/emos_frm_stp_lib
- Command EXEC added
This command now makes the old-fashioned EXE: command obsolete.
The only difference between the new and the old sysntaxis that the new syntax
follows the style of other new (4-letter) commands such as LINK, EVAL and CALL.
For example the old EXE:some_block should in future be written as EXEC~some_block
where ~ is a separator of your choice.
Affected:
FRM/emos_frm_stp_lib
- Wrlog-functionallity is by default deactivated
Due to the problems (slow responses of the AUT) detected in one project, which
was traced down to loading of wrlog.dll, the wrlog is now by default deactivated.
Use functions wrlog_start() and wrlog_stop() to (de)activate the remote logging.
Affected:
STD/emos_wrlog_lib
What's new in Release: 6.02.00.02
top
- Function FRM_STP_exec() fixed
Function was using an invalid variable to execute a command which
effectively caused nothing to be executed.
Affected:
FRM/emos_frm_stp_lib
- Function EMOS_menu_item() is now capable of selecting the last menu
item instead of the whole menu path.
There sems to be a bug in menu_select_item() function that causes the
selection of subitems (e.g. menu_select_item( "File;New..." )) to fail.
However, selecting the last subitem only (e.g. menu_select_item( "New..."))
seems to work fine. This seems to be an undocumented "feature" which
appears to be more reliable than the documented one. There are four new
functions that let you set and check the menu selection mode:
EMOS_menu_set_complete_path_selection()
EMOS_menu_set_last_entry_selection()
EMOS_menu_is_complete_path_selection()
EMOS_menu_is_last_entry_selection()
Affected:
STD/emos_std_menu_lib
- Function EMOS_menu_select_item_via_text() was extended to adopt an optional
parameter that specifies physical properties of the window that contains
the menu.
Originally, the window description was hard-coded in the function which
limitted its usage only to such case (now this value will only be used if
no other description is provided).
Affected:
STD/emos_std_menu_lib
|
© 2000,2001,2002,2003, EMOS Computer Consulting GmbH |
|
www.emos.de |