Creazione Dinamica TestSet con VAPI-XP Test

 

Requisito Utente

 

Richiesta di Creazione Automatica di un TestSet contenente i test "Falliti" o "Not Completed" di una strategia (di test automatici) dopo l'esecuzione completa della stessa.

 

Soluzione Proposta

 

Inserimento di un test automatico di tipo VAPI-XP, in coda alla strategia, che controlla gli stati di tutti i test. Se presente un test in stato "Failed" o "Not Completed" allora verrà creata una strategia sotto la cartella Unattached con i casi di test negli stati sopraindicati.


 

_______________________________________________________________________

 

Implementazione sul Prodotto

 

Lo scenario, in questo esempio, prevede la creazione di un caso di test automatico di tipo VAPI-XP da inserire all'interno di una strategia di test automatici (QTP).

Questo caso di test si avvierà sul client di Quality Center e analizzerà tutti i casi di test precedenti, gli stati di esecuzione e se incontra almeno un Failed o Not Completed verrà creata la strategia con i soli casi di test Failed e Not Completed collegati tra loro in maniera sequenziale.

 

La creazione del test VAPI-XP viene effettuata in TestPlan scegliendo la tipologia VAPI-XP. Utilizzeremo il linguaggio vbs a noi più consono. Questi i passi:

 

1. In fase di creazione del test scegliere VAPI-XP come Tipo

2. Viene visualizzata la seguente mappa:

  

 

 

 

3. Lasciando le informazioni impostate come da default (Linguaggio e Script Name) selezionare Next. Comparirà la seguente mappa:

 

 

 

4. Lasciando selezionato il primo radiobutton, "COM/DCOM Server Test", andare avanti selezionando Next.

 

Il Wizard per la creazione del Test passa alla mappa successiva:

 

 

5. E' possibile inserire altre Classi COM ma in questo esempio ci limitiamo ad andare avanti selezionando il tasto "Next":

 

 

 

Selezionare il tasto Finish per concluedere e arrivare così ad aver censito il caso di test di tipo VAPI-XP che, per il momento, non fa ancora nulla.

 

Il Caso di Test appena creato contiene  script vbs che possiamo vedere accedendo alla tab "Test Script":

 

 

Analizziamo cosa è stato creato. Sono stati inseriti automaticamente dei commenti che contengono:

 

  • Informazioni generali quali, Nome e Tipo di Script, Data e Ora di Creazione
  • In "Main Test Function" vengono spiegati cosa servono gli oggetti e come utilizzarli. A parte "Debug", che è una variabile Booleana, sono già disponibili direttamente degli oggetti che non dobbiamo creare quali:
    CurrentTestSet: è l'oggetto che rappresenta il TestSet del quale il VAPI-XP fa parte
    CurrentTSTest: l'oggetto che rappresenta l'istanza del VAPI-XP Test
    CurrentRun: l'oggetto che rappresenta l'esecuzione corrente
  • Nel Main è indicato dove inserire il PROPRIO codice cioè sotto la dicitura TODO.

 

Vediamo adesso cosa inserire per verificare tutte le esecuzioni delle Istanze che compongono il TestSet eccetto se stessa.

  1. Devo recuperare la Lista delle istanze (ListaTS) del TestSet
  2. Creare ciclo che va da 1 alla ListaTS.Count - 1 per verificare lo stato di ogni singola istanza. 
  3. Se lo stato è "Failed" o "Not Completed" controllo se è già stato creato il TestSet sotto Unattached, in caso contrario creo l'oggetto TestSet.
  4. Inserisco il caso di Test all'interno del TestSet appena creato.
  5. Supponendo di eseguire i test sullo stesso Host, vado a recuperare l'informazione da una delle istanze contenute nel CurrentTestSet e la salvo in una variabile
  6. Copio la modalità di Notifica sul TestSet appena creato
  7. Creo le Dipendenze tra i test della nuova Strategia

 

 

 

Quindi sotto la parte TODO inserirò il codice che indico per punti:

 

'1. Recupero Lista Istanze (ListaTS)

Dim MyTempTestSet, ListaTS, i, isCreationNeed

 

'variabile che indica se deve essere creato o meno il TestSet temporaneo

isCreationNeed = False

 

set ListaTS = CurrentTestSet.TSTestFactory.NewList("")

 

'2. Ciclo per tutte le istanze eccetto questa

