EMOS Framework
History
EMOS Homepage

Content


What's new in Release: 1.4.1.3

top
  1. Improved error reporting
  2. Error numbers are converted to textual descriptions.
    Many thanks to Mr. Skobowsky from DAT and his help on translating English error texts to German.

  3. Improved error handling
  4. If a test block fails, a dialog is shown where you can choose whether retry, continue or abort the test execution.

  5. Smaller changes that I might have lost track of

What's new in Release: 1.4.1.2

top
  1. BUGFIX of the 1.4.1.1 bugfix

What's new in Release: 1.4.1.1

top
  1. BUGFIX for sheet names with uppercase characters
  2. 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
  1. Support for multiple Excel sheets added
  2. 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
        
  3. Simple test statistics added
  4. 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
        
  5. Version numbering corrected in registry
  6. Version 1.4.0 used to print 7.01.00.06 in WR help screen

What's new in Release: 1.4.0

top
  1. New release numbering
  2. 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
  3. History rewritten in HTML-format
  4. This file used to be a plain text file.

    Affected:
        history.txt  --> removed
        history.htm --> inserted
        
  5. WrDoc package documentation added
  6. 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
        
  7. Invocation of non-existing tests can (optionally) raise an error
  8. 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
        
  9. Misha's Perl-like regular expressions (v0.2) included
  10. 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
  1. LINK now allows parameter driver to be left blank
  2. 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
        
  3. Missing wait() added in EMOS_check_win_closed()
  4. 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
  1. Workaround for WinRunner bug in EMOS_win_close_all()
  2. 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
        
  3. Workaround for WinRunner bug with setvar/getvar("timeout"/"timeout_msec")
  4. 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
        
  5. Some reformatting/beautifying in TPL directory
  6. 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
  1. Improves/fixes thealgorithm for loading driver libraries
  2. 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
  1. Fixes a bug introduiced with 7.01.00.01
  2. 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
  1. WrSync integrated into EMOS Framework
  2. 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
  1. New test driver logic introduced
  2. 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:

    1. for every test driver you use create a new compiled module in the same directory with the same name and witt suffix "_lib"
    2. extract the parts of your divers into the four functions (see example in FRM/TPL/Scripts/DRV/drv_lib)
    3. 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
  1. ATR mode added
  2. 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
        
  3. WrLog interface modified
  4. 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
        
  5. Function EMOS_win_close_all() added
  6. 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
    
  7. Function debug_msg2() added
  8. 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
        
  9. WrLog functionallity removed
  10. 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
  1. 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
        
  2. Restart capability integrated into emos_frm_driver
  3. 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
        
  4. Support for multiple testsequence rows added
  5. 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
        
  6. Reporting improved
  7. 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
        
  8. A few bugs removed from the emos_frm_stp_lib (e.g. LINA was not working at all).

    Affected:
        FRM/emos_frm_stp_lib
        
  9. Command LINX added
  10. 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
        
  11. Command EXEC added
  12. 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
        
  13. Wrlog-functionallity is by default deactivated
  14. 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
  1. Function FRM_STP_exec() fixed
  2. Function was using an invalid variable to execute a command which effectively caused nothing to be executed.

    Affected:
        FRM/emos_frm_stp_lib
        
  3. Function EMOS_menu_item() is now capable of selecting the last menu item instead of the whole menu path.
  4. 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
        
  5. 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.
  6. 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