Automating HP Quality Center with Python or Java

前端 未结 6 847
既然无缘
既然无缘 2021-02-03 13:59

We have a project that uses HP Quality Center and one of the regular issues we face is people not updating comments on the defect.

So I was thinkingif we could come up w

6条回答
  •  野的像风
    2021-02-03 14:45

    Information for others who may view this thread.

    To start all this You will need install pywin32, like from here http://sourceforge.net/projects/pywin32/files/pywin32/Build216/

    First of all You will need to import pywin32

    '''@author: www.qcintegration.com  @mailto:contact@qcintegration.com'''
    import pywintypes
    import win32com.client as w32c
    from win32com.client import gencache, DispatchWithEvents, constants
    

    Then as second operation I include here action on login to server

    def connect_server(qc, server):
            '''Connect to QC server
            input = str(http adress)
            output = bool(connected) TRUE/FALSE  '''
            try:
                qc.InitConnectionEx(server); 
            except:
                text = "Unable connect to Quality Center database: '%s'"%(server); 
            return qc.Connected;
    
    def connect_login(qc, username, password):
        '''Login to QC server
        input = str(UserName), str(Password)
        output = bool(Logged) TRUE/FALSE  '''
        try:
            qc.Login(username, password);
        except pywintypes.com_error, err:
            text = unicode(err[2][2]);
        return qc.LoggedIn;
    
    def connect_project(qc, domainname, projectname):
        '''Connect to Project in QC server
        input = str(DomainName), str(ProjectName)
        output = bool(ProjectConnected) TRUE/FALSE  '''
    
        try:
            qc.Connect(domainname, projectname)
        except pywintypes.com_error, err:
            text = "Repository of project '%s' in domain '%s' doesn't exist or is not accessible. Please contact your Site Administrator"%(projectname, domainname); 
        return qc.ProjectConnected;
    

    Second of all method which will include OTAapi dll file

    def qc_instance():
            '''Create QualityServer instance under variable qc
            input = None
            output = bool(True/False)'''
            qc= None;
            try:
                qc = w32c.Dispatch("TDApiole80.TDConnection");
                text = "DLL QualityCenter file correctly Dispatched"
                return True, qc;
            except:
                return False, qc;
    

    Then main method to connect to QCserver

    def qcConnect(server, username, password, domainname, projectname):
        print("Getting QC running files");
    
        status, qc = qc_instance();
        if status:
            print("Connecting to QC server");
            if connect_server(qc, server):
                ##connected to server
                print("Checking username and password");
                if connect_login(qc, username, password):
                    print("Connecting to QC domain and project");
                    if connect_project(qc, domainname, projectname):
                        text = "Connected"
                        connected = True;
                        return connected, text;
                    else:
                        text = "Not connected to Project in QC server.\nPlease, correct DomainName and/or ProjectName";
                        connected = False;
                        return connected, text;
                else:
                    text = "Not logged to QC server.\nPlease, correct UserName and/or Password";
                    connected = False;
                    return connected, text;
            else:
                text = "Not connected to QC server.\nPlease, correct server http address"; 
                connected = False;
                return connected, text;
        else:
            connected = False;
            text = "Unable to find QualityCenter installation files.\nPlease connect first to QualityCenter by web page to install needed files" 
            return connected, text;
    

    And at the end how to execute all of those methods in one place with example of use

    if __name__ == "__main__":
        server= r"http://qualitycenterServer:8080/qcbin"
        username= "alex_qc"
        password= ""
        domainname= "DEFAULT"
        projectname= "QualityCenter_Demo" 
    
        connection_status, text  = qcConnect(server, username, password, domainname, projectname);
        print "connection_status:", connection_status
    

    In case of any more question mailto: contact@qcintegration.com or directly to web side: http://www.qcintegration.com

提交回复
热议问题