Sua matriz de testes, sem laboratório
Testar aplicativo Android online em modelos de celulares reais
Teste aplicativos Android nos modelos de celular que seus usuários realmente têm: 150+ modelos de 11 marcas, do Android 12 ao 17. Volte a um snapshot limpo antes de cada execução, clone para rodar em paralelo e acesse cada celular por ADB e pela API.
Os celulares que seus usuários têm.
Uma farm de aparelhos Android sem laboratório: dos Galaxy A de entrada aos Pixel deste ano, cada modelo montado a partir da leitura do aparelho real e comparado com ele antes de qualquer pessoa poder iniciá-lo. Não é um emulador: o Android roda nativo em servidores ARM, com o perfil daquele modelo.
Layouts em telas reais
Resolução, densidade e recursos de tela do painel real, para que layouts, capturas e testes visuais batam com o aparelho.
Gráficos de fábrica
Fabricante da GPU e strings do renderizador, versões de OpenGL e Vulkan do chipset real, para o seu app ver o hardware que espera.
Google Play incluído
Google Play Services e Play Store instalados como num celular, para apps que precisam deles para login, pagamento ou atualização.
Um celular limpo a cada execução.
Deixe o celular no estado que seus testes esperam, faça um snapshot e volte a ele antes de cada execução. Quando um celular não basta, clone outros do mesmo snapshot. Restaure um snapshot limpo com uma chamada.
- Restaure antes de cada execuçãoUma chamada leva o celular de volta ao snapshot limpo, e toda execução começa do mesmo estado.
- Clone para rodar em paraleloNovos celulares do mesmo snapshot, cada um com sua identidade, para dividir a suíte entre aparelhos.
- Backups noturnosSnapshots de todos os celulares toda noite, com agenda; celulares parados não custam nada enquanto esperam.
ADB, quando precisar descer mais.
Cada celular tem seu próprio relay ADB. Ele fica desligado até você abrir para os seus IPs por um tempo definido, e recusa o que poderia danificar o aparelho.
- Desligado até você ligarAtive por celular, com uma lista de até 20 IPs ou CIDRs.
- Expira sozinho24 horas por padrão, até 7 dias; sessões ociosas fecham após 30 minutos.
- Código de acesso únicoMostrado uma vez; códigos errados travam o relay. Até 3 sessões por celular, push e pull de até 2 GiB por sessão.
- Serviços perigosos recusadosroot, remount, disable-verity, reverse, reboot, tcpip, usb, jdwp, sideload e restore são sempre recusados. Toda sessão fica registrada.
# 1. open ADB on qa01 for your IP, 24 hours (dashboard or API) curl -X POST https://api.clousd.com/v1/devices/qa01/adb \ -H "Authorization: Bearer $CLOUSD_KEY" \ -H "Content-Type: application/json" \ -d '{"allow_ips":["203.0.113.7"],"ttl_hours":24}' # → connect command and a one-time code, shown once # 2. connect and sign in with the code adb connect $HOST:$PORT adb -s $HOST:$PORT shell clousd-login $CODE # 3. work as usual adb -s $HOST:$PORT install app-debug.apk adb -s $HOST:$PORT shell pm list packages | grep example adb -s $HOST:$PORT logcat -d | tail -n 50
Conecte ao seu CI.
Tudo o que uma execução de testes precisa é uma chamada REST em https://api.clousd.com/v1. Operações longas respondem 202 com uma tarefa para consultar, e uma chave pode ser limitada aos celulares de teste e a leitura ou controle. Veja a API REST e o relay ADB e as rotas para CI.
API=https://api.clousd.com/v1 AUTH="Authorization: Bearer $CLOUSD_KEY" # reset qa01 to its clean snapshot and wait for the job JOB=$(curl -s -X POST -H "$AUTH" \ $API/devices/qa01/snapshots/v20/restore | jq -r .job.id) until [ "$(curl -s -H "$AUTH" $API/jobs/$JOB | jq -r .job.state)" \ != running ]; do sleep 3; done # install this build and open it curl -s -H "$AUTH" -F apk=@app-release.apk $API/devices/qa01/apk curl -s -H "$AUTH" -H "Content-Type: application/json" \ -d '{"op":"open_app","package":"com.example.app"}' \ $API/devices/qa01/action # keep the evidence curl -s -H "$AUTH" $API/devices/qa01/screenshot -o after.png curl -s -H "$AUTH" $API/devices/qa01/logs > logcat.txt
# the same steps on four phones at once, 0–5 s apart curl -X POST https://api.clousd.com/v1/groups -H "$AUTH" \ -H "Content-Type: application/json" -d '{ "phones": ["qa01", "qa02", "qa03", "qa04"], "steps": [ {"op": "open_app", "package": "com.example.app"}, {"op": "wait", "seconds": 3}, {"op": "if_text", "text": "Sign in", "skip": 1}, {"op": "screenshot"} ], "stagger": [0, 5] }' # 202 → progress per phone in job.output
# a key created with a webhook URL receives signed events POST https://ci.example.com/clousd X-Clousd-Signature: 9f2c…e41a {"event": "job.finished", "ts": …, "phone": "qa01", "job": {…}} # events: job.finished · health.problem · health.resolved # signature: HMAC-SHA256 of the body · 3 delivery attempts
Teste seu app em outros países.
Dê ao celular uma saída de rede em outro país, e fuso horário, idioma, teclado, loja e país do chip acompanham. Você vê o app como os usuários de lá. E acompanha a execução ao vivo, sem sair da sua mesa.
O stream baixa a qualidade quando a sua conexão piora e volta a subir quando ela se recupera. O Multi-view mostra várias telas ao mesmo tempo, e o Sync replica seus comandos nos celulares que você escolher.
Dúvidas sobre testes de apps
Ficou alguma dúvida? Escreva para o suporte e uma pessoa responde, normalmente em até um dia útil.
É um emulador?
Não. O Android roda nativo em servidores ARM, com o perfil de um modelo de celular real, então seu app enxerga aquele modelo, e não um aparelho genérico de emulador. Cloud phone x emulador
Tem teste grátis?
Sim. Seu primeiro celular roda 30 minutos grátis, sem cartão e sem recarga. Depois, é cobrança por minuto, sem licença por usuário: $0.004 por minuto enquanto o celular está ligado.
Posso escolher a versão exata do Android?
Sim, por celular. Cada modelo do catálogo mostra as versões que você pode iniciar hoje, do Android 12 ao 17. Android 12–14 têm o preço base; o Android 15 custa 10% a mais, e os Android 16 e 17 custam 25% a mais.
Como volto um celular ao estado limpo entre execuções?
Faça um snapshot uma vez, com o celular limpo, e restaure esse snapshot antes de cada execução. É uma chamada de API que responde 202 com uma tarefa para consultar em /v1/jobs/{id}.
Posso rodar uma suíte em paralelo?
Sim. Clone novos celulares a partir do snapshot limpo, cada um com sua identidade, e divida a suíte entre eles, ou rode os mesmos passos num grupo inteiro com intervalos aleatórios.
O ADB fica aberto para a internet?
Não. O ADB vem desligado. Você abre por celular, para uma lista de até 20 IPs ou CIDRs e por um tempo definido (24 horas por padrão, até 7 dias), entra com um código único, e toda sessão fica registrada.
Posso instalar meu próprio APK?
Sim: envie pelo painel, mande para POST /v1/devices/{id}/apk ou use adb install pelo relay.
Um agente de IA pode rodar os testes?
Sim, em acesso antecipado: o agente olha a tela e os elementos dela e depois toca e digita pelas chamadas observe e act, partindo de um snapshot limpo a cada execução. Veja testes conduzidos por agentes.
Posso testar como meu app se comporta em outro país?
Sim. Dê ao celular uma saída de rede naquele país, e fuso horário, idioma, teclado, loja e país do chip acompanham. Escolha a região mais perto da sua equipe para a tela e o ADB continuarem rápidos.
Coloque seu app num modelo real em um minuto.
- Os primeiros 30 minutos são grátis, sem cartão.
- Escolha um modelo e uma versão do Android.
- Instale seu build e comece a testar.