Forum Discussion
OK, on playback (and possibly recording), again it has to do with object recognition. In your NameMapping file, are you utilizing the "Extended Find" option on some of your objects? If so, one thing that is happening is that, when TestComplete goes to identify your object that you want to interact with, it needs to "find" it and the Extended Find does a breadth-first search of the component tree to find your object. The best way to get around this is to map additional "parent" objects in your tree to reduce the amount of searching needed.
Secondly, you say that the majority of the problem happens on opening a new form. TestComplete needs to recognize that the form exists and child objects on the form exist before it can proceed. So, if you click on a button and it opens a new form and you want to do something with that new form, TestComplete needs to first find that form before it can interact with it. There is, in Tools | Current Project Properties | Playback an option called Auto-Wait Timeout. Most of the time, this defaults to 10 seconds. If TC needs to recognize your components before interacting, this wait may come into play. If it's something other than 10 seconds, that's probably where your long delay is.
Finally, under tools | Options | Engines | NameMapping there is an option for "search for visible objects first". Turn that off and see if that increases your performance.
Beyond that... since there are not too many other people reporting the same performance problem, this could be something localized to your environment. Try temporarily disabling virus scanners and such in your test environment, double check your memory and processor levels, etc.
Also, it might help us if you can post pictures of code segments of where the problem is occurring and, perhaps, screenshots of the full Advanced properties listing of the objects in question in your TestComplete object browser.
Ok - I have been through many different scenarios, modifying various combinations of settings that you have suggested. I have the following findings:
- In general, any changes in performance are slightly noticeable, if at all. There is nothing that I have tried yet that has a significant impact.
- I checked and unchecked the "Extended Find" option in the Option->Engines->NameMapping panel, with no effect. There did not seem to be any performance change. I have not tried checking the individual "Extended Find" for any objects under the NameMapping object of the project.
- Towards the end of the day today, I removed all objects from the NameMapping object except the main application. This had little or no effect.
- I can only get the procedure to run to completion when and if the Auto-Wait parameter is set to higher than 10 seconds. I have it set a 100 seconds (100000 millisecs), which is higher than I need. The worst case wait is about 30 seconds.
- Many of the suggestions seem counter-intuitive to me. For example, would not a breadth-first search be faster than a depth-first search if I am manipulating objects at the GUI level? Would not a search for visible objects first be faster when manipulating at the GUI level?
- You mentioned adding "...additional "parent" objects in your tree to reduce the amount of searching needed." I think I understand the idea behind it, but how do I add a parent object to a strategic position in the tree? What type of object is being added and how do I attach the children?
I am working on a network that is isolated from all other networks. Getting things like screenshots for someone to look at is problematic at best. However, I am going through the "Testing Desktop Applications" section of the "Getting Started With TestComplete 12: tutorial from SmartBear. I have tried to step through the example in the tutorial with little or no changes. The one thing that I am doing differently is that I have a .bat file that launches the C# version of the Orders program. Otherwise, I believe I have been consistent in following the tutorial.
I am about to head out for the rest of the week, but will be back early next week to hit this again.
Thank you for your help, Robert.
- clay8 years agoContributor
I think I am finally getting to understand this product a little better. It would appear that it runs faster as it "learns" through name mapping. Once that name mapping structure is defined and saved, things run a lot faster. So the trick is to define the structure up front, which may take more time. However, once defined, subsequent test runs are much faster.
No?
Related Content
- 9 months ago
- 5 years ago
Recent Discussions
- 2 days ago