Pesquisar este blog

quarta-feira, 10 de dezembro de 2014

TestLink + Python - Reportando os testes realizados.


Nesse post vamos fazer uma classe genérica para reportar o resultado do teste realizado para o TestLink.

Vamos listar as coisas que devemos fazer primeiro para criar o reporte no testlink.

1. Precisamos criar primeiro os seguinte itens:  Test Project Management Test Plan Management.
  • Como estes dois Itens não mudam todo tempo, recomendo fazer manualmente no inicio do projeto, caso você queira fazer, já digo que a ultima versão do TestLink 1.9.12 esta com um bug quando você tenta fazer várias vezes o Test Plan Management, a tela fica em branco, pode ser problema de memória, mas não perdi muito tempo com isso.
2. Necessário criar o Builds / Releases.
  • Criamos uma função para criar o Build - create_build(self, newBuildID, buildName, buildNotes), passamos como paramêtro ID do build, nome do build, descrição do mesmo.
3.  Pegar o ID do Test Case passando o Nome como parâmetro para a função testCaseIDByName(self, TESTCASE).

4.  Pegar o ID do Test Plan passando o Nome do Test Plan como parâmetro para a função getTestPlanId(self, NEWTESTPLAN).

5. Agora vamos realizar o reporte do teste realizado, passando os dados (id do caso de teste, id do plano de teste, buildname, resultado do teste -> PASSED=p , FAILED=f , BLOCKED=b, descrição do teste realizado) para a função reportTCResult(self, tcid, tpid, buildname, Result, notes).

Exemplo:

"""
Class Testlink to connection with server TestLink
Author: Reinaldo M.R.J
Date: 10-12-2014 - Version: 0.X
"""
import testlink

class class_Testlink(object):

    def __init__(self):

        # Endereço do Servidor xmlrpc
        TESTLINK_SERVER_URL = '.../lib/api/xmlrpc/v1/xmlrpc.php'
        # Chave gerada pelo TestLink
        TESTLINK_DEVKEY = 'bdcc743a0cd80052bf8c28XXXXXXXX'
        tlh = testlink.TestLinkHelper(TESTLINK_SERVER_URL, TESTLINK_DEVKEY)
        self.myTestLink = tlh.connect(testlink.TestlinkAPIClient)
        # Nome do Projeto, caso você tenha vários poderia enviar como parâmetro para classe.
        self.Project = "XXXXXXXX"

    def reportTCResult(self, tcid, tpid, buildname, Result, notes):

        return self.myTestLink.reportTCResult(tcid, tpid, buildname, Result, notes)

    def testCaseIDByName(self, TESTCASE):
            
        response = self.myTestLink.getTestCaseIDByName(TESTCASE, testprojectname=self.Project)
        print response
        response = response[0].get("id")
        return response


    def getTestPlanId(self, NEWTESTPLAN):

        response = self.myTestLink.getTestPlanByName(self.Project, NEWTESTPLAN)
        print "getTestPlanByName", response
        response = response[0].get("id")
        return response


    def create_build(self, newBuildID, buildName, buildNotes):

        newBuild = self.myTestLink.createBuild(newBuildID, buildName, buildNotes)
        isOk = newBuild[0]['message']
        if isOk == "Success!":
            newBuildID = newBuild[0]['id']
            print "New Test Build '%s' - id: %s" % (buildName, newBuildID)
        else:
            print "Error creating the Test Build '%s': %s " % (buildName, isOk)
            return




Nenhum comentário:

Postar um comentário