Perfecto com XCUITest
Teste seu aplicativo iOS para problemas de acessibilidade em dispositivos do Perfecto.
Execute seus testes de interface de usuário no Perfecto para obter uma compreensão abrangente da saúde de acessibilidade do seu aplicativo em diversos dispositivos.
Requisitos:
- Perfecto Enterprise Private Cloud
Pré-requisitos
- Seus testes de interface de usuário estão integrados com o axe DevTools Mobile para iOS. Confira nosso guia de introdução se necessário.
- Prepare seu aplicativo para distribuição. Como você estará testando no Perfecto com dispositivos reais, ter o aplicativo e os alvos de teste de interface de usuário provisionados resulta em um processo mais suave.
- Instale o Gradle.
Projeto de Exemplo
Procurando um exemplo? Nosso Projeto iOS de Amostra tem uma integração pronta para teste.
-
Verifique se você possui os pré-requisitos.
-
Baixe o projeto de amostra do Github
-
Abra o arquivo do projeto Xcode para adicionar sua equipe de desenvolvimento aos alvos do aplicativo e UITest para provisionamento
-
Adicione sua chave de API do axe DevTools para Mobile para
Login.swift -
Ajuste os valores nos locais a seguir para corresponder à sua nuvem Perfecto:
perfecto.sh
CLOUDNAME="<<perfecto-cloud-name>>"configFile.json- Revise os valorescloudURL,securityToken, edeviceName:
{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", ... "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], ... } -
Abra uma janela do Terminal, digite
cd, e então arraste e solte oaxe-devtools-ios-sample-appdo Finder na janela do Terminal. Tecle return/enter. -
Na mesma janela, digite
sh perfecto.sh. Tecle return/enter.
Há três arquivos no projeto de amostra usados para a integração com Perfecto: perfecto.sh, configFile.json, e build.gradle.
Adicione Perfecto ao Seu Teste XCUI
Configuração
Nota: Todos os três arquivos devem estar na raiz do seu projeto.
-
Crie um script shell para orquestrar a execução de testes na plataforma do Perfecto. Certifique-se de ajustar os valores para
APP_LOCATION,APP_NAMEeCLOUDNAMEpara corresponder à sua aplicação e nuvem Perfecto.APP_LOCATION="DerivedData/Build/Products/Debug-iphoneos" APP_NAME="axe-devtools-ios-sample-app" CLOUDNAME="<<perfecto-cloud-name>>" TOKEN="<<security-token>>" JOBNUMBER="<<job-number>>" rm -rf *.app # Prepare app files gradle buildForRealDevice mv $APP_LOCATION/$APP_NAME.app . mv $APP_LOCATION/"$APP_NAME"UITests-Runner.app . # Run on Perfecto cloud gradle perfecto-xctest -PconfigFileLocation=configFile.json -PcloudURL=$CLOUDNAME.perfectomobile.com -PsecurityToken=$TOKEN -PjobNumber=$JOBNUMBER --stacktrace --debug rm -rf DerivedData -
Adicione seu arquivo Gradle,
build.gradle. Certifique-se de atualizar a última seção para corresponder aos valores da sua aplicação.// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { def flatDirPath = project.hasProperty('flatDirPath') ? project.getProperty('flatDirPath') : '' if(flatDirPath != '') { flatDir { dirs flatDirPath } } else { maven { url "https://repo1.perfectomobile.com/public/repositories/maven/" } } } dependencies { classpath "com.perfectomobile.instrumentedtest.gradleplugin:plugin:+" } } apply plugin: 'com.perfectomobile.instrumentedtest.gradleplugin' perfectoGradleSettings { configFileLocation "configFile.json" } tasks.register('cleanPreviousBuild', Exec) { workingDir projectDir commandLine "bash", "-c", "rm -fr *.xctestproducts dd" } tasks.register('buildForRealDevice') { dependsOn cleanPreviousBuild doLast { exec { commandLine "bash", "-c", "xcodebuild build-for-testing " + " -destination generic/platform='iOS' " + " -configuration Debug" + " -scheme axe-devtools-ios-sample-app" + " -target axe-devtools-ios-sample-appUITests" + " -sdk iphoneos" + " -derivedDataPath DerivedData/ -quiet -allowProvisioningUpdates" } } } -
Adicione a configuração JSON do Perfecto e revise os valores
cloudURL,securityToken,appPath,testAppPathedeviceNamepara corresponder à sua autenticação Perfecto, aplicação e UUID de dispositivo real disponível.O acima
build.gradleestá procurando por um arquivo de configuração chamadoconfigFile.json- certifique-se de atualizá-lo se você usar um nome diferente.{ "cloudURL": "<<perfecto-cloud-name>>", "securityToken": "<<security-token>>", "appPath": "axe-devtools-ios-sample-app.app", "testAppPath": "axe-devtools-ios-sample-appUITests-Runner.app", "devices": [ { "deviceName": "00005302-BF389EDED8B22DBD" } ], "tags": [ "xcuitest", "sample" ], "projectName": "Axe-XCUITest", "projectVersion": "v1-test", "jobName": "AXE-XCUITEST-LATEST", "jobNumber": 1, "branch": "master", "failBuildOnFailure": false, "installationDetails": { "preCleanUp": true, "resign": true }, "postExecution": { "uninstall": false }, "acquireDeviceRetryNumber": 1, "acquireDeviceRetryInterval": 200, "debug": true, "runUnitTests": true, "runUiTests": true, "shard": false, "takeScreenshotOnTestEnd": true, "testTimeout": "60000" }
Executar
Uma vez que seu projeto esteja configurado, execute o script shell para realizar um teste na sua nuvem Perfecto.
Verifique localmente:
- Abra seu projeto no Terminal.
- Digite
sh perfecto.she pressione enter. - Abra a Análise de Teste da sua Nuvem Perfecto para verificar seu último relatório.