for i = 1 to ListaTS.Count - 1

   

     '3. Controllo stato esecuzione istanza. Se "Failed" o "Not Completed" controllo se è già stato creato il TestSet sotto Unattached. In caso contrario lo creo

     if (ListaTS.Item(i).Status = "Failed" Or _

         ListaTS.Item(i).Status = "Not Completed") then

        

         if Not(isCreationNeed) then

            set MyTempTestSet = TDConnection.TestSetFactory.AddItem("TemporaryTestSet_" & split(Date,"/")(2) & split(Date,"/")(1) & split(Date,"/")(0))

            'viene creato un testset sotto Unattached che la cui nomenclatura è:

            'TemporaryTestSet_AAAAMMGG

            isCreationNeed = True

         end if

 

         '4. inserisco il caso di test in errore tramite la proprietà TestID

          MyTempTestSet.TSTestFactory.AddItem(ListaTS.Item(i).TestID)

 

     end if

 

next

 

'i punti 5, 6 e 7 devono essere effettuati solo se isCreationNeed è True 

 

if isCreationNeed then

 

   '5. Copio l'info dell'Host dai test failed ai test inseriti nel testset temporaneo   

 

    'Creazione Lista Istanze del Temporary TestSet

    set TempListTS = MyTempTestSet.TSTestFactory.NewList("")

 

    'ciclo per ogni istanza di test del Temporary TestSet

    for each tsts in TempListTS

 

       'ciclo per ogni istanza del CurrentTestSet

       for each elem in ListTS

 

            if elem.TestId = tsts.TestID then
               tsts.field("TC_HOST_NAME") = elem.field("TC_HOST_NAME")
               tsts.Post
               tsts.Refresh
               exit for    'esco dal for perché non mi interessa guardare tutte le altre
            end if

 

        next

 

    next

  

    '6. Recupero le info per le Notifiche

    MyTempTestSet.Field("CY_MAIL_SETTINGS") = CurrentTestSet.Field("CY_MAIL_SETTINGS")

 

    '7. Creazione Dipendenze tra i test nell'ordine in cui sono stati inseriti

    Dim v_CY_Desc, QuerySEQ, MyComm, RecSet

    v_CY_Desc = ""

     

       'Ciclo per tutte le istanze della Temporanea eccetto l'ultima

       for i=1 to TempListTS.Count - 1

 

           'caricamento del Source

           Set SourceTest = MyTempTestSet.TSTestFactory.Item(TempListTS.Item(i).ID)
           Set TargetTest = MyTempTestSet.TSTestFactory.Item(TempListTS.Item(i+1).ID)

           'Settaggio valore del campo CY_DESCRIPTION

           v_CY_Desc = v_CY_Desc & "{" & vbNewLine & _
                       "CN_COND_ID:" & i-1 & "," & vbNewLine & _
                       "CN_TYPE:1"  & "," & vbNewLine & _
                       "CN_VALUE:1" & "," & vbNewLine & _
                       "CN_TARGET:" & TargetTest.ID & "," & vbNewLine & _
                       "CN_SOURCE:" & SourceTest.ID & "," & vbNewLine & _
                       "CN_DESCRIPTION:" & vbNewLine & _
                       "}" & vbNewLine

 

           Set SourceTest = Nothing

           Set TargetTest = Nothing

 

       next

    

    'Imposto la query di Update

    QuerySEQ = "UPDATE CYCLE SET CY_DESCRIPTION = '" & v_CY_Desc & "' WHERE CY_CYCLE_ID = " & MyTempTestSet.ID & " ;"

 

     'Creazione oggetto Command
     Set MyComm=TDConnection.Command

     'Caricamento query nel Command Object
     MyComm.CommandText = QuerySEQ

 

     'Esecuzione Query
     Set RecSet = MyComm.Execute

 

     'Distruzione oggetti RecordSet e Command 

     Set RecSet = Nothing

     Set MyComm = Nothing

 

     'Eseguo Post e Refresh per l'oggetto TemporaryTestSet

     MyTempTestSet.Post

     MyTempTestSet.Refresh

  

     'Distruzione oggetto Temporary TestSet 

     set MyTempTestSet = Nothing

end if

 

 

 

Finalmente la creazione del VAPI-XP è stata effettuata. L'unica cosa da fare è inserirlo all'interno della strategia che si vuole analizzare come ultimo caso di test.

 

Pag: <<    <    >    >>