SPONSORS:






User Tag List

Results 1 to 4 of 4

Thread: Extension Kit

  1. #1
    Junior Member
    Join Date
    Dec 1999
    Location
    Allendale, NJ, US
    Posts
    26
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Extension Kit

    Can anyone point me in the direction where I might get detailed information on using the Extension Kit. I plead total ignorance.
    Thanks in advance,
    Bill

  2. #2
    Senior Member
    Join Date
    Sep 1999
    Location
    San Jose,CA,USA
    Posts
    340
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Extension Kit

    John

    I also plead my share of ignorance in this arena. One worry I always had in this area
    was could this potentially lead to application errors in the field.

    Has a hook that had to be placed in the AUT for Segue, ever to your knowlege caused a failure out in the field? Or possibly more to the point "could it"?

    Or has this EK interface been so well structured as to make that nearly impossible?
    I am exceedingly curious as to the answer on this one.

    Smoke me a kipper, I'll be back for breakfast!
    Sincerely
    Richard Weth
    Sr. QA Engineer

  3. #3
    Senior Member
    Join Date
    Jul 1999
    Location
    Burlingame CA 94010
    Posts
    502
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Extension Kit

    Briefly,

    The EK is a library of functions which allow a developer to define a class and methods inside the application's code. The user is allowed to declare this class/methods inside a 4-test file, then call the methods from test scripts. The methods can accept parameters and return any type of value, except pointers.

    You must purchase the EK from Segue. I'm not sure what the current price is. You only need one copy. Once the code is added to the application, any number of users can call the methods.

    The biggest hurdle is not writing the code, any developer can do that fairly easy. The difficulty is in getting development support for the project.

    Hope this helps.

    ------------------
    John W Green
    jwgreen@automationexpertise.com
    http://www.automationexpertise.com

  4. #4
    Senior Member
    Join Date
    Jun 2000
    Location
    Sunyyvale CA USA
    Posts
    422
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Extension Kit

    Hi,

    Please find the reply from Segue support for my question on this topic. I think I can post their reply here.


    The SilkTest Extention Kit (EK) is only available on Win32 platforms.
    The EK is a
    "tool set" consisting of C header files and a library. Its main purpose
    is to serve
    as a way for customers to build added functionality into SilkTest
    specifically for
    their application under test when that application has an unwieldy
    number of GUI
    objects that SilkTest cannot see, penetrate, or otherwise manipulate.
    What unwieldly
    means in this contxt is ultimately up to the customer as to what is too
    much 4Test
    customization to handle custom objects in the application.

    The way the EK works is that the customer uses it to build a an
    extension to the
    application that has a new 4Test component consisting of new classes,
    methods,
    and/or functions. The extension then communicates directly with the
    application and
    the agent, rather than going through the Windows API in order to
    communicate and
    manipulate the application. Normally the SilkTest agent sends its
    queries and action
    requests to the Windows API on Win32 platforms, not directly to the
    application.

    When writing an extension for an application with the EK, you have a
    choice of
    imbedding the agent
    communication inside your application or making an external extension
    that can
    communicate directly
    with your application and with the SilkTest agent. Because use of the EK
    involves
    writing code and
    programming, the language of the extension is important to understand.

    The Extension Kit interface consists of C functions. However, many
    (most)
    applications for which an extension is to be written are in C++. You can
    write
    extension functions in C++ and create C wrapper functions for them.
    However, it
    would be handy to have a C++ class for the EK interface functions.

    The Extension Kit interfaces with 'assist.dll'. Extension writers can
    either link
    'assist.lib' into the AUT (application under test), or dynamically load
    'assist.dll'. If 'assist.lib' is statically linked, then the AUT will
    require
    'assist.dll' to reside on the user's system. In that case, either
    testers must use a
    version of the AUT (the one that links in 'assist.lib') that differs
    from the
    shipped version, or the large 'assist.dll' must be shipped with the AUT.
    Therefore
    it is preferable to dynamically load 'assist.dll'. Dynamically loading
    'assist.dll'
    requires code to be added to the AUT that loads the DLL and creates
    pointers to the
    DLL functions that the extension uses.

    Some Segue customers have created C++ classes that wrap the Extension
    Kit functions.
    They also take care of dynamically loading 'assist.dll' and creating
    pointers to the
    'assist.dll' functions. The class is briefly documented in the SilkTest
    5.0.1
    version of the EK manual: Chapter 4, 'Advanced Topics' -> 'Loading
    libraries at
    runtime' -> 'Loading Libraries - Example 2'.

    The class is implemented as 2 files, 'FWxQapDynDll.cpp' and
    'FWxQapDynDll.h'. The
    original version of the functions can be downloaded from the Segue
    public web site:

    (When you are prompted for a username and password, you should enter the
    first word
    of your company
    name as the username and your customer ID as the password. If you have a
    valid
    maintenance contract
    with Segue, then you will gain access to this portion of the Segue web
    site.)

    However, the original files only allow extension functions to accept
    zero or one
    parameter. For functions requiring more than 5 parameters, customers can
    modify the
    files themselves. It should be obvious how to do this from looking at
    the existing
    prototypes and implementations for 'RegisterClassFun' in the .cpp and .h
    files. You
    just need to follow the templating in these headers. Contact Technical
    Support for
    the files that you can use to see this. The .h file can be used as is.
    The .cpp file
    requires modification, since you must add in references to your
    (application-specific) extension functions. Search for '(TODO)' in the
    .cpp file in
    order to customize it for your extension.

    Note that the first part of 'FWxQapDynDll.h' just imports 'qapwinek.h',
    so you do
    not need to include 'qapwinek.h' in your application code.

    The consulting group has also updated the Stingray grid EK demo
    application and
    files to use the C++ approach to the EK. Contact Segue Technical Support
    for these
    support files.

    Here's an excerp from the 5.0.1 EK manual:
    -----------------------
    Using the C++ Class Extension and Dynamic Loading for SilkTests
    Extension Kit
    1 Add two files to your project:
    QapDynDll.cpp
    QapDynDll.h
    2 Include QapDynDll.h in files referencing the EK facilities
    3 Instantiate an object, probably in the main or startup section of
    your
    application. It may be easiest to make it a class member of an "App"
    object, a
    member pointer in an "App" object or a global pointer created
    on start. For example:
    main.h
    class myApp
    {
    public:
    QAPDynLoadEK* GetQapEK() { return m_pQap; }
    .
    .
    .
    private:
    QAPDynLoadEK *m_pQap;// member pointer to QAP
    QAPDynLoadEK m_Qap;// member object of QAP
    .
    .
    .
    }
    main.cpp
    (if using the member pointer, the following needs to be done)
    m_pQap = new QAPDynLoadEK();

    4 After compiling your application, ensure the Agent is running and
    assist.dll is on your path.
    Note: Its probably easiest to put assist.dll in your \winnt or
    \windows
    or \win95 or \win98 directory.
    5 Start your application and try a test example.

    Notes about using Example 2
    * Many of the definitions in the wapwinek were removed or changes, as
    they
    are not needed or may clash with other definitions.
    * Most of the basic EK and documentation remains roughly valid.
    Differences
    include substituting a '.' for the '_' in functions. For example:
    QAP_RegisterWindowFun() becomes QAP.RegisterWindowFun()
    (assuming QAP is the named identifier).

    Sree

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

vBulletin Optimisation provided by vB Optimise v2.6.0 Beta 4 (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
User Alert System provided by Advanced User Tagging v3.0.9 (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Questions / Answers Form provided by vBAnswers (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
vBNominatevBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Feedback Buttons provided by Advanced Post Thanks / Like (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Username Changing provided by Username Change (Free) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
BetaSoft Inc.
Digital Point modules: Sphinx-based search
All times are GMT -8. The time now is 12:26 AM.

Copyright BetaSoft Inc.