Servizio Browserstack
Un servizio WebdriverIO che gestisce il tunnel locale e i metadati dei job per gli utenti di BrowserStack.
Installazione
Il modo più semplice è mantenere @wdio/browserstack-service
come devDependency nel tuo file package.json
, tramite:
npm install @wdio/browserstack-service --save-dev
Le istruzioni su come installare WebdriverIO
possono essere trovate qui.
Configurazione
WebdriverIO ha il supporto per BrowserStack integrato. Dovresti impostare user
e key
nel tuo file wdio.conf.js
. Questo plugin di servizio fornisce supporto per BrowserStack Tunnel. Imposta anche browserstackLocal: true
per attivare questa funzionalità.
Il reporting dello stato della sessione su BrowserStack rispetterà l'impostazione strict
delle opzioni Cucumber.
// wdio.conf.js
export const config = {
// ...
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
},
browserstackLocal: true
}]
],
// ...
};
Opzioni
Per autorizzare il servizio BrowserStack, la tua configurazione deve contenere le opzioni user
e key
.
testObservability
Test Observability è uno strumento avanzato di reportistica dei test che fornisce informazioni per migliorare i tuoi test automatizzati e ti aiuta a debuggare più velocemente. È abilitato di default impostando il flag testObservability
su true
per tutti gli utenti del browserstack-service. Puoi disabilitarlo impostando il flag testObservability
su false
.
Una volta terminati i test, puoi visitare Test Observability per debuggare le tue build con ulteriori approfondimenti come l'Analisi degli Errori Unici, il Rilevamento Automatico dei Test Instabili e altro ancora.
Puoi utilizzare Test Observability anche se non esegui i tuoi test sull'infrastruttura BrowserStack. Anche se esegui i tuoi test su un CI, una macchina locale o persino su altri fornitori di servizi cloud, Test Observability può comunque generare report di test intelligenti e analisi avanzate sui tuoi test.
Se vuoi utilizzare Test Observability senza eseguire i tuoi test sull'infrastruttura BrowserStack, puoi impostare la tua configurazione come segue:
// wdio.conf.js
export const config = {
// ...
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
}
}]
],
// ...
};
Puoi esplorare tutte le funzionalità di Test Observability in questa sandbox o leggere ulteriori informazioni qui.
browserstackLocal
Imposta questo a true per abilitare l'instradamento delle connessioni dal cloud BrowserStack attraverso il tuo computer.
Tipo: Boolean
Default: false
forcedStop
Imposta questo a true per terminare il processo BrowserStack Local al completamento, senza attendere che venga chiamata la callback di arresto di BrowserStack Local. Questa è una funzione sperimentale e non dovrebbe essere utilizzata da tutti. Principalmente necessaria come soluzione per questo problema.
Tipo: Boolean
Default: false
app
Appium imposta questo con il percorso del file dell'app disponibile localmente sulla tua macchina per utilizzare l'app come applicazione da testare per le sessioni Appium.
Tipo: String
o JsonObject
Default: undefined
Elenco dei valori disponibili per l'app:
path
Utilizza il percorso del file dell'app disponibile localmente come applicazione da testare per Appium.
services: [
['browserstack', {
app: '/path/to/local/app.apk'
// OPPURE
app: {
path: '/path/to/local/app.apk'
}
}]
]
Passa custom_id durante il caricamento dell'app.
services: [
['browserstack', {
app: {
path: '/path/to/local/app.apk',
custom_id: 'custom_id'
}
}]
]
id
Utilizza l'URL dell'app restituito dopo aver caricato l'app su BrowserStack.
services: [
['browserstack', {
app: 'bs://<app-id>'
// OPPURE
app: {
id: 'bs://<app-id>'
}
}]
]
custom_id
usa custom_id di app già caricate
services: [
['browserstack', {
app: 'custom_id'
// OPPURE
app: {
custom_id: 'custom_id'
}
}]
]
shareable_id
usa shareable_id di app già caricate
services: [
['browserstack', {
app: 'username/custom_id'
// OPPURE
app: {
shareable_id: 'username/custom_id'
}
}]
]
preferScenarioName
Solo per Cucumber. Imposta il nome della sessione BrowserStack Automate sul nome dello Scenario solo se è stato eseguito un singolo Scenario. Utile quando si esegue in parallelo con wdio-cucumber-parallel-execution.
Tipo: Boolean
Default: false
sessionNameFormat
Personalizza il formato del nome della sessione BrowserStack Automate.
Tipo: Function
Default (Cucumber/Jasmine): (config, capabilities, suiteTitle) => suiteTitle
Default (Mocha): (config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle
sessionNameOmitTestTitle
Solo per Mocha. Non aggiungere il titolo del test al nome della sessione BrowserStack Automate.
Tipo: Boolean
Default: false
sessionNamePrependTopLevelSuiteTitle
Solo per Mocha. Antepone il titolo della suite di livello superiore al nome della sessione BrowserStack Automate.
Tipo: Boolean
Default: false
setSessionName
Imposta automaticamente il nome della sessione BrowserStack Automate.
Tipo: Boolean
Default: true
setSessionStatus
Imposta automaticamente lo stato della sessione BrowserStack Automate (passato/fallito).
Tipo: Boolean
Default: true
buildIdentifier
buildIdentifier è un ID unico per differenziare ogni esecuzione che viene aggiunto a buildName. Scegli il formato del tuo buildIdentifier tra le espressioni disponibili:
BUILD_NUMBER
: Genera un contatore incrementale ad ogni esecuzioneDATE_TIME
: Genera un timestamp ad ogni esecuzione. Es. 05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]
Build Identifier supporta l'uso di una o entrambe le espressioni insieme a qualsiasi altro carattere, permettendo opzioni di formattazione personalizzate.
opts
Opzioni BrowserStack Local.
Tipo: Object
Default: {}
Elenco dei modificatori disponibili per i test locali da passare come opts:
Local Identifier
Se si effettuano più connessioni di test locali simultanee, impostalo in modo univoco per processi diversi -
opts = { localIdentifier: "randomstring" };
Verbose Logging
Per abilitare la registrazione dettagliata -
opts = { verbose: "true" };
Nota - I valori possibili per il modificatore 'verbose' sono '1', '2', '3' e 'true'
Force Local
Per instradare tutto il traffico tramite la macchina locale (tua) -
opts = { forceLocal: "true" };
Folder Testing
Per testare la cartella locale anziché il server interno, fornisci il percorso alla cartella come valore di questa opzione -
opts = { f: "/my/awesome/folder" };
Force Start
Per terminare altre istanze di BrowserStack Local in esecuzione -
opts = { force: "true" };
Only Automate
Per disabilitare i test locali per Live e Screenshots e abilitare solo Automate -
opts = { onlyAutomate: "true" };
Proxy
Per utilizzare un proxy per i test locali -
- proxyHost: Hostname/IP del proxy, le altre opzioni proxy vengono ignorate se questa opzione è assente
- proxyPort: Porta per il proxy, predefinita a 3128 quando viene utilizzato -proxyHost
- proxyUser: Nome utente per la connessione al proxy (solo Basic Auth)
- proxyPass: Password per USERNAME, verrà ignorata se USERNAME è vuoto o non specificato
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};
Local Proxy
Per utilizzare un proxy locale nei test locali -
- localProxyHost: Hostname/IP del proxy, le altre opzioni proxy vengono ignorate se questa opzione è assente
- localProxyPort: Porta per il proxy, predefinita a 8081 quando viene utilizzato -localProxyHost
- localProxyUser: Nome utente per la connessione al proxy (solo Basic Auth)
- localProxyPass: Password per USERNAME, verrà ignorata se USERNAME è vuoto o non specificato
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};
PAC (Proxy Auto-Configuration)
Per utilizzare PAC (Proxy Auto-Configuration) nei test locali -
- pac-file: Percorso assoluto del file PAC (Proxy Auto-Configuration)
opts = { "pac-file": "<pac_file_abs_path>" };
Binary Path
Per impostazione predefinita, i wrapper BrowserStack local cercano di scaricare ed eseguire l'ultima versione del binario BrowserStack in ~/.browserstack o nella directory di lavoro corrente o nella cartella tmp in ordine. Ma puoi sovrascrivere questi passando l'argomento -binarypath. Percorso per specificare il percorso binario locale -
opts = { binarypath: "/path/to/binary" };
Logfile
Per salvare i log in un file durante l'esecuzione con l'argomento '-v', puoi specificare il percorso del file. Per impostazione predefinita, i log vengono salvati nel file local.log nella directory di lavoro corrente. Per specificare il percorso del file in cui verranno salvati i log -
opts = { verbose: "true", logFile: "./local.log" };
Per ulteriori informazioni su WebdriverIO visita la homepage.