Zum Hauptinhalt springen

Testausführungszeit

Standardmäßig prüft dieses Modul, ob Sie eine lokale Installation von Tesseract auf Ihrem Gerät/in Ihrer Pipeline haben. Wenn Sie keine lokale Installation haben, wird automatisch eine NodeJS-Version verwendet. Dies kann zu Verlangsamungen führen, da die Bildverarbeitung von Node.js durchgeführt wird. NodeJS ist nicht das beste System für umfangreiche Verarbeitungsprozesse.

ABER..., es gibt Möglichkeiten, die Ausführungszeit zu optimieren. Nehmen wir das folgende Testskript:

import { browser } from "@wdio/globals";

describe("Search", () => {
it("be able to search for a value", async () => {
await browser.url("https://webbrowser.io");
await browser.ocrClickOnText({
text: "Search",
});
await browser.ocrSetValue({
text: "docs",
value: "specfileretries",
});
await browser.ocrWaitForTextDisplayed({
text: "specFileRetries",
});
});
});

Wenn Sie dies zum ersten Mal ausführen, sehen Sie möglicherweise die folgenden Ergebnisse, bei denen der Test 5,9 Sekunden bis zum Abschluss benötigte.

npm run wdio -- --logLevel=silent

> ocr-demo@1.0.0 wdio
> wdio run ./wdio.conf.ts --logLevel=silent


Execution of 1 workers started at 2024-05-26T04:52:53.405Z

[0-0] RUNNING in chrome - file:///test/specs/test.e2e.ts
[0-0] Estimating resolution as 182
[0-0] Estimating resolution as 124
[0-0] Estimating resolution as 126
[0-0] PASSED in chrome - file:///test/specs/test.e2e.ts

"spec" Reporter:
------------------------------------------------------------------
[chrome 125.0.6422.78 mac #0-0] Running: chrome (v125.0.6422.78) on mac
[chrome 125.0.6422.78 mac #0-0] Session ID: d281dcdc43962b95835aea8f64cab6c7
[chrome 125.0.6422.78 mac #0-0]
[chrome 125.0.6422.78 mac #0-0] » /test/specs/test.e2e.ts
[chrome 125.0.6422.78 mac #0-0] Search
[chrome 125.0.6422.78 mac #0-0] ✓ be able to search for a value
[chrome 125.0.6422.78 mac #0-0]
[chrome 125.0.6422.78 mac #0-0] 1 passing (5.9s)


Spec Files: 1 passed, 1 total (100% completed) in 00:00:08

Zuschneiden des Suchbereichs eines Bildschirms

Sie können die Ausführungszeit optimieren, indem Sie einen zugeschnittenen Bereich für die OCR-Ausführung angeben.

Wenn Sie das Skript wie folgt ändern würden:

import { browser } from "@wdio/globals";

describe("Search", () => {
it("be able to search for a value", async () => {
await browser.url("https://webdriver.io");
await driver.ocrClickOnText({
haystack: $(".DocSearch"),
text: "Search",
});
await driver.ocrSetValue({
haystack: $(".DocSearch-Form"),
text: "docs",
value: "specfileretries",
});
await driver.ocrWaitForTextDisplayed({
haystack: $(".DocSearch-Dropdown"),
text: "specFileRetries",
});
});
});

Dann werden Sie eine andere Ausführungszeit sehen.

npm run wdio -- --logLevel=silent

> ocr-demo@1.0.0 wdio
> wdio run ./wdio.conf.ts --logLevel=silent


Execution of 1 workers started at 2024-05-26T04:56:55.326Z

[0-0] RUNNING in chrome - file:///test/specs/test.e2e.ts
[0-0] Estimating resolution as 182
[0-0] Estimating resolution as 124
[0-0] Estimating resolution as 124
[0-0] PASSED in chrome - file:///test/specs/test.e2e.ts

"spec" Reporter:
------------------------------------------------------------------
[chrome 125.0.6422.78 mac #0-0] Running: chrome (v125.0.6422.78) on mac
[chrome 125.0.6422.78 mac #0-0] Session ID: c6cb1843535bda3ee3af07920ce232b8
[chrome 125.0.6422.78 mac #0-0]
[chrome 125.0.6422.78 mac #0-0] » /test/specs/test.e2e.ts
[chrome 125.0.6422.78 mac #0-0] Search
[chrome 125.0.6422.78 mac #0-0] ✓ be able to search for a value
[chrome 125.0.6422.78 mac #0-0]
[chrome 125.0.6422.78 mac #0-0] 1 passing (4.8s)


Spec Files: 1 passed, 1 total (100% completed) in 00:00:08
Bilder zuschneiden

Dies reduzierte die lokale Ausführungszeit von 5,9 auf 4,8 Sekunden. Das ist eine Reduzierung um fast 19%. Stellen Sie sich vor, was es für ein größeres Skript mit mehr Daten bewirken kann.

Verwendung einer lokalen Installation von Tesseract

Sie können Ihre Ausführungszeit auf weniger als eine Minute verkürzen, wenn Sie eine lokale Installation von Tesseract auf Ihrem lokalen Gerät und/oder in Ihrer Pipeline haben (weitere Informationen zur Installation von Tesseract auf Ihrem lokalen System finden Sie hier). Unten finden Sie die Ausführungszeit desselben Skripts mit einer lokalen Installation von Tesseract.

npm run wdio -- --logLevel=silent

> ocr-demo@1.0.0 wdio
> wdio run ./wdio.conf.ts --logLevel=silent


Execution of 1 workers started at 2024-05-26T04:59:11.620Z

[0-0] RUNNING in chrome - file:///test/specs/test.e2e.ts
[0-0] PASSED in chrome - file:///test/specs/test.e2e.ts

"spec" Reporter:
------------------------------------------------------------------
[chrome 125.0.6422.78 mac #0-0] Running: chrome (v125.0.6422.78) on mac
[chrome 125.0.6422.78 mac #0-0] Session ID: 87f8c1e949e15a383b902e4d59b1f738
[chrome 125.0.6422.78 mac #0-0]
[chrome 125.0.6422.78 mac #0-0] » /test/specs/test.e2e.ts
[chrome 125.0.6422.78 mac #0-0] Search
[chrome 125.0.6422.78 mac #0-0] ✓ be able to search for a value
[chrome 125.0.6422.78 mac #0-0]
[chrome 125.0.6422.78 mac #0-0] 1 passing (3.9s)


Spec Files: 1 passed, 1 total (100% completed) in 00:00:06
Lokale Installation

Dies reduzierte die lokale Ausführungszeit von 5,9 auf 3,9 Sekunden. Das ist eine Reduzierung um fast 34%. Stellen Sie sich vor, was es für ein größeres Skript mit mehr Daten bewirken kann.

Welcome! How can I help?

WebdriverIO AI Copilot