- Risorsa: TestMatrix
- Informazioni sul cliente
- ClientInfoDetail
- Specifica del test
- Configurazione di prova
- DispositivoFile
- ObbFile
- File di riferimento
- File normale
- Apk
- Account
- GoogleAuto
- Variabile d'ambiente
- SystraceSetup
- IosTestSetup
- IosDeviceFile
- AndroidStrumentazioneTest
- AppBundle
- Opzione orchestratore
- ShardingOpzione
- UniformSharding
- Sharding manuale
- TestTargetsForShard
- SmartSharding
- AndroidRoboTest
- RoboDirective
- RoboActionType
- RoboMode
- RoboStartingIntent
- LauncherActivityIntent
- StartActivityIntent
- AndroidTestLoop
- IosXcTest
- IosTestLoop
- MatriceAmbiente
- AndroidMatrix
- AndroidDeviceList
- Dispositivo Android
- IosDeviceList
- IosDevice
- Esecuzione del test
- Coccio
- Ambiente
- StatoTest
- StrumentoRisultatiPassaggio
- Dettagli del test
- RisultatoArchiviazione
- GoogleCloudStorage
- Storia dei risultati degli strumenti
- Esecuzione dei risultati dello strumento
- Dettagli matrice non validi
- Riepilogo dei risultati
- Metodi
Risorsa: TestMatrix
TestMatrix cattura tutti i dettagli su un test. Contiene la configurazione dell'ambiente, le specifiche dei test, le esecuzioni dei test, lo stato generale e i risultati.
Rappresentazione JSON |
---|
{ "testMatrixId": string, "projectId": string, "clientInfo": { object ( |
Campi | |
---|---|
testMatrixId | Solo uscita. ID univoco impostato dal servizio. |
projectId | Il progetto cloud che possiede la matrice di test. |
clientInfo | Informazioni sul client che ha invocato il test. |
testSpecification | Necessario. Come eseguire il test. |
environmentMatrix | Necessario. I dispositivi su cui vengono eseguiti i test. |
testExecutions[] | Solo uscita. L'elenco delle esecuzioni di test che il servizio crea per questa matrice. |
resultStorage | Necessario. Dove sono scritti i risultati della matrice. |
state | Solo uscita. Indica lo stato di avanzamento attuale della matrice di test. |
timestamp | Solo uscita. L'ora in cui questa matrice di test è stata inizialmente creata. Un timestamp in formato RFC3339 UTC "Zulu", con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: |
invalidMatrixDetails | Solo uscita. Descrive il motivo per cui la matrice è considerata non valida. Utile solo per matrici nello stato INVALID. |
flakyTestAttempts | Il numero di volte in cui una TestExecution deve essere ritentata se uno o più test case falliscono per qualsiasi motivo. Il numero massimo di repliche consentite è 10. L'impostazione predefinita è 0, il che implica nessuna ripetizione. |
outcomeSummary | Solo uscita. Il risultato complessivo del test. Impostato solo quando lo stato della matrice di test è FINITO. |
failFast | Se vero, verrà effettuato al massimo un solo tentativo per eseguire ciascuna esecuzione/frammento nella matrice. I tentativi di test instabili non vengono influenzati. Normalmente vengono effettuati 2 o più tentativi se viene rilevato un potenziale problema infrastrutturale. Questa funzionalità è destinata ai carichi di lavoro sensibili alla latenza. L'incidenza degli errori di esecuzione può essere significativamente maggiore per le matrici fail-fast e il supporto è più limitato a causa di tale aspettativa. |
Informazioni sul cliente
Informazioni sul client che ha invocato il test.
Rappresentazione JSON |
---|
{
"name": string,
"clientInfoDetails": [
{
object ( |
Campi | |
---|---|
name | Necessario. Nome del cliente, ad esempio gcloud. |
clientInfoDetails[] | L'elenco delle informazioni dettagliate sul cliente. |
ClientInfoDetail
Coppia chiave-valore di informazioni dettagliate sul client che ha richiamato il test. Esempi: {'Versione', '1.0'}, {'Traccia di rilascio', 'BETA'}.
Rappresentazione JSON |
---|
{ "key": string, "value": string } |
Campi | |
---|---|
key | Necessario. La chiave delle informazioni dettagliate sul cliente. |
value | Necessario. Il valore delle informazioni dettagliate sul cliente. |
Specifica del test
Una descrizione di come eseguire il test.
Rappresentazione JSON |
---|
{ "testTimeout": string, "disableVideoRecording": boolean, "disablePerformanceMetrics": boolean, // Union field |
Campi | |
---|---|
testTimeout | Tempo massimo consentito per l'esecuzione di un test prima che venga annullato automaticamente. Il valore predefinito è 5 minuti. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con ' |
disableVideoRecording | Disabilita la registrazione video. Può ridurre la latenza del test. |
disablePerformanceMetrics | Disabilita la registrazione delle metriche delle prestazioni. Può ridurre la latenza del test. |
setup del campo dell'Unione. Testare i requisiti di configurazione. setup può essere solo una delle seguenti: | |
testSetup | Testare i requisiti di configurazione per Android, ad esempio file da installare, script di bootstrap. |
iosTestSetup | Testare i requisiti di configurazione per iOS. |
test sul campo dell'Unione. Necessario. Il tipo di test da eseguire. test può essere solo uno dei seguenti: | |
androidInstrumentationTest | Un test della strumentazione Android. |
androidRoboTest | Un test robotico Android. |
androidTestLoop | Un'applicazione Android con un ciclo di test. |
iosXcTest | Un XCTest iOS, tramite un file .xctestrun. |
iosTestLoop | Un'applicazione iOS con un ciclo di test. |
Configurazione di prova
Una descrizione di come configurare il dispositivo Android prima di eseguire il test.
Rappresentazione JSON |
---|
{ "filesToPush": [ { object ( |
Campi | |
---|---|
filesToPush[] | Elenco dei file da inviare al dispositivo prima di iniziare il test. |
directoriesToPull[] | Elenco delle directory presenti sul dispositivo da caricare su GCS al termine del test; devono essere percorsi assoluti in /sdcard, /storage o /data/local/tmp. I nomi dei percorsi sono limitati ai caratteri az AZ 0-9 _ - . + e / Nota: i percorsi /sdcard e /data verranno resi disponibili e trattati come sostituzioni di percorso implicite. Ad esempio, se /sdcard su un particolare dispositivo non è mappato su una memoria esterna, il sistema lo sostituirà con il prefisso del percorso di memorizzazione esterna per quel dispositivo. |
additionalApks[] | APK da installare in aggiunta a quelli in fase di test diretto. Attualmente il limite è 100. |
account | Il dispositivo verrà registrato su questo account per tutta la durata del test. |
networkProfile | Il profilo del traffico di rete utilizzato per eseguire il test. È possibile eseguire query sui profili di rete disponibili utilizzando il tipo di ambiente NETWORK_CONFIGURATION quando si chiama TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. |
environmentVariables[] | Variabili d'ambiente da impostare per il test (applicabile solo per test di strumentazione). |
systrace | Configurazione Systrace per la corsa. Deprecato: Systrace utilizzava Python 2 che è stato disattivato il 01-01-2020. Systrace non è più supportato nell'API Cloud Testing e nei risultati non verrà fornito alcun file Systrace. |
dontAutograntPermissions | Indica se impedire la concessione di tutte le autorizzazioni di runtime al momento dell'installazione dell'app |
DispositivoFile
Una singola descrizione del file del dispositivo.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
Campo di unione device_file . Necessario. device_file può essere solo uno dei seguenti: | |
obbFile | Riferimento a un file BLOB binario opaco. |
regularFile | Un riferimento a un file normale. |
ObbFile
Un file BLOB binario opaco da installare nel dispositivo prima dell'inizio del test.
Rappresentazione JSON |
---|
{
"obbFileName": string,
"obb": {
object ( |
Campi | |
---|---|
obbFileName | Necessario. Nome del file OBB che deve essere conforme al formato specificato da Android, ad esempio [main|patch].0300110.com.example.android.obb che verrà installato in <shared-storage>/Android/obb/<package-name>/ sul dispositivo. |
obb | Necessario. File OBB (Opaque Binary BLOB) da installare sul dispositivo. |
File di riferimento
Un riferimento a un file, utilizzato per gli input dell'utente.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
file del campo dell'Unione. Necessario. Il riferimento al file. file può essere solo uno dei seguenti: | |
gcsPath | Un percorso a un file in Google Cloud Storage. Esempio: gs://build-app-1414623860166/app%40debug-unaligned.apk Questi percorsi dovrebbero essere codificati nell'URL (codifica percentuale) |
File normale
Un file o una directory da installare sul dispositivo prima dell'inizio del test.
Rappresentazione JSON |
---|
{
"content": {
object ( |
Campi | |
---|---|
content | Necessario. Il file di origine. |
devicePath | Necessario. Dove posizionare il contenuto sul dispositivo. Deve essere un percorso assoluto e consentito. Se il file esiste, verrà sostituito. Le seguenti directory lato dispositivo e le relative sottodirectory sono consentite: ${EXTERNAL_STORAGE}, /sdcard o /storage ${ANDROID_DATA}/local/tmp o /data/local/tmp La specifica di un percorso esterno a queste strutture di directory non è valida. I percorsi /sdcard e /data verranno resi disponibili e trattati come sostituzioni di percorso implicite. Ad esempio, se /sdcard su un particolare dispositivo non è mappato su una memoria esterna, il sistema lo sostituirà con il prefisso del percorso di memorizzazione esterna per quel dispositivo e copierà lì il file. Si consiglia vivamente di utilizzare l' API Environment nell'app e testare il codice per accedere ai file sul dispositivo in modo portatile. |
Apk
Un file del pacchetto Android da installare.
Rappresentazione JSON |
---|
{
"location": {
object ( |
Campi | |
---|---|
location | Il percorso di un APK da installare sul dispositivo prima dell'inizio del test. |
packageName | Il pacchetto Java per l'APK da installare. Il valore viene determinato esaminando il manifest dell'applicazione. |
Account
Identifica un account e come accedervi.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
Campo unione account_type . Necessario. Il tipo di account, in base a cosa serve (ad esempio Google) e qual è il suo meccanismo di accesso (ad esempio nome utente e password). account_type può essere solo uno dei seguenti: | |
googleAuto | Un account di accesso Google automatico. |
GoogleAuto
Abilita l'accesso automatico all'account Google. Se impostato, il servizio genera automaticamente un account di prova Google e lo aggiunge al dispositivo, prima di eseguire il test. Tieni presente che gli account di prova potrebbero essere riutilizzati. Molte applicazioni mostrano il loro set completo di funzionalità quando sul dispositivo è presente un account. L'accesso al dispositivo con questi account generati consente di testare più funzionalità.
Variabile d'ambiente
Una coppia chiave-valore passata al test come variabile di ambiente.
Rappresentazione JSON |
---|
{ "key": string, "value": string } |
Campi | |
---|---|
key | Chiave per la variabile di ambiente. |
value | Valore per la variabile di ambiente. |
SystraceSetup
Rappresentazione JSON |
---|
{ "durationSeconds": integer } |
Campi | |
---|---|
durationSeconds | Durata del sistema in secondi. Dovrebbe essere compreso tra 1 e 30 secondi. 0 disabilita systrace. |
IosTestSetup
Una descrizione di come configurare un dispositivo iOS prima di eseguire il test.
Rappresentazione JSON |
---|
{ "networkProfile": string, "additionalIpas": [ { object ( |
Campi | |
---|---|
networkProfile | Il profilo del traffico di rete utilizzato per eseguire il test. È possibile eseguire query sui profili di rete disponibili utilizzando il tipo di ambiente NETWORK_CONFIGURATION quando si chiama TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog. |
additionalIpas[] | App iOS da installare in aggiunta a quelle in fase di test diretto. |
pushFiles[] | Elenco dei file da inviare al dispositivo prima di iniziare il test. |
pullDirectories[] | Elenco delle directory sul dispositivo da caricare su Cloud Storage al termine del test. Le directory devono trovarsi in una directory condivisa (come /private/var/mobile/Media) o in una directory accessibile all'interno del file system dell'app (come /Documents) specificando l'ID del bundle. |
IosDeviceFile
Un file o una directory da installare sul dispositivo prima dell'inizio del test.
Rappresentazione JSON |
---|
{
"content": {
object ( |
Campi | |
---|---|
content | Il file di origine |
bundleId | L'ID bundle dell'app in cui risiede questo file. Le app iOS eseguono il sandbox del proprio file system, quindi i file dell'app devono specificare quale app è installata sul dispositivo. |
devicePath | Posizione del file sul dispositivo, all'interno del file system sandbox dell'app |
AndroidStrumentazioneTest
Un test di un'applicazione Android in grado di controllare un componente Android indipendentemente dal suo normale ciclo di vita. I test di strumentazione Android eseguono un APK dell'applicazione e testano l'APK all'interno dello stesso processo su un dispositivo Android virtuale o fisico. Specificano inoltre una classe del test runner, come com.google.GoogleTestRunner, che può variare in base al framework di strumentazione specifico scelto.
Vedi https://developer.android.com/training/testing/fundamentals per ulteriori informazioni sui tipi di test Android.
Rappresentazione JSON |
---|
{ "testApk": { object ( |
Campi | |
---|---|
testApk | Necessario. L'APK contenente il codice di test da eseguire. |
appPackageId | Il pacchetto Java per l'applicazione in prova. Il valore predefinito viene determinato esaminando il manifesto dell'applicazione. |
testPackageId | Il pacchetto Java per il test da eseguire. Il valore predefinito viene determinato esaminando il manifesto dell'applicazione. |
testRunnerClass | La classe InstrumentationTestRunner. Il valore predefinito viene determinato esaminando il manifesto dell'applicazione. |
testTargets[] | Ogni destinazione deve essere completamente qualificata con il nome del pacchetto o del nome della classe, in uno di questi formati:
Se vuoto, verranno eseguiti tutti i target nel modulo. |
orchestratorOption | La possibilità di eseguire o meno ciascun test all'interno della propria invocazione della strumentazione con Android Test Orchestrator. ** Orchestrator è compatibile solo con AndroidJUnitRunner versione 1.1 o successiva! ** Orchestrator offre i seguenti vantaggi:
Vedi https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator per ulteriori informazioni su Android Test Orchestrator. Se non impostato, il test verrà eseguito senza l'orchestratore. |
shardingOption | L'opzione per eseguire test su più shard in parallelo. |
Campo unione app_under_test . Necessario. app_under_test può essere solo uno dei seguenti: | |
appApk | L'APK dell'applicazione in prova. |
appBundle | Un app bundle multi-apk per l'applicazione in prova. |
AppBundle
Un formato di file Android App Bundle contenente un file BundleConfig.pb, una directory del modulo di base e zero o più directory dei moduli delle funzionalità dinamiche.
Consulta https://developer.android.com/guide/app-bundle/build per indicazioni sulla creazione di app bundle.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
bundle di campi dell'Unione. Necessario. Informazioni sulla posizione del pacchetto. bundle può essere solo uno dei seguenti: | |
bundleLocation | File .aab che rappresenta l'app bundle in fase di test. |
Opzione orchestratore
Specifica come eseguire il test.
Enumerazioni | |
---|---|
ORCHESTRATOR_OPTION_UNSPECIFIED | Valore predefinito: il server sceglierà la modalità. Attualmente implica che il test verrà eseguito senza l'orchestratore. In futuro, tutti i test sulla strumentazione verranno eseguiti con l'orchestratore. L'utilizzo dell'orchestrator è altamente consigliato a causa di tutti i vantaggi che offre. |
USE_ORCHESTRATOR | Esegui il test utilizzando l'agente di orchestrazione. ** Compatibile solo con AndroidJUnitRunner versione 1.1 o successiva! ** Consigliato. |
DO_NOT_USE_ORCHESTRATOR | Esegui il test senza utilizzare l'agente di orchestrazione. |
ShardingOpzione
Opzioni per abilitare lo sharding.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
| |
uniformSharding | Casi di test sui frammenti in modo uniforme dato un numero totale di frammenti. |
manualSharding | Suddivide i casi di test nei gruppi specificati di pacchetti, classi e/o metodi. |
smartSharding | Test degli shard basato sui record temporali dei casi di test precedenti. |
UniformSharding
Casi di test sui frammenti in modo uniforme dato un numero totale di frammenti.
Per i test di strumentazione, verrà tradotto negli argomenti AndroidJUnitRunner "-e numShard" e "-e shardIndex". Con lo sharding uniforme abilitato, la specifica di uno di questi argomenti di sharding tramite environmentVariables
non è valida.
In base al meccanismo di sharding utilizzato da AndroidJUnitRunner, non vi è alcuna garanzia che i casi di test vengano distribuiti uniformemente su tutti gli shard.
Rappresentazione JSON |
---|
{ "numShards": integer } |
Campi | |
---|---|
numShards | Necessario. Il numero totale di frammenti da creare. Deve sempre essere un numero positivo non superiore al numero totale di casi di test. Quando selezioni uno o più dispositivi fisici, il numero di shard deve essere <= 50. Quando selezioni uno o più dispositivi virtuali ARM, deve essere <= 200. Quando selezioni solo dispositivi virtuali x86, deve essere <= 500 . |
Sharding manuale
Suddivide i casi di test nei gruppi specificati di pacchetti, classi e/o metodi.
Con lo sharding manuale abilitato, la specifica delle destinazioni del test tramite EnvironmentVariables o in InstrumentationTest non è valida.
Rappresentazione JSON |
---|
{
"testTargetsForShard": [
{
object ( |
Campi | |
---|---|
testTargetsForShard[] | Necessario. Gruppo di pacchetti, classi e/o metodi di test da eseguire per ogni shard creato manualmente. È necessario specificare almeno uno shard se questo campo è presente. Quando selezioni uno o più dispositivi fisici, il numero di testTargetsForShard ripetuti deve essere <= 50. Quando selezioni uno o più dispositivi virtuali ARM, deve essere <= 200. Quando selezioni solo dispositivi virtuali x86, deve essere <= 500. |
TestTargetsForShard
Testare gli obiettivi per un frammento.
Rappresentazione JSON |
---|
{ "testTargets": [ string ] } |
Campi | |
---|---|
testTargets[] | Gruppo di pacchetti, classi e/o metodi di test da eseguire per ogni shard. Gli obiettivi devono essere specificati nel formato dell'argomento AndroidJUnitRunner. Ad esempio, "pacchetto com.my.packages" "class com.my.package.MyClass". Il numero di testTargets deve essere maggiore di 0. |
SmartSharding
Test degli shard basato sui record temporali dei casi di test precedenti.
Rappresentazione JSON |
---|
{ "targetedShardDuration": string } |
Campi | |
---|---|
targetedShardDuration | Il tempo necessario per eseguire i test all'interno di uno shard. Impostazione predefinita: 300 secondi (5 minuti). Il minimo consentito: 120 secondi (2 minuti). Il conteggio dei frammenti viene impostato dinamicamente in base al tempo, fino al limite massimo dei frammenti (descritto di seguito). Per garantire almeno un caso di test per ogni shard, il numero di shard non supererà il numero di casi di test. La durata dello shard verrà superata se:
La durata dello sharding non è garantita perché lo sharding intelligente utilizza la cronologia dei test case e le durate predefinite che potrebbero non essere precise. Le regole per trovare i record temporali dei casi di test sono:
Poiché la durata effettiva dello shard può superare la durata dello shard target, ti consigliamo di impostare il valore target almeno 5 minuti in meno rispetto al timeout massimo consentito del test (45 minuti per i dispositivi fisici e 60 minuti per quelli virtuali) o di utilizzare la durata personalizzata testare il valore di timeout impostato. Questo approccio evita di cancellare lo shard prima che tutti i test possano essere completati. Tieni presente che esiste un limite per il numero massimo di shard. Quando selezioni uno o più dispositivi fisici, il numero di shard deve essere <= 50. Quando selezioni uno o più dispositivi virtuali ARM, deve essere <= 200. Quando selezioni solo dispositivi virtuali x86, deve essere <= 500 Per garantire almeno un caso di test per ogni shard, il numero di shard non supererà il numero di casi di test. Ogni shard creato conta ai fini della quota di test giornaliera. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con ' |
AndroidRoboTest
Un test di un'applicazione Android che esplora l'applicazione su un dispositivo Android virtuale o fisico, trovando colpevoli e arresti anomali man mano che procede.
Rappresentazione JSON |
---|
{ "appPackageId": string, "appInitialActivity": string, "maxDepth": integer, "maxSteps": integer, "roboDirectives": [ { object ( |
Campi | |
---|---|
appPackageId | Il pacchetto Java per l'applicazione in prova. Il valore predefinito viene determinato esaminando il manifesto dell'applicazione. |
appInitialActivity | L'attività iniziale da utilizzare per avviare l'app. |
maxDepth | La profondità massima dello stack trasversale che Robo può esplorare. Devono essere almeno 2 per consentire a Robo di esplorare l'app oltre la prima attività. L'impostazione predefinita è 50. |
maxSteps | Il numero massimo di passaggi che Robo può eseguire. L'impostazione predefinita non ha limiti. |
roboDirectives[] | Una serie di direttive che Robo dovrebbe applicare durante la scansione. Ciò consente agli utenti di personalizzare la scansione. Ad esempio, è possibile fornire il nome utente e la password per un account di prova. |
roboMode | La modalità in cui Robo dovrebbe essere eseguito. La maggior parte dei client dovrebbe consentire al server di compilare questo campo automaticamente. |
roboScript | Un file JSON con una sequenza di azioni che Robo dovrebbe eseguire come prologo alla scansione. |
startingIntents[] | Gli intenti utilizzati per avviare l'app per la scansione. Se non ne viene fornita alcuna, viene avviata l'attività principale del launcher. Se ne vengono forniti alcuni, verranno avviati solo quelli forniti (l'attività di avvio principale deve essere fornita esplicitamente). |
Campo unione app_under_test . Necessario. app_under_test può essere solo uno dei seguenti: | |
appApk | L'APK dell'applicazione in prova. |
appBundle | Un app bundle multi-apk per l'applicazione in prova. |
RoboDirective
Indica a Robo di interagire con uno specifico elemento dell'interfaccia utente se viene rilevato durante la scansione. Attualmente, Robo può eseguire l'immissione di testo o fare clic su un elemento.
Rappresentazione JSON |
---|
{
"resourceName": string,
"inputText": string,
"actionType": enum ( |
Campi | |
---|---|
resourceName | Necessario. Il nome della risorsa Android dell'elemento dell'interfaccia utente di destinazione. Ad esempio, in Java: R.string.foo in xml: @string/foo È necessaria solo la parte "foo". Documento di riferimento: https://developer.android.com/guide/topics/resources/accessing-resources.html |
inputText | Il testo che Robo è tenuto a impostare. Se lasciata vuota, la direttiva verrà trattata come un CLIC sull'elemento corrispondente a ResourceName. |
actionType | Necessario. Il tipo di azione che Robo dovrebbe eseguire sull'elemento specificato. |
RoboActionType
Azioni che Robo può eseguire sugli elementi dell'interfaccia utente.
Enumerazioni | |
---|---|
ACTION_TYPE_UNSPECIFIED | NON USARE. Solo per il controllo delle versioni del prototipo. |
SINGLE_CLICK | Ordina a Robo di fare clic sull'elemento specificato. No-op se l'elemento specificato non è selezionabile. |
ENTER_TEXT | Dirigi Robo per inserire il testo nell'elemento specificato. No-op se l'elemento specificato non è abilitato o non consente l'immissione di testo. |
IGNORE | Ordina a Robo di ignorare le interazioni con un elemento specifico. |
RoboMode
La modalità in cui Robo dovrebbe essere eseguito.
Enumerazioni | |
---|---|
ROBO_MODE_UNSPECIFIED | Ciò significa che il server dovrebbe scegliere la modalità. Consigliato. |
ROBO_VERSION_1 | Esegue Robo in modalità solo UIAutomator senza dimettersi dall'app |
ROBO_VERSION_2 | Esegue Robo in Espresso standard con fallback UIAutomator |
RoboStartingIntent
Messaggio per specificare le attività iniziali da sottoporre a scansione.
Rappresentazione JSON |
---|
{ "timeout": string, // Union field |
Campi | |
---|---|
timeout | Timeout in secondi per ciascun intento. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con ' |
Campo unione starting_intent . Necessario. Dettagli dell'intento per avviare un'attività. starting_intent può essere solo uno dei seguenti: | |
launcherActivity | Un intento che avvia l'attività principale del launcher. |
startActivity | Un intento che avvia un'attività con dettagli specifici. |
LauncherActivityIntent
Specifica un intento che avvia l'attività principale del programma di avvio.
StartActivityIntent
Un intento iniziale specificato da un'azione, un URI e categorie.
Rappresentazione JSON |
---|
{ "action": string, "uri": string, "categories": [ string ] } |
Campi | |
---|---|
action | Nome dell'azione. Obbligatorio per START_ACTIVITY. |
uri | URI per l'azione. |
categories[] | Categorie di intenti da impostare sull'intento. |
AndroidTestLoop
Un test di un'applicazione Android con un ciclo di test. L'intento <intent-name> verrà aggiunto implicitamente, poiché Games è l'unico utente di questa API, per il momento.
Rappresentazione JSON |
---|
{ "appPackageId": string, "scenarios": [ integer ], "scenarioLabels": [ string ], // Union field |
Campi | |
---|---|
appPackageId | Il pacchetto Java per l'applicazione in prova. L'impostazione predefinita viene determinata esaminando il manifesto dell'applicazione. |
scenarios[] | L'elenco degli scenari da eseguire durante il test. L'impostazione predefinita prevede tutti i cicli di test, derivati dal manifest dell'applicazione. |
scenarioLabels[] | L'elenco delle etichette dello scenario da eseguire durante il test. Le etichette dello scenario devono corrispondere alle etichette definite nel manifesto dell'applicazione. Ad esempio, player_experience e com.google.test.loops.player_experience aggiungono all'esecuzione tutti i loop etichettati nel manifest con il nome com.google.test.loops.player_experience. Gli scenari possono essere specificati anche nel campo scenari. |
Campo unione app_under_test . Necessario. Il pacchetto Android da testare. app_under_test può essere solo uno dei seguenti: | |
appApk | L'APK dell'applicazione in prova. |
appBundle | Un app bundle multi-apk per l'applicazione in prova. |
IosXcTest
Un test di un'applicazione iOS che utilizza il framework XCTest. Xcode supporta l'opzione "build for testing", che genera un file .xctestrun che contiene una specifica di test (argomenti, metodi di test, ecc.). Questo tipo di test accetta un file zip contenente il file .xctestrun e il contenuto corrispondente della directory Build/Products che contiene tutti i file binari necessari per eseguire i test.
Rappresentazione JSON |
---|
{ "testsZip": { object ( |
Campi | |
---|---|
testsZip | Necessario. Il file .zip contenente il file .xctestrun e il contenuto della directory DerivedData/Build/Products. Il file .xctestrun in questo zip viene ignorato se viene specificato il campo xctestrun. |
xctestrun | Un file .xctestrun che sovrascriverà il file .xctestrun nel file zip dei test. Poiché il file .xctestrun contiene variabili di ambiente insieme ai metodi di test da eseguire e/o ignorare, ciò può essere utile per lo sharding dei test. L'impostazione predefinita è presa dal file zip dei test. |
xcodeVersion | La versione di Xcode da utilizzare per il test. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate. Le impostazioni predefinite corrispondono all'ultima versione di Xcode supportata da Firebase Test Lab. |
appBundleId | Solo uscita. L'ID del bundle per l'applicazione in fase di test. |
testSpecialEntitlements | L'opzione per testare i diritti speciali delle app. L'impostazione di questa opzione firmerebbe nuovamente l'app con diritti speciali con un identificatore di applicazione esplicito. Attualmente supporta il test dei diritti dell'ambiente aps. |
IosTestLoop
Un test di un'applicazione iOS che implementa uno o più scenari di loop di gioco. Questo tipo di test accetta un'applicazione archiviata (file .ipa) e un elenco di scenari interi che verranno eseguiti sull'app in sequenza.
Rappresentazione JSON |
---|
{
"appIpa": {
object ( |
Campi | |
---|---|
appIpa | Necessario. Il file .ipa dell'applicazione da testare. |
scenarios[] | L'elenco degli scenari da eseguire durante il test. Il valore predefinito è il singolo scenario 0 se non specificato. |
appBundleId | Solo uscita. L'ID del bundle per l'applicazione in fase di test. |
MatriceAmbiente
La matrice degli ambienti in cui verrà eseguito il test.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
Campo dell'unione environment_matrix . Necessario. La matrice ambientale. environment_matrix può essere solo uno dei seguenti: | |
androidMatrix | Una matrice di dispositivi Android. |
androidDeviceList | Un elenco di dispositivi Android; il test verrà eseguito solo sui dispositivi specificati. |
iosDeviceList | Un elenco di dispositivi iOS. |
AndroidMatrix
Un insieme di permutazioni di configurazione del dispositivo Android è definito dal prodotto incrociato degli assi indicati. Internamente, l'AndroidMatrix specificato verrà espanso in un set di AndroidDevices.
Verranno istanziate solo le permutazioni supportate. Le permutazioni non valide (ad esempio modelli/versioni incompatibili) vengono ignorate.
Rappresentazione JSON |
---|
{ "androidModelIds": [ string ], "androidVersionIds": [ string ], "locales": [ string ], "orientations": [ string ] } |
Campi | |
---|---|
androidModelIds[] | Necessario. Gli ID del set di dispositivi Android da utilizzare. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
androidVersionIds[] | Necessario. Gli ID del set di versioni del sistema operativo Android da utilizzare. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
locales[] | Necessario. L'insieme di impostazioni locali abilitate dal dispositivo di test per il test. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
orientations[] | Necessario. L'insieme di orientamenti con cui eseguire il test. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
AndroidDeviceList
Un elenco di configurazioni del dispositivo Android in cui deve essere eseguito il test.
Rappresentazione JSON |
---|
{
"androidDevices": [
{
object ( |
Campi | |
---|---|
androidDevices[] | Necessario. Un elenco di dispositivi Android. |
Dispositivo Android
Un unico dispositivo Android.
Rappresentazione JSON |
---|
{ "androidModelId": string, "androidVersionId": string, "locale": string, "orientation": string } |
Campi | |
---|---|
androidModelId | Necessario. L'ID del dispositivo Android da utilizzare. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
androidVersionId | Necessario. L'ID della versione del sistema operativo Android da utilizzare. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
locale | Necessario. Le impostazioni locali utilizzate dal dispositivo di test per il test. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
orientation | Necessario. Come viene orientato il dispositivo durante il test. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
IosDeviceList
Un elenco di configurazioni del dispositivo iOS in cui deve essere eseguito il test.
Rappresentazione JSON |
---|
{
"iosDevices": [
{
object ( |
Campi | |
---|---|
iosDevices[] | Necessario. Un elenco di dispositivi iOS. |
IosDevice
Un singolo dispositivo iOS.
Rappresentazione JSON |
---|
{ "iosModelId": string, "iosVersionId": string, "locale": string, "orientation": string } |
Campi | |
---|---|
iosModelId | Necessario. L'ID del dispositivo iOS da utilizzare. Utilizzare TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
iosVersionId | Necessario. L'ID della versione principale del software iOS da utilizzare. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
locale | Necessario. Le impostazioni locali utilizzate dal dispositivo di test per il test. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
orientation | Necessario. Come viene orientato il dispositivo durante il test. Utilizza TestEnvironmentDiscoveryService per ottenere le opzioni supportate. |
Esecuzione del test
Un singolo test eseguito in un unico ambiente.
Rappresentazione JSON |
---|
{ "id": string, "matrixId": string, "projectId": string, "testSpecification": { object ( |
Campi | |
---|---|
id | Solo uscita. ID univoco impostato dal servizio. |
matrixId | Solo uscita. ID del TestMatrix contenente. |
projectId | Solo uscita. Il progetto cloud a cui appartiene l'esecuzione del test. |
testSpecification | Solo uscita. Come eseguire il test. |
shard | Solo uscita. Dettagli sul frammento. |
environment | Solo uscita. Come sono configurate le macchine host. |
state | Solo uscita. Indica lo stato di avanzamento attuale dell'esecuzione del test (ad esempio, FINISHED). |
toolResultsStep | Solo uscita. Dove sono scritti i risultati di questa esecuzione. |
timestamp | Solo uscita. L'ora in cui è stata inizialmente creata l'esecuzione del test. Un timestamp in formato RFC3339 UTC "Zulu", con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: |
testDetails | Solo uscita. Ulteriori dettagli sul test in corso. |
Coccio
Solo uscita. Dettagli sul frammento.
Rappresentazione JSON |
---|
{
"shardIndex": integer,
"numShards": integer,
"testTargetsForShard": {
object ( |
Campi | |
---|---|
shardIndex | Solo uscita. L'indice dello shard tra tutti gli shard. |
numShards | Solo uscita. Il numero totale di frammenti. |
testTargetsForShard | Solo uscita. Testare gli obiettivi per ogni frammento. Impostato solo per lo sharding manuale. |
estimatedShardDuration | Solo uscita. La durata stimata dello shard in base ai record temporali dei test case precedenti, se disponibili. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con ' |
Ambiente
L'ambiente in cui viene eseguito il test.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
environment sul campo dell'Unione. Necessario. L'ambiente. environment può essere solo uno dei seguenti: | |
androidDevice | Un dispositivo Android che deve essere utilizzato con un test Android. |
iosDevice | Un dispositivo iOS che deve essere utilizzato con un test iOS. |
StatoTest
Lo stato (ovvero l'avanzamento) dell'esecuzione o della matrice di un test.
Enumerazioni | |
---|---|
TEST_STATE_UNSPECIFIED | Non usare. Solo per il controllo delle versioni del prototipo. |
VALIDATING | L'esecuzione o la matrice è in fase di convalida. |
PENDING | L'esecuzione o la matrice è in attesa che le risorse diventino disponibili. |
RUNNING | L'esecuzione è attualmente in fase di elaborazione. Può essere impostato solo su un'esecuzione. |
FINISHED | L'esecuzione o la matrice è terminata normalmente. Su una matrice ciò significa che l'elaborazione a livello di matrice è stata completata normalmente, ma le singole esecuzioni potrebbero trovarsi in uno stato di ERRORE. |
ERROR | L'esecuzione o la matrice si è interrotta perché ha riscontrato un guasto dell'infrastruttura. |
UNSUPPORTED_ENVIRONMENT | L'esecuzione non è stata eseguita perché corrisponde a un ambiente non supportato. Può essere impostato solo su un'esecuzione. |
INCOMPATIBLE_ENVIRONMENT | L'esecuzione non è stata eseguita perché gli input forniti non sono compatibili con l'ambiente richiesto. Esempio: la AndroidVersion richiesta è inferiore alla minSdkVersion dell'APK Può essere impostato solo su un'esecuzione. |
INCOMPATIBLE_ARCHITECTURE | L'esecuzione non è stata eseguita perché gli input forniti non sono compatibili con l'architettura richiesta. Esempio: il dispositivo richiesto non supporta l'esecuzione del codice nativo nell'APK fornito Può essere impostato solo su un'esecuzione. |
CANCELLED | L'utente ha annullato l'esecuzione. Può essere impostato solo su un'esecuzione. |
INVALID | L'esecuzione o la matrice non è stata eseguita perché gli input forniti non sono validi. Esempi: il file di input non è del tipo previsto, non è valido/corrotto oppure è stato contrassegnato come malware |
StrumentoRisultatiPassaggio
Rappresenta una risorsa del passaggio dei risultati dello strumento.
Questo ha i risultati di un TestExecution.
Rappresentazione JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string, "stepId": string } |
Campi | |
---|---|
projectId | Solo uscita. Il progetto cloud che possiede il passaggio dei risultati dello strumento. |
historyId | Solo uscita. Un ID della cronologia dei risultati dello strumento. |
executionId | Solo uscita. Uno strumento risulta l'ID di esecuzione. |
stepId | Solo uscita. Un ID passaggio dei risultati dello strumento. |
Dettagli del test
Ulteriori dettagli sullo stato di avanzamento del test di corsa.
Rappresentazione JSON |
---|
{ "progressMessages": [ string ], "errorMessage": string } |
Campi | |
---|---|
progressMessages[] | Solo uscita. Descrizioni dettagliate e leggibili dell'avanzamento del test. Ad esempio: "Provisioning di un dispositivo", "Avvio del test". Durante il corso dell'esecuzione potrebbero essere aggiunti nuovi dati alla fine di progressMessages. |
errorMessage | Solo uscita. Se TestState è ERROR, questa stringa conterrà dettagli leggibili sull'errore. |
RisultatoArchiviazione
Posizioni in cui vengono archiviati i risultati dell'esecuzione del test.
Rappresentazione JSON |
---|
{ "googleCloudStorage": { object ( |
Campi | |
---|---|
googleCloudStorage | Necessario. |
toolResultsHistory | La cronologia dei risultati dello strumento che contiene l'esecuzione dei risultati dello strumento in cui vengono scritti i risultati. Se non fornito, il servizio sceglierà un valore appropriato. |
toolResultsExecution | Solo uscita. L'esecuzione dei risultati dello strumento in cui vengono scritti i risultati. |
resultsUrl | Solo uscita. URL dei risultati nella console Web Firebase. |
GoogleCloudStorage
Una posizione di archiviazione all'interno dell'archivio cloud di Google (GCS).
Rappresentazione JSON |
---|
{ "gcsPath": string } |
Campi | |
---|---|
gcsPath | Necessario. Il percorso di una directory in GCS che conterrà eventualmente i risultati di questo test. L'utente richiedente deve avere accesso in scrittura sul bucket nel percorso fornito. |
Storia dei risultati degli strumenti
Rappresenta una risorsa della cronologia dei risultati dello strumento.
Rappresentazione JSON |
---|
{ "projectId": string, "historyId": string } |
Campi | |
---|---|
projectId | Necessario. Il progetto cloud che possiede la cronologia dei risultati dello strumento. |
historyId | Necessario. Un ID della cronologia dei risultati dello strumento. |
Esecuzione dei risultati dello strumento
Rappresenta una risorsa di esecuzione dei risultati dello strumento.
Questo ha i risultati di un TestMatrix.
Rappresentazione JSON |
---|
{ "projectId": string, "historyId": string, "executionId": string } |
Campi | |
---|---|
projectId | Solo uscita. Il progetto cloud proprietario dello strumento risulta in esecuzione. |
historyId | Solo uscita. Un ID della cronologia dei risultati dello strumento. |
executionId | Solo uscita. Uno strumento risulta l'ID di esecuzione. |
Dettagli matrice non validi
Il motivo dettagliato per cui una matrice è stata ritenuta NON VALIDA.
Enumerazioni | |
---|---|
INVALID_MATRIX_DETAILS_UNSPECIFIED | Non usare. Solo per il controllo delle versioni del prototipo. |
DETAILS_UNAVAILABLE | La matrice NON È VALIDA, ma non sono disponibili ulteriori dettagli. |
MALFORMED_APK | Impossibile analizzare l'APK dell'app di input. |
MALFORMED_TEST_APK | Non è stato possibile analizzare l'APK del test di input. |
NO_MANIFEST | Impossibile trovare AndroidManifest.xml. |
NO_PACKAGE_NAME | Il manifesto dell'APK non dichiara il nome del pacchetto. |
INVALID_PACKAGE_NAME | L'ID dell'applicazione APK (noto anche come nome del pacchetto) non è valido. Vedi anche https://developer.android.com/build/configure-app-module#set-application-id |
TEST_SAME_AS_APP | Il pacchetto di test e il pacchetto dell'app sono gli stessi. |
NO_INSTRUMENTATION | L'apk di test non dichiara una strumentazione. |
NO_SIGNATURE | L'apk dell'app di input non ha una firma. |
INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE | La classe del test runner specificata dall'utente o nel file manifest dell'APK di test non è compatibile con Android Test Orchestrator. Orchestrator è compatibile solo con AndroidJUnitRunner versione 1.1 o successiva. L'orchestrator può essere disabilitato utilizzando DO_NOT_USE_ORCHESTRATOR OrchestratorOption. |
NO_TEST_RUNNER_CLASS | L'APK di test non contiene la classe del test runner specificata dall'utente o nel file manifest. Ciò può essere causato da uno dei seguenti motivi:
|
NO_LAUNCHER_ACTIVITY | Impossibile trovare un'attività di avvio principale. |
FORBIDDEN_PERMISSIONS | L'app dichiara una o più autorizzazioni non consentite. |
INVALID_ROBO_DIRECTIVES | C'è un conflitto nelle roboDirectives fornite. |
INVALID_RESOURCE_NAME | È presente almeno un nome di risorsa non valido nelle direttive robo fornite |
INVALID_DIRECTIVE_ACTION | Definizione di azione non valida nelle direttive Robo (ad esempio, un'azione di clic o di ignoranza include un campo di testo di input) |
TEST_LOOP_INTENT_FILTER_NOT_FOUND | Non esiste un filtro dell'intento del ciclo di test oppure quello fornito non è formattato correttamente. |
SCENARIO_LABEL_NOT_DECLARED | La richiesta contiene un'etichetta di scenario che non è stata dichiarata nel manifest. |
SCENARIO_LABEL_MALFORMED | Si è verificato un errore durante l'analisi del valore di un'etichetta. |
SCENARIO_NOT_DECLARED | La richiesta contiene un numero di scenario che non è stato dichiarato nel manifest. |
DEVICE_ADMIN_RECEIVER | Le applicazioni di amministratore del dispositivo non sono consentite. |
MALFORMED_XC_TEST_ZIP | Il formato XCTest compresso non era valido. Il file zip non conteneva un singolo file .xctestrun e il contenuto della directory DerivedData/Build/Products. |
BUILT_FOR_IOS_SIMULATOR | L'XCTest compresso è stato creato per il simulatore iOS anziché per un dispositivo fisico. |
NO_TESTS_IN_XC_TEST_ZIP | Il file .xctestrun non ha specificato alcuna destinazione di test. |
USE_DESTINATION_ARTIFACTS | Una o più destinazioni di test definite nel file .xctestrun specifica "UseDestinationArtifacts", che non è consentito. |
TEST_NOT_APP_HOSTED | I test XC eseguiti su dispositivi fisici devono avere "IsAppHostedTestBundle" == "true" nel file xctestrun. |
PLIST_CANNOT_BE_PARSED | Non è stato possibile analizzare un file Info.plist nel file zip XCTest. |
TEST_ONLY_APK | L'APK è contrassegnato come "testOnly". Deprecato e attualmente non utilizzato. |
MALFORMED_IPA | Non è stato possibile analizzare l'IPA di input. |
MISSING_URL_SCHEME | L'applicazione non registra lo schema URL del loop di gioco. |
MALFORMED_APP_BUNDLE | Impossibile elaborare il bundle dell'applicazione iOS (.app). |
NO_CODE_APK | L'APK non contiene codice. Vedi anche https://developer.android.com/guide/topics/manifest/application-element.html#code |
INVALID_INPUT_APK | Il percorso APK di input fornito non aveva un formato corretto, il file APK non esiste oppure l'utente non dispone dell'autorizzazione per accedere al file APK. |
INVALID_APK_PREVIEW_SDK | L'APK è creato per un SDK di anteprima che non è supportato |
MATRIX_TOO_LARGE | La matrice si è espansa per contenere troppe esecuzioni. |
TEST_QUOTA_EXCEEDED | Quota di test insufficiente per eseguire le esecuzioni in questa matrice. |
SERVICE_NOT_ACTIVATED | Un'API del servizio cloud richiesta non è attivata. Vedi: https://firebase.google.com/docs/test-lab/android/continuous#requirements |
UNKNOWN_PERMISSION_ERROR | Si è verificato un problema di autorizzazione sconosciuto durante l'esecuzione di questo test. |
Riepilogo dei risultati
Riepilogo dei risultati per una matrice di test finita.
Enumerazioni | |
---|---|
OUTCOME_SUMMARY_UNSPECIFIED | Non usare. Solo per il controllo delle versioni del prototipo. |
SUCCESS | L'esecuzione della matrice di test ha avuto esito positivo, ad esempio:
|
FAILURE | Una corsa non è riuscita, ad esempio:
|
INCONCLUSIVE | È successo qualcosa di inaspettato. L'esecuzione dovrebbe comunque essere considerata non riuscita, ma è probabile che si tratti di un problema temporaneo e la riesecuzione del test potrebbe avere esito positivo. |
SKIPPED | Tutti i test sono stati saltati, ad esempio:
|
Metodi | |
---|---|
| Annulla le esecuzioni di test non completate in una matrice di test. |
| Crea ed esegue una matrice di test in base alle specifiche fornite. |
| Controlla lo stato di una matrice di test e le esecuzioni una volta create. |