Forum Discussion

Gordian's avatar
Gordian
Occasional Contributor
13 years ago

Plug-in to add Event Analyzer without ATL

I am interested in adding an Event Analyzer to TestComplete to help "fix" recordings.  We have a number of script extensions which provide robust alternatives to several recorded actions in our product.   Rather than having our testers have to modify the recorded tests in this very predictable manner, I want to have TestComplete write them out correctly (for us) as part of the recording.



It sounds like this can be done using a TestComplete plug-in and supporting the ItcScriptEventAnalyzer.   The plug-in though in the given example with the TestComplete SDK using C++ with an ATL project.



Can this instead be implemented as a C# Class library?   Is there any alternative to C++ / ATL?   There are several TestComplete COM objects if I look to add a COM reference to a C# Class library.   Can anyone tell me:



1) Is it possible to implement a plug-in with C# Class library?

2) What TestComplete COM objects would be needed to get support both for the basic plug-in and the ItcScriptEventAnalyzer?

3) Does the plugin need to be a .pls extension or is .dll fine?



Does anyone have an example of an added Event Analyzer or Script Generator?

1 Reply

  • Gordian's avatar
    Gordian
    Occasional Contributor
    As an example of what I'm looking to do, I want to replace calls such as the one below:



                <Operation Type="{575D0372-CCEB-4D0F-AFE8-D2004F108913}">

                    <Data Description="Clicks the &apos;%n&apos; control." Action="ClickButton" InvokeKind="-1" Initialized="True">

                        <ObjectSyntax LangId="{E42909F2-4390-4F5D-94B8-FABF59BABFCE}" Code="Aliases.browser.pageHttps.objectUxflashapplication.emwizardVmwareStorageWizard.buttonWiznext;" />

                    </Data>

                </Operation>





    with a call to our function:



        <Operation Type="{CAAA7522-FB54-4521-BF2F-29D327FC9341}">

                    <Data Action="wizardNavigation">

                        <Parameters LangId="{E42909F2-4390-4F5D-94B8-FABF59BABFCE}">

                            <Parameter Name="buttonName" DefVarType="12" VarType="8" ValueType="6" ValueValue="Next" />

                            <Parameter Name="timeoutOpt" DefVarType="12" VarType="12" ValueType="0" ValueValue="0" />

                        </Parameters>

                        <ObjectSyntax LangId="{E42909F2-4390-4F5D-94B8-FABF59BABFCE}" Code="AGSVNXePage;" />

                    </Data>

                </Operation>



    ----------------------



    It could be done via external post-processing but it would be ideal for the recording to get it "right" from the onset.