Hoppa till huvudinnehåll

Browserstack Service

En WebdriverIO-tjänst som hanterar lokal tunnel och jobbmetadata för BrowserStack-användare.

Installation

Det enklaste sättet är att behålla @wdio/browserstack-service som en devDependency i din package.json, via:

npm install @wdio/browserstack-service --save-dev

Instruktioner om hur man installerar WebdriverIO finns här.

Konfiguration

WebdriverIO har inbyggt stöd för BrowserStack. Du bör ställa in user och key i din wdio.conf.js-fil. Detta tjänstplugin ger stöd för BrowserStack Tunnel. Ställ även in browserstackLocal: true för att aktivera denna funktion. Rapporteringen av sessionsstatus på BrowserStack kommer att respektera inställningen strict i Cucumber-alternativen.

// 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
}]
],
// ...
};

Alternativ

För att få åtkomst till BrowserStack-tjänsten måste din konfiguration innehålla alternativen user och key.

testObservability

Test Observability är ett avancerat testrapporteringsverktyg som ger insikter för att förbättra dina automatiserade tester och hjälper dig att felsöka snabbare. Det är aktiverat som standard genom att sätta flaggan testObservability​ till true för alla användare av browserstack-service. Du kan inaktivera detta genom att sätta flaggan testObservability​ till false.

När dina tester är färdiga kan du besöka Test Observability för att felsöka dina byggen med ytterligare insikter som unik felanalys, automatisk upptäckt av instabila tester och mer.

Du kan använda Test Observability även om du inte kör dina tester på BrowserStack-infrastrukturen. Även om du kör dina tester på en CI, en lokal maskin eller till och med på andra molntjänstleverantörer, kan Test Observability fortfarande generera intelligenta testrapporter och avancerad analys av dina tester.

Om du vill använda Test Observability utan att köra dina tester på BrowserStack-infrastrukturen kan du ställa in din konfiguration enligt följande:

// 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"
}
}]
],
// ...
};

Du kan utforska alla funktioner i Test Observability i denna sandbox eller läsa mer om det här.

browserstackLocal

Ställ in detta till true för att aktivera routning av anslutningar från BrowserStack-molnet genom din dator.

Typ: Boolean
Standard: false

forcedStop

Ställ in detta till true för att avsluta BrowserStack Local-processen vid slutförande, utan att vänta på att BrowserStack Local stoppåteruppringning ska anropas. Detta är experimentellt och bör inte användas av alla. Mest nödvändigt som en lösning för detta problem.

Typ: Boolean
Standard: false

app

Appium ställ in detta med app-filsökvägen som är tillgänglig lokalt på din maskin för att använda appen som applikation under test för Appium-sessioner.

Typ: String eller JsonObject
Standard: undefined

Lista över tillgängliga app-värden:

path

Använd lokalt tillgänglig app-filsökväg som en applikation under test för Appium.

services: [
['browserstack', {
app: '/path/to/local/app.apk'
// OR
app: {
path: '/path/to/local/app.apk'
}
}]
]

Skicka custom_id under app-uppladdningen.

services: [
['browserstack', {
app: {
path: '/path/to/local/app.apk',
custom_id: 'custom_id'
}
}]
]

id

Använd app-URL:en som returneras efter att ha laddat upp appen till BrowserStack.

services: [
['browserstack', {
app: 'bs://<app-id>'
// OR
app: {
id: 'bs://<app-id>'
}
}]
]

custom_id

använd custom_id för redan uppladdade appar

services: [
['browserstack', {
app: 'custom_id'
// OR
app: {
custom_id: 'custom_id'
}
}]
]

shareable_id

använd shareable_id för redan uppladdade appar

services: [
['browserstack', {
app: 'username/custom_id'
// OR
app: {
shareable_id: 'username/custom_id'
}
}]
]

preferScenarioName

Endast Cucumber. Ställ in BrowserStack Automate-sessionsnamnet till Scenario-namnet om endast ett enda Scenario körs. Användbart när man kör parallellt med wdio-cucumber-parallel-execution.

Typ: Boolean
Standard: false

sessionNameFormat

Anpassa formatet för BrowserStack Automate-sessionsnamnet.

