You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simplify to one yml, drop Makefile / config / local-mode
Karan's review (#1, #2, #4) pushed back on the per-mode config files
and the Makefile-as-profile-switcher. Aligning with the canonical
cucumber-ruby-browserstack shape (one feature run unchanged):
- Drop Makefile and config/{single,local}.yml — the Python SDK reads
only ./browserstack.yml so the swap was the workaround; aligning
instead means one yml, one command.
- Drop features/local.feature, local-html/, and local_steps.py.
Customers needing the Local tunnel flip browserstackLocal: true and
rerun the same command (documented in README).
- Drop buildIdentifier from browserstack.yml — pure dashboard UX, not
required, and Karan flagged it as noise.
- CI workflow runs browserstack-sdk behave directly (no make targets).
- README pruned to single-mode setup + Running + Local-toggle note.
Copy file name to clipboardExpand all lines: README.md
+15-19Lines changed: 15 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,42 +10,38 @@ This repo shows how to run [behave](https://behave.readthedocs.io/) tests on Bro
10
10
pip install -r requirements.txt
11
11
playwright install chromium
12
12
```
13
-
Or simply: `make install`
14
-
* Set `BROWSERSTACK_USERNAME` and `BROWSERSTACK_ACCESS_KEY` as environment variables, or replace `userName` and `accessKey` directly in `browserstack.yml` (and the variants under `config/`) with your [BrowserStack Username and Access Key](https://www.browserstack.com/accounts/settings). Env vars take precedence.
13
+
* Set `BROWSERSTACK_USERNAME` and `BROWSERSTACK_ACCESS_KEY` as environment variables, or replace `userName` and `accessKey` directly in `browserstack.yml` with your [BrowserStack Username and Access Key](https://www.browserstack.com/accounts/settings). Env vars take precedence.
15
14
16
15
### Running your tests
17
-
* Run tests in parallel across the 3 Playwright browser engines (chromium / firefox / webkit): `make parallel`
18
-
* Run a single-platform test: `make single`
19
-
* Run with the BrowserStack Local tunnel against a local HTTP server: `make local`
16
+
Run the sample in parallel across the 3 Playwright browser engines (chromium / firefox / webkit) declared in `browserstack.yml`:
17
+
18
+
```sh
19
+
browserstack-sdk behave features/sample.feature
20
+
```
20
21
21
22
Understand how many parallel sessions you need by using our [Parallel Test Calculator](https://www.browserstack.com/automate/parallel-calculator?ref=github).
22
23
23
24
Alternatively the variables can be set in the environment using env or your CI framework (like GitHub Actions or Jenkins). See `.github/workflows/build.yml` for a GitHub Actions example — it runs on `workflow_dispatch` (manual trigger) with a commit SHA input and posts a status check back to that commit.
24
25
26
+
### Testing a private host (BrowserStack Local)
27
+
If your app lives on `localhost`, a staging host, or behind a firewall, set `browserstackLocal: true` in `browserstack.yml` and rerun the same command. The SDK starts and stops the BrowserStack Local tunnel for you — no manual binary download or lifecycle management. Then point your scenarios at `http://bs-local.com:<port>/` (a hostname BrowserStack Local resolves to your machine) instead of a public URL.
28
+
25
29
### How the SDK changes things
26
-
-**One `browserstack.yml`** declares platforms; the SDK picks them up automatically — no per-task config switching inside `environment.py`.
30
+
-**One `browserstack.yml`** declares platforms; the SDK picks them up automatically.
27
31
-**The SDK runs platforms in parallel for you** — no hand-rolled parallel runner; the SDK forks one behave run per `(platform × parallelsPerPlatform)` cell.
28
32
-**The SDK monkeypatches Playwright's browser launches** — the test code calls `chromium.launch()` and the SDK transparently routes the launch to the per-platform browser configured in `browserstack.yml` (chromium, firefox, or webkit). No `chromium.connect(wss_url)` plumbing is needed in customer code.
29
-
-**The SDK starts and stops BrowserStack Local** when `browserstackLocal: true` — no manual tunnel lifecycle management.
30
-
-**The CLI is `browserstack-sdk behave …`** — the `make` targets shell out to that.
33
+
-**The CLI is `browserstack-sdk behave …`** — wraps `behave` and injects the SDK at runtime.
0 commit comments