descriptive programming qtp
Neste tutorial, você aprenderá o que é Programação Descritiva em QTP , e Conexão de banco de dados em QTP ou seja, como se conectar a fontes de dados externas, como banco de dados e planilhas MS Excel usando QTP.
A programação descritiva é um mecanismo para criar testes onde você usa a “descrição programática” de objetos em vez de gravá-los.
=> Clique aqui para a série de tutoriais de treinamento QTP
Uma nota rápida sobre esta série de artigos QTP antes de passarmos aos detalhes deste tutorial:
Este é o último tutorial de nossa série de treinamento QTP online. Espero que todos tenham gostado desses tutoriais e tenham começado a aprender com eles.
Envie-nos os seus comentários:
Estou procurando seu feedback não apenas para esta série de tutoriais, mas sobre o site em geral. Por favor Clique aqui para compartilhar seus pensamentos sobre este site. Isso dificilmente levará alguns minutos para ser concluído. Valorizamos seus comentários e sugestões. Deixe-nos saber o que podemos fazer para melhorar sua experiência com SoftwareTestingHelp.com
como usar arquivos .swf
O que você aprenderá:
Programação Descritiva em QTP
A programação descritiva é um mecanismo para criar testes onde você usa a “descrição programática” de objetos em vez de gravá-los.
Usando esta técnica, o QTP pode ser feito para identificar objetos que não estão no repositório.
Existem 2 variações de Programação Descritiva:
- Programação descritiva estática
- Programação descritiva dinâmica
Programação Descritiva Estática
Um método estático é quando você tenta acessar um objeto usando um conjunto de propriedades e valores diretamente em uma instrução VB.
Sintaxe: TestObject (“Nome da propriedade1: = valor da propriedade”, ”nome da propriedade 2: = valor da propriedade”,… .n)
É assim que você o usa:
quais programas podem editar arquivos pdf
Browser(“creationtime:=0”).Page(“title:=Google”).WebButton(“name:=Google Search”)
Programação Descritiva Dinâmica
Isso funciona criando um objeto de descrição. Observe o exemplo a seguir para criar um objeto webButton.
Set Testdesc=description.create Testdesc(“micClass”).value= “webButton”
- micClass refere-se às classes predefinidas em QTP. Os valores que você pode atribuir podem ser webbutton, weblist etc.
- No QTP 10, os valores de micClass diferenciam maiúsculas de minúsculas, mas no QTP 11 em diante não. Se você escrever webbutton no QTP 10, ele falhará. Você terá que escrever webButton. Mas o mesmo botão da web passará no QTP 11.
Você pode extrair todos os objetos de uma determinada classe em uma página usando a seguinte instrução:
Set ObjectList=Browser(“creationtime:=0”).Page(“title:=*”).ChildObjects(Testdesc) Msgbox ObjectList.count
O conjunto de instruções acima extrairá todos os botões de uma página e os armazenará no objeto ObjectList.
A versatilidade de usar programação descritiva é que essas linhas de código funcionarão em qualquer página aberta. Você pode abrir google.com em seu navegador e ele contará quantos botões existem nessa página. Funcionará exatamente da mesma maneira se você tivesse o amazon.com ou qualquer outro site aberto.
Isso ocorre porque temos o nome do título da página definido como *, que é uma expressão regular.
Então você pode ver como podemos escrever código que pode ser usado em mais de uma ocasião, não codificando os valores de propriedade e por criando os objetos em tempo de execução .
Vamos levar nosso exemplo um pouco mais adiante. Digamos que estou tentando imprimir os nomes de todos os botões da web na página, um após o outro.
Se houver 4 botões em uma página, você pode acessar cada um deles da seguinte maneira:
Msgbox ObjectList (0) .GetRoProperty (“nome”) - Imprime o nome do primeiro botão.
Msgbox ObjectList (1) .GetRoProperty (“nome”)
Msgbox ObjectList (2) .GetRoProperty (“nome”)
Msgbox ObjectList (3) .GetRoProperty (“nome”)
Observe que:
- O índice dos objetos filhos começa em 0
- Como o objeto atinge suas propriedades em tempo de execução, usamos o método GetRoProperty para recuperá-las.
Podemos alterar o código acima para funcionar com qualquer número de botões na página usando um ‘For loop’ e repetindo as instruções dentro do ‘bloco For’ até atingir o final da contagem de objetos.
For i=0 to ObjectList.count -1 to Step 1 Msgbox ObjectList (i).GetRoProperty(“name”) Next
Usar um 'loop For' é melhor porque, neste caso, você não precisa saber quantos objetos estão em seu objeto de descrição.
Alguns pontos a serem observados:
- Você precisará de prática para dominar a programação descritiva. Não importa quantos exemplos você olhe e entenda, você precisará de experiência prática para realmente trabalhar com eles.
- Como testador, não se espera que você saiba como os objetos são codificados em seu AUT e para quais valores eles estão configurados. Portanto, use ObjectSpy de tempos em tempos para escolher as propriedades certas para visualizar as propriedades.
- Os resultados do teste indicarão que o objeto de teste foi criado dinamicamente durante a sessão de execução usando uma descrição de programação ou os métodos ChildObject.
Conectando-se a fontes de dados externas comumente usadas de QTP
Haverá muitos casos, enquanto você estiver preparando os testes, em que você terá que se conectar a um banco de dados externo ou a algumas outras fontes de dados. Uma vez conectado, você também terá que mover os dados de e para esses aplicativos para o QTP e vice-versa.
Embora esteja além do escopo destes artigos fornecer um guia completo para trabalhar com interfaces externas, examinaremos alguns que são mais comumente usados.
ferramentas de gerenciamento de casos de teste de código aberto
Conexão de banco de dados em QTP
Para se conectar a um banco de dados, normalmente usamos um objeto de conexão ADO. ADO é o ActiveX Data Objects da Microsoft.
A seguir estão as etapas a serem seguidas:
# 1) Crie um DSN. Consulte o tutorial do ponto de verificação do banco de dados para ver como isso é feito ou crie um no painel de controle.
#dois) Crie um objeto de conexão:
Definir conn = CreateObject (“ADODB.connection”)
# 3) Crie um objeto de conjunto de registros. O objeto do conjunto de registros contém os resultados da consulta que vamos executar.
Definir rs = CreateObject (“ADODB.RecordSet”)
# 4) Abra o objeto de conexão e execute a consulta:
conn.Open “DSN = testDB2; UID = swatiseela; pwd = teste @ 123”
rs.Abra “Select * from abc”, conn
# 5) Todos os resultados da consulta agora podem ser acessados usando o objeto “rs”.
# 6) Por exemplo, se você deseja obter a contagem das linhas retornadas, você pode usar
rs.getrows
# 7) Por exemplo, a tabela tem 2 linhas e 3 colunas (a, b, c), você pode acessar os valores da seguinte forma:
Msgbox rs.fields (0) .a
Msgbox rs.fiels (0) .b
Msgbox rs.fields (0) .c
# 8) Você pode usar uma instrução de loop se houver muitos valores a serem acessados.
# 9) Algumas das funções que o objeto de conjunto de registros pode usar são: rs.move, rs.movenext, rs.getrows, rs.close, rs.open, etc.
Vejamos todo o código de uma vez:
Set conn=CreateObject(“ADODB.connection”) Set rs=CreateObject(“ADODB.RecordSet”) conn.Open “DSN=testDB2;UID=swatiseela;pwd=testing@123” rs.Open “Select * from abc”,conn msgbox rs.getrows Msgbox rs.fields(0).a Msgbox rs.fiels(0).b Msgbox rs.fields(0).c Msgbox rs.fields(1).a Msgbox rs.fiels(1).b Msgbox rs.fields(1).c rs.close conn.close
Conexão com planilhas do MS Excel
Todos nós sabemos que quando abrimos um aplicativo excel, todo o arquivo é uma pasta de trabalho que contém planilhas com colunas e linhas onde colocamos os dados.
A seguir está o código e os comentários para ajudá-lo a entender como isso é feito.
‘Create an excel application object Set excelobj = CreateObject(“Excel.Application”) ‘Set it to visible, otherwise it will be visible in the task manager but you will not be able to view it but it continues to work in the background excelobj.visible = true ‘Opens a workbook at the path speficified. If you need to open a new workbook, use excelobj.workbooks.Add excelobj.workbooks.Open(“C:UsersSwatiDesktopQTP est.xls”) ‘Sets the current sheet as i. the sheet number starts from 1 i=1 Set sheet1 = excelobj.activeworkbook.sheets(i) ‘write to a cell in sheet 1. The cell is row 8 column 4, D8. excelobj.activeworkbook.sheets(1).cells(8,4) = “Test QTP Write to cell” ‘To get the data from sheet2 cell ID C6 testretrurnval = excelobj.activeworkbook.sheets(3).cells(6,3) ‘save changes excelobj.activeworkbook.save ‘close the workbook excelobj.activeworkbook.close ‘Close Excel application excelobj.quit ‘Clear memory Set excelobj = nothing
Além das funções acima, temos as seguintes que podemos usar de acordo com suas necessidades.
- excelobj.activeworkbook.sheets.add - Para adicionar uma nova folha
- excelobj.activeworkbook.sheets (i) .delete - Para excluir uma folha com índice i
- excelobj.activeworkbook.sheeets (i) .name = “Nome de sua escolha” - Para alterar o nome de uma folha com o índice i.
- x = excelobj.activeworkbook.sheets.count - para obter a contagem de quantas planilhas há em uma pasta de trabalho
- excelobj. activeworkbook.saves “CompletePathWithNewName.xls” - para salvar a pasta de trabalho com um novo nome
Isso encerra não apenas este artigo, mas também nossa série de treinamento QTP. No próximo artigo, cobriremos alguns aspectos mais importantes Perguntas da entrevista QTP com respostas . Por favor, deixe-nos saber seus comentários e perguntas.
=> Visite aqui para a série de tutoriais de treinamento QTP
Fique ligado para mais artigos e tutoriais úteis sobre teste de software! Se você não assinou nosso boletim informativo gratuito por e-mail, faça-o agora até clicando aqui .
Leitura recomendada
- Tutoriais QTP - 25+ Tutoriais de treinamento do Micro Focus Quick Test Professional (QTP)
- Parametrização em QTP (Parte 2) - QTP Tutorial # 20
- QTP Tutorial # 18 - Estruturas baseadas em dados e híbridas explicadas com exemplos de QTP
- Parametrização em QTP explicada com exemplos (Parte 1) - QTP Tutorial # 19
- Tutorial QTP nº 6 - Compreendendo as configurações de registro e execução QTP para nosso primeiro teste
- Tutorial de QTP nº 24 - Usando objetos virtuais e cenários de recuperação em testes QTP
- MongoDB Create Database Tutorial
- Teste de banco de dados com JMeter