TIRApiClient
Cliente de testes integrados TIR (TOTVS Integrated Robot). Permite escrever testes automatizados que conectam no AppServer e validam comportamento.
Assinatura: TIRApiClient():new(cBaseUrl) -> oCliente
Retorna: object
TIR (TOTVS Integrated Robot) e o framework oficial de testes integrados do Protheus. TIRApiClient e o componente que executa cenarios de teste contra um AppServer real, simulando inputs e validando outputs.
Sintaxe basica
#include 'tlpp-core.th'
namespace empresa.testes
function TestaInclusaoCliente()
local oTir as object
local lOk as logical
oTir := TIRApiClient():new('http://localhost:8080')
oTir:setCredentials('admin', 'senha')
oTir:openModule('SIGAFAT')
oTir:openRotina('MATA030')
oTir:clickIncluir()
oTir:setField('A1_COD', 'TST001')
oTir:setField('A1_NOME', 'Cliente Teste')
oTir:setField('A1_CGC', '00000000000191')
oTir:clickConfirmar()
lOk := oTir:assertSuccess()
if !lOk
FwLogger():getLogger():error('Falha: ' + oTir:getLastError())
endif
oTir:disconnect()
return lOkModos de uso
- Teste manual: dev escreve script, roda local antes de commitar
- CI/CD pipeline: GitHub Actions / Azure DevOps roda apos build do RPO
- Regression: bateria de testes apos release update
Casos de teste comuns
// 1. Validar regra de negocio
function TesteValidacaoCGC()
local oTir := TIRApiClient():new(URL)
oTir:setField('A1_CGC', '11111111111111') // CGC invalido
oTir:clickConfirmar()
return oTir:assertError('CGC invalido')
endfunction
// 2. Integracao com tabela
function TesteInclusaoCriaSE1()
local oTir := TIRApiClient():new(URL)
oTir:openRotina('MATA460') // faturamento
oTir:fechaPedido('123456')
// Valida que SE1 foi criada
local nQtd := oTir:sqlQuery('SELECT COUNT(*) FROM SE1010 WHERE E1_NUM=\'001234\'')
return nQtd > 0
endfunctionPegadinhas
- Ambiente isolado: testes alteram banco. Use base de homolog dedicada
- Cleanup: cada teste deve limpar o que criou (delete na SA1 apos teste)
- Versao do RPO: tests passam num RPO, podem falhar em outro release. Versione
- Performance: TIR e LENTO (segundos por click). Nao use pra teste unitario — use pra integracao end-to-end
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cBaseUrl | Character | sim | URL do AppServer pra testar |
Exemplos
Teste de cadastro
oTir := TIRApiClient():new(URL)
oTir:setField('A1_COD', cTeste)
oTir:clickConfirmar()