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!
Solved! Go to Solution.
Hi @kahle,
Could you please check if the Object Snapshots feature works for you? You can find more information here:
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.
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.
Hi @kahle,
Could you please check if the Object Snapshots feature works for you? You can find more information here:
Thank you Wamboo, Tanya!
Hi @kahle , were you able to figure out an approach to solve this? Did any of the suggestions help? Please let us know.
Hey,
The object snapshot really seems like it would work! Is there a way to compare two object snapshots? It seems like the file.compare method only applies to .txt files.
@kahle Glad to hear that you seem to be on the right track.
@Wamboo @cunderw @Marsha_R , do you have any suggestions on comparing object snapshops? Thank you!
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.
Thanks Wamboo!
@kahle It seems like you are all set now Did you give it a go?
Hello,
Really sorry I did not respond to this sooner. So I was able to modfiy and run the example script and perfrom an object comparison!
This is a great starting point.
Thank you very much for the example script!
No problem kahle!
Cheers!
Subject | Author | Latest Post |
---|---|---|