Question

I am trying to making soapUI and ALM communicate. I finally got scriptom setup correctly and even got the HP OTA ALM Reference. However i have a few queries...

  1. The Reference says

You must download and register the COM library on every workstation that will communicate with the ALM Platform

Is it not possible for me to just add the OTAClient.dll to the java.library.path or somewhere else and make it work. I ask this because when the script is complete not all the users of the script will not have admin privileges to register the dll. Although they will definitely have the dll because it is downloaded as soon as someone open ALM on their machine.

Its been a few years since i have had the need to create a program to access QC or ALM through a program but previously i would just create a ActiveXObject(using vbs) and go from there no need to register or anything.

  1. For whatever reason, my below code is not working, any suggestion to fix it?

Code:

import org.codehaus.groovy.scriptom.*;
def tdc = new ActiveXObject('TDApiOle80.TDConnection')

Error:

org.codehaus.groovy.scriptom.ActiveXObject$CreationException: Could not create ActiveX object: 'TDApiOle80.TDConnection'; Can't co-create object error at line: 3

---Update-- Since posting this question i tried to register the dll as mentioned in the API reference doc but still get the same error as earlier so i have two more questions :D

Steps to register the dlls as per ALM's API reference chm doc

To use the Open Test Architecture API as a stand-alone tool, develop your own applications in a development environment that supports COM. You must download and register the COM library on every workstation that will communicate with the ALM Platform. You must have a reference to the library in your application development project.

The library, OTAClient.dll, is automatically downloaded to your workstation the first time you run ALM. 

Register the library for the server by running Client Side Connectivity from the ALM Add-ins page. Select Add-ins from the Help menu. On the Add-ins page, select Client Side Connectivity, and click Download Add-in. You may need to repeat the registation if you use a different version of ALM or Quality Center 9.2 or later.

Further questions... 1. how can i check that the dlls were actually registered and that too the 64bit versions not the 32 bit versions? 2. Would it just be easier to use the Rest API exposed by ALM to do what i want to do? I would like the code to be able to work with ALM and QC9.0.

Was it helpful?

Solution

  1. Error loading the ALM/QC COM API: the OTAClient.dll is a 32 bit only DLL. So, you need to make sure that your application is a 32 bits application. For Java, this will mean that you need a 32 bits JRE or JDK.
  2. ALM COM API vs REST API: as you need your solution to work with QC 9.0 and ALM 11 and later, then the OTA / COM API is your best solution. The REST API in ALM 11 is more portable and allows you to Create, Read, Update, Delete ALM objects (requirements, tests, test results, defects), but is available in ALM 11 and later.

Hope this helps!

OTHER TIPS

As of HP ALM 11. OTAClient.dll is no longer registered by default. To register it, you need user to do so from plugins page. It can be accessed from link on /qcbin/. If I remember correctly it's called common or shared deployment and it requires admin rights.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top