Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Accelerazione dei test basati su Appium in Device Farm grazie alle funzionalità desiderate
Quando usi Appium, potresti scoprire che la suite di test in modalità standard è molto lenta. Questo perché Device Farm applica le impostazioni predefinite e non fa ipotesi su come si desidera utilizzare l'ambiente Appium. Sebbene queste impostazioni predefinite siano basate sulle migliori pratiche del settore, potrebbero non essere applicabili alla vostra situazione. Per ottimizzare i parametri del server Appium, puoi regolare le funzionalità Appium predefinite nelle specifiche del test. Ad esempio, quanto segue imposta la usePrebuildWDA
funzionalità true
in una suite di test iOS per accelerare l'ora di avvio iniziale:
phases: pre_test: - # ... Start up Appium - >- appium --log-timestamp --default-capabilities "{\"usePrebuiltWDA\": true, \"derivedDataPath\":\"$DEVICEFARM_WDA_DERIVED_DATA_PATH\", \"deviceName\": \"$DEVICEFARM_DEVICE_NAME\", \"platformName\":\"$DEVICEFARM_DEVICE_PLATFORM_NAME\", \"app\":\"$DEVICEFARM_APP_PATH\", \"automationName\":\"XCUITest\", \"udid\":\"$DEVICEFARM_DEVICE_UDID_FOR_APPIUM\", \"platformVersion\":\"$DEVICEFARM_DEVICE_OS_VERSION\"}" >> $DEVICEFARM_LOG_DIR/appiumlog.txt 2>&1 &
Le funzionalità di Appium devono essere una struttura tra virgolette e derivata da shell escape. JSON
Le seguenti funzionalità di Appium sono fonti comuni di miglioramento delle prestazioni:
noReset
efullReset
-
Queste due funzionalità, che si escludono a vicenda, descrivono il comportamento di Appium al termine di ogni sessione. Quando
noReset
è impostato sutrue
, il server Appium non rimuove i dati dall'applicazione al termine di una sessione Appium, in effetti non esegue alcuna pulizia.fullReset
disinstalla e cancella tutti i dati dell'applicazione dal dispositivo dopo la chiusura della sessione. Per ulteriori informazioni, consulta Reset Strategiesnella documentazione di Appium. ignoreUnimportantViews
(Solo Android)-
Indica ad Appium di comprimere la gerarchia dell'interfaccia utente Android solo nelle viste pertinenti per il test, velocizzando la ricerca di determinati elementi. Tuttavia, ciò può interrompere alcune suite di test XPath basate su di esse perché la gerarchia del layout dell'interfaccia utente è stata modificata.
skipUnlock
(Solo Android)-
Informa Appium che al momento non è impostato alcun PIN codice, il che velocizza i test dopo un evento di screen off o un altro evento di blocco.
webDriverAgentUrl
(solo iOS)-
Indica ad Appium di presumere che una dipendenza iOS essenziale sia già in esecuzione e disponibile per accettare HTTP richieste al momento specificato.
webDriverAgent
URL SewebDriverAgent
non è già attivo e funzionante, Appium può impiegare del tempo all'inizio di una suite di test per avviare la.webDriverAgent
Se lo avviiwebDriverAgent
da solo e lo faihttp://localhost:8100
quando avvii Appium, puoi avviare la tua suite di test più velocemente.webDriverAgentUrl
Nota che questa funzionalità non dovrebbe mai essere utilizzata insieme allauseNewWDA
funzionalità.È possibile utilizzare il codice seguente per iniziare
webDriverAgent
dal file delle specifiche di test sulla porta locale del dispositivo8100
, quindi inoltrarlo alla porta locale dell'host di test8100
(ciò consentewebDriverAgentUrl
di impostare il valore suhttp://localhost:8100
). Questo codice deve essere eseguito durante la fase di installazione dopo aver definito qualsiasi codice per la configurazione di Appium e delle variabili diwebDriverAgent
ambiente:# Start WebDriverAgent and iProxy - >- xcodebuild test-without-building -project /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -derivedDataPath $DEVICEFARM_WDA_DERIVED_DATA_PATH -destination id=$DEVICEFARM_DEVICE_UDID_FOR_APPIUM IPHONEOS_DEPLOYMENT_TARGET=$DEVICEFARM_DEVICE_OS_VERSION GCC_TREAT_WARNINGS_AS_ERRORS=0 COMPILER_INDEX_STORE_ENABLE=NO >> $DEVICEFARM_LOG_DIR/webdriveragent_log.txt 2>&1 & iproxy 8100 8100 >> $DEVICEFARM_LOG_DIR/iproxy_log.txt 2>&1 &
Quindi, puoi aggiungere il seguente codice al file delle specifiche di test per assicurarti che
webDriverAgent
sia avviato correttamente. Questo codice dovrebbe essere eseguito alla fine della fase di pre-test dopo aver verificato che Appium sia stato avviato correttamente:# Wait for WebDriverAgent to start - >- start_wda_timeout=0; while [ true ]; do if [ $start_wda_timeout -gt 60 ]; then echo "WebDriverAgent server never started in 60 seconds."; exit 1; fi; grep -i "ServerURLHere" $DEVICEFARM_LOG_DIR/webdriveragent_log.txt >> /dev/null 2>&1; if [ $? -eq 0 ]; then echo "WebDriverAgent REST http interface listener started"; break; else echo "Waiting for WebDriverAgent server to start. Sleeping for 1 seconds"; sleep 1; start_wda_timeout=$((start_wda_timeout+1)); fi; done;
Per ulteriori informazioni sulle funzionalità supportate da Appium, consulta Appium Desired Capabilities nella documentazione di Appium
Per ulteriori modi per estendere la suite di test e ottimizzare i test, consulta. Estensione degli ambienti di test personalizzati in Device Farm