GARANTINDO A QUALIDADE DO
SEU SOFTWARE NA NUVEM
CLOUD ENABLEMENT TEST SUITE
FILIPPE SPOLTI
RICARDO MARTINELLI DE OLIVEIRA
TESTES NAS
IMAGENS
SMOKE TESTS
CTF-CLI CE-ARQ
O QUE TESTAR?
FUNCIONALIDADES
CONFIGURAÇÕES
(CUSTOM/DEFAULT VALUES)
COMPORTAMENTO
BUILDS COMPLETAS (S2I)
COMO TESTAR?
DEFINIR O QUE SERÁ TESTADO
NOVA FUNCIONALIDADE?
REGRESSÃO?
CORREÇÃO DE BUGS?
DEFINIR O CENÁRIO DE TESTE
COMO ESCREVER UM
CENÁRIO DE TESTE?
ENGLISH STYLE
GIVEN SOME CONDITION
WHEN CONTAINER IS STARTED WITH ENV
ENVS...
THEN CHECK SOMETHING
COMO ESCREVER UM
CENÁRIO DE TESTE?
ESQUELETO DO CENÁRIO DE TESTE
Feature my cool feature
Scenario test my cool feature - it should print Hello and World on logs
Given/When image is built/container is ready
Then container log should contain Hello
And container logs should contain World
ANOTAÇÕES: @OPENSHIFT, @EAP, ETC...
MAS, E SE NÃO TIVER A
SENTENÇA QUE PRECISO?
FÁCIL CUSTOMIZAÇÃO/ADIÇÃO DE
NOVAS SENTENÇAS
from behave import *
@given('some known state')
def step_impl(context):
set_up(some, state)
Given some known state
and some other known state
when some action is taken
then some outcome is observed
but some other outcome is not observed
http://pythonhosted.org/behave/api.html
DEMO - CTF TESTS
SMOKE TESTS
POR QUE TESTAR?
GARANTIR QUE A IMAGEM GERADA FUNCIONE COMO ESPERADO
GARANTIR QUE A FUNCIONALIDADE X É CORRETAMENTE CONFIGURADA
GARANTIR QUE NOSSOS PRODUTOS DE
MIDDLEWARE FUNCIONEM CORRETAMENTE NA
NUVEM
SMOKE TESTS
POR QUE ARQUILLIAN?
FRAMEWORK DE TESTES USADOS NOS PROJETOS E PRODUTOS JBOSS
ALTAMENTE CUSTOMIZÁVEL ATRAVÉS DE EXTENSÕES
ARQUILLIAN-CUBE
DOCKER/KUBERNETES/OPENSHIFT
CONSTANTE DESENVOLVIMENTO E CORREÇÃO DE BUGS
CLOUD ENABLEMENT - ARQUILLIAN EXTENSION (CE-ARQ)
APPLICATION TEMPLATES
SÃO NECESSÁRIOS PARA OS TESTES
SMOKE TESTS
REQUISITOS
OPENSHIFT 3
CONTAINER DEVELOPMENT KIT (CDK)
MINISHIFT
OC CLUSTER UP
JAVA 8
MAVEN 3
SMOKE TESTS
COMO OS TESTES SÃO REALIZADOS?
TEMPLATE (OPENSHIFT APPLICATION TEMPLATES)
APLICAÇÃO (OPENSHIFT QUICKSTARTS)
CLASSE DE TESTES LOCAL OU REMOTO
@RUNASCLIENT
DEFINIÇÃO DE UM "TESTRUNNER POD" (CONTAINER)
DESCRITOR ARQUILLIAN.XML
SMOKE TESTS
@RunWith(Arquillian.class)
@Template(url = "https://raw.githubusercontent.com/${template.repository:jboss-openshift}/application-
templates/${template.branch:master}/decisionserver/decisionserver63-basic-s2i.json",
parameters = {
@TemplateParameter(name = "KIE_SERVER_USER", value = "${kie.username:kieserver}"),
@TemplateParameter(name = "KIE_SERVER_PASSWORD", value = "${kie.password:Redhat@123}")
}
)
@OpenShiftResources({
@OpenShiftResource("https://raw.githubusercontent.com/${template.repository:jboss-
openshift}/application-templates/${template.branch:master}/secrets/decisionserver-app-secret.json")
})
public class DecisionServerBasicTest extends DecisionServerTestBase {
...
@RunAsClient
public void testDecisionServerCapabilities() throws MalformedURLException {
checkKieServerCapabilities(getRouteURL(), "BRM");
}
}
DEMO - SMOKE TESTS
REFERÊNCIAS
HTTPS://GITHUB.COM/L-D-J/CTF-CLI
HTTP://PYTHONHOSTED.ORG/BEHAVE/
HTTPS://GITHUB.COM/ARQUILLIAN/ARQUILLIAN-CUBE
HTTPS://GITHUB.COM/JBOSS-OPENSHIFT/CE-ARQ
HTTPS://GITHUB.COM/JBOSS-OPENSHIFT/APPLICATION-TEMPLATES
HTTPS://GITHUB.COM/JBOSS-OPENSHIFT/CE-TESTSUITE
HTTPS://GITHUB.COM/JBOSS-OPENSHIFT/OPENSHIFT-QUICKSTARTS
twitter.com/RedHatNews
youtube.com/redhat
facebook.com/redhatinc
OBRIGADO!
plus.google.com/+RedHat
linkedin.com/company/red-hat

Garantindo a qualidade do seu software na nuvem