Forum Discussion

SuperTester's avatar
SuperTester
Contributor
5 years ago

Hierarchy Change Check

Hello!

I'm wondering if there is a tool is or function that would allow test complete to compare the object Hierarchy of a process against a previous build of a process. Or how to make a keyword test that can do that.

Consider this scenario: A new build is made for the desktop application that I am testing. I want to be able to quickly check whether changes were made in the application that could effect the test scripts. Such as a button being moved or the name of a drop-down menu item being changed. Is there a way to check whether the object Hierarchy of a process has changed?

I'm looking at the Process Action Operations and it seems like there should be a way to do this. Maybe get the child count of the process and compare it to child count of the previous build? Maybe compare the dump file of the new build against a dump file of the previous build? Compare screen shots of the object browser?

Any thoughts would be appreciated!

 

 

 

 

 

  • Hello,

     

    You can always use this solution:

     

    function compareObject() {
      var obj = Sys.Process("notepad++");
      var FileName = "C:\\work\\ObjectInfo.txt"; // the path to the file the snapshot is saved to
      var SaveRecursive = true; // properties of the object's child objects are saved as well.
      var SaveAllProperties = true;
      var AdditionalProperties = "The file contains the snapshot of an object that corresponds to notepad++";
      var SaveFields = true;
      var SaveMethods = true;
      
      // Saves the snapshot
      aqObject.SaveObjectSnapshotToFile(obj, FileName, SaveRecursive, SaveAllProperties, AdditionalProperties, SaveFields, SaveMethods);
      let xml = aqFile.OpenTextFile("C:\\work\\ObjectInfo.txt", aqFile.faRead, aqFile.ctANSI);
      let result = aqFile.Compare("C:\\work\\ObjectInfo.txt", "C:\\work\\ObjectInfo2.txt")
    }

    the default object returned from SaveObjectSnapshotToFile its an .xml saved with .txt extension so to be more specific You can always parse this .xml into .json and Log differences in Test Log results.

  • Wamboo's avatar
    Wamboo
    Community Hero

    What comes to my mind is that when you are on an object in an actively used process you can search for all the subordinate elements of the active element and compare them with e.g. those you have entered in the NameMapping repository (or decode the .xml file nameMapping to the object and search for these elements).

    The only question is whether this is a good path for testing.


    Remember that even if you implement such a solution, you will be able to get away with a lot of feedback (and there will be a lot of it)


    Usually, the application is tested in regression tests and new functionalities that need to be added are obtained in test scenarios that we program for example scripts

     

    Consider this thought because you are repairing yourself by writing such a solution and the benefits may be inadequate for the job.