GP/QTP Automation: Conclusion but not closure

Posted by Albert Gareev on Dec 28, 2009 | Categories: Great Plains

GP/QTP Automation: Conclusion but not closure

The main question – whether it’s possible to automate Microsoft Dynamics Great Plains application testing (OS Patch smoke tests, UAT/Regression tests) – was answered positively, and proven in the actual implementation of automated test scenarios.

Tools and Technologies

Standard GUI recognition method (via Windows Handle) used by UI Automation tools was ineffective because Dynamics Dexterity uses it’s own, intended to be platform-independent, GUI Rendering Engine. However, Microsoft provides an additional product, Continuum, that may serve as a gateway between a regular Windows messaging system and Dynamics Dexterity. COM technology should be used in order to connect to Great Plains through Continuum.

 HP/Mercury Quick Test Professional was selected as a mature, enterprise level product, technically capable to recognize and handle Systems.Windows.Forms GUI, and integrate custom Dexterity GUI handling library I developed.

Issues and Workarounds

Two major issues were discovered during investigation and development.

1) VBScript limitation based on its “Variant” data type incompatible with “string pointer” data type through COM calls.

The issue was resolved by using MS Excel as COM Automation object, both as a server (to QTP) and a client (to Dynamics.Dexterity instance).

2) Cross-dictionary scripting issue.

The issue was resolved by using Dexterity Macros to bypass GUI forms defined in third-party dictionaries and thus inaccessible through sanScript.

Service Components Developed

Four Service Components were developed to supplement Test Automation and Automated Testing of MS Dynamics Great Plains application.

1) GUI Capture and Mapping scripts

2) SanScript custom code (see examples)

3) Interface class in MS Excel

4) Dexterity GUI function library for QTP (interaction with the all common Dexterity GUI controls, like Edit Boxes, List/Combo Boxes, Radio Groups, Check Boxes, etc.)

Next Steps

Links to the all information I posted could be found on the Reference Page.

Currently the project’s status is  “successfully implemented and finished” for me but I may keep adding additional code examples or answering questions I receive.

Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
This work by Albert Gareev is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.