Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does anyone have any recommendations for speeding up UFT 14.53 on a Windows 10 platform?

I've upgraded a laptop (Windows 10 Enterprise, Version 1803) and 2 VMs (Windows 10 Enterprise, version 1809) with MicroFocus' UFT version 14.53. The previous version of UFT was 14.02.

The performance of script execution is annoyingly slow. Here are some details about the environment:

  • Two AUT were developed using J2EE and Angular JS, respectively
  • A script that took 18 minutes to run on the laptop is now taking 20 minutes
  • The same script is now taking 30 minutes on the VMs
  • The scripts are being run in fast mode from the GUI
  • The windows 10 machines have been set to Best Performance
  • Every time the script starts, the Windows is running low on resources popup appears
  • The browser on which the app is being run is IE11
  • RAM on the laptop is 16GB and 8GB on the VMs

Anybody else experience these pains who can offer any solutions or suggestions? Unfortunately, our support vendor has been no help.

Thank you!

like image 965
BB_AF Avatar asked Jan 01 '23 08:01

BB_AF


1 Answers

1) Depending on what kind of object recognition you perform, there might be noticeable differences depending on how many windows are open on the windows desktop.

It might be that in you Windows 10 sessions, there are more windows open, maybe invisible, that UFT needs to take account when locating top-level test objects.

For example, opening four unneeded (and non-interfering) browser instances and four explorer instances greatly impacts the runtime performance of my scripts. Thus, I make sure that I always start with the same baseline state before running a test.

To verify, you could close everything you don't need, and see if runtime improves.

2) Do you use RegisterUserFunc to call your functions as methods? That API has a big performance hole: depending on how much library code you have (no matter where, and no matter what kind of code), such method calls can take more time than you expect. I've seen scenarios where we had enough code that one call took almost a second (850 milliseconds) on a powerful machine. Fix was to avoid calling the function as a method, which sucks because you have to rearrange all such calls, but as of today, we are still waiting for a fix, after it took us months to proof to MicroFocus that this symptom is indeed real, and really fatal because as you add library code, performance degrades further and further, in very tiny steps. (No Windows 10 dependency here, though.)

3) Disable smart identification. It might playback fine, but it might need quite some time to find out which "smart" identification variant works. If your scripts fail without smart id, you should fix them anyways because your scripts never should rely on smart identification.

4) Disable the new XPath feature where UFT builds an XPath automatically, and re-uses this XPath silently to speed up detection. It completely messes up object identification in certain cases, with the script detecting the wrong control, or taking a lot of time to detect controls.

5) Try hiding the UFT instance. This has been a performance booster for years, and I think it still is, see QTP datatable operations *extremely* slow (much better under MMDRV batch executor)? for info on this, and more.

6) Certain operations do take a lot of time, unexpectedly. For example, Why does setting a USER environment variable take 12 seconds? completely surprised me.

like image 166
TheBlastOne Avatar answered Apr 17 '23 12:04

TheBlastOne