Typ: Function
Standard (Cucumber/Jasmine): (config, capabilities, suiteTitle) => suiteTitle
Standard (Mocha): (config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle

sessionNameOmitTestTitle

Endast Mocha. Lägg inte till testtiteln till BrowserStack Automate-sessionsnamnet.

Typ: Boolean
Standard: false

sessionNamePrependTopLevelSuiteTitle

Endast Mocha. Lägg till titeln på sviten på toppnivå till BrowserStack Automate-sessionsnamnet.

Typ: Boolean
Standard: false

setSessionName

Ställ automatiskt in BrowserStack Automate-sessionsnamnet.

Typ: Boolean
Standard: true

setSessionStatus

Ställ automatiskt in BrowserStack Automate-sessionsstatus (godkänd/misslyckad).

Typ: Boolean
Standard: true

buildIdentifier

buildIdentifier är ett unikt ID för att skilja varje körning som läggs till i buildName. Välj ditt buildIdentifier-format från de tillgängliga uttrycken:

  • BUILD_NUMBER: Genererar en inkrementell räknare med varje körning
  • DATE_TIME: Genererar en tidsstämpel med varje körning. T.ex. 05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]

Build Identifier stöder användning av antingen ett eller båda uttrycken tillsammans med andra tecken vilket möjliggör anpassade formateringsalternativ.

opts

BrowserStack Local-alternativ.

Typ: Object
Standard: {}

Lista över tillgängliga modifierare för lokal testning som ska skickas som alternativ:

Local Identifier

Om du gör flera samtidiga lokala testanslutningar, ställ in detta unikt för olika processer -

opts = { localIdentifier: "randomstring" };

Verbose Logging

För att aktivera detaljerad loggning -

opts = { verbose: "true" };

Obs - Möjliga värden för modifieraren 'verbose' är '1', '2', '3' och 'true'

Force Local

För att dirigera all trafik via lokal (din) maskin -

opts = { forceLocal: "true" };

Folder Testing

För att testa lokal mapp istället för intern server, ange sökväg till mapp som värde för detta alternativ -

opts = { f: "/my/awesome/folder" };

Force Start

För att avsluta andra körande BrowserStack Local-instanser -

opts = { force: "true" };

Only Automate

För att inaktivera lokal testning för Live och Screenshots, och aktivera endast Automate -

opts = { onlyAutomate: "true" };

Proxy

För att använda en proxy för lokal testning -

  • proxyHost: Värdnamn/IP för proxy, övriga proxyalternativ ignoreras om detta alternativ saknas
  • proxyPort: Port för proxyn, standardvärdet är 3128 när -proxyHost används
  • proxyUser: Användarnamn för anslutning till proxy (endast Basic Auth)
  • proxyPass: Lösenord för USERNAME, ignoreras om USERNAME är tomt eller inte angivet
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};

Local Proxy

För att använda lokal proxy i lokal testning -

  • localProxyHost: Värdnamn/IP för proxy, övriga proxyalternativ ignoreras om detta alternativ saknas
  • localProxyPort: Port för proxyn, standardvärdet är 8081 när -localProxyHost används
  • localProxyUser: Användarnamn för anslutning till proxy (endast Basic Auth)
  • localProxyPass: Lösenord för USERNAME, ignoreras om USERNAME är tomt eller inte angivet
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};

PAC (Proxy Auto-Configuration)

För att använda PAC (Proxy Auto-Configuration) i lokal testning -

  • pac-file: PAC (Proxy Auto-Configuration) filens absoluta sökväg
opts = { "pac-file": "<pac_file_abs_path>" };

Binary Path

Som standard försöker BrowserStack lokala wrappers ladda ner och köra den senaste versionen av BrowserStack-binären i ~/.browserstack eller den nuvarande arbetskatalogen eller tmp-mappen i ordningsföljd. Men du kan åsidosätta dessa genom att skicka argumentet -binarypath. Sökväg för att ange lokal binär sökväg -

opts = { binarypath: "/path/to/binary" };

Logfile

För att spara loggarna till filen medan du kör med '-v'-argumentet kan du ange filens sökväg. Som standard sparas loggarna i filen local.log i den nuvarande arbetskatalogen. För att ange sökvägen till filen där loggarna ska sparas -

opts = { verbose: "true", logFile: "./local.log" };

För mer information om WebdriverIO, se hemsidan.

Welcome! How can I help?

WebdriverIO AI Copilot