Skip to content

docs(quickstart): some improvements#125

Open
swordqueen wants to merge 10 commits intomasterfrom
users/kseniataranov/DOCORG-6752.quickstart-ideas
Open

docs(quickstart): some improvements#125
swordqueen wants to merge 10 commits intomasterfrom
users/kseniataranov/DOCORG-6752.quickstart-ideas

Conversation

@swordqueen
Copy link
Copy Markdown
Collaborator

No description provided.

kseniataranov added 9 commits March 23, 2026 08:16
- Add links to reference sections for methods (browser.url, browser.openAndWait, $)
- Add examples of different selector types (CSS, text, XPath) with recommendations
- Expand --grep section with regex examples and .only() alternative
- Add tips on selector priority and best practices
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 30, 2026

✅ Successfully deployed static

Copy link
Copy Markdown
Member

@shadowusr shadowusr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В целом все супер. Статья почти готова к влитию. Можно пофиксить минорные замечания ниже и вливать. Я ок поставил

⚠️ Не забыть синкнуть изменения в английскую версию

},
},

prepareBrowser: (browser: WdioBrowser) => {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Функция setupBrowser нигде не объявлена и не понятно, что она делает, если не прочесть описание ниже.

Если она у нас включается в проекте по умолчанию, надо оставить импорт. Если в шаблонном проекте ее нет, можно и тут не указывать

- `pageLoadTimeout` — максимальное время ожидания загрузки страницы.
- `browsers` — конфигурация для каждого браузера. Параметр `headless: true` запускает браузер в фоновом режиме без графического интерфейса. Подробнее в разделе [Браузеры](../basic-guides/managing-browsers.mdx).
- `prepareBrowser` — хук для настройки браузера перед запуском тестов. В конфиге по умолчанию вызывает `setupBrowser(browser)`, который добавляет методы Testing Library к объекту браузера и элементам, позволяя сразу использовать семантические запросы в тестах.
- `plugins` — подключаемые модули. `html-reporter` — инструмент для просмотра результатов тестов в браузере. Предоставляет интерактивные отчеты со скриншотами, логами и возможностями отладки. Подробнее в разделе [HTML Reporter](../html-reporter/overview.mdx).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно чууууточку более кратко =)

  • gridUrl — где запускать браузеры: "local" для локального запуска или URL Selenium Grid / облака (например, BrowserStack, Sauce Labs).
  • sets — группы тестов для разных браузеров (например, пак для десктоп Chrome/Firefox и пак для мобильного Safari). Подробнее: справочник по sets.
  • testTimeout — максимальное время выполнения теста (мс), после превышения тест прерывается.
  • pageLoadTimeout — максимальное время ожидания загрузки страницы.
  • browsers — конфигурация браузеров; headless: true — запуск без UI. Подробнее: Браузеры.
  • prepareBrowser — хук перед тестами; в конфиге выше — вызывает setupBrowser(browser) и добавляет методы Testing Library.
  • plugins — плагины; в конфиге выше — html-reporter для интерактивных отчетов (скриншоты, логи, отладка). Подробнее: HTML Reporter.
Markdown
- `gridUrl` — где запускать браузеры: "local" для локального запуска или URL Selenium Grid / облака (например, BrowserStack, Sauce Labs).
- `sets` — группы тестов для разных браузеров (например, пак для десктоп Chrome/Firefox и пак для мобильного Safari). Подробнее: [справочник по sets](https://github.com/gemini-testing/testplane-docs/pull/reference/config/sets.mdx).
- `testTimeout` — максимальное время выполнения теста (мс), после превышения тест прерывается.
- `pageLoadTimeout` — максимальное время ожидания загрузки страницы.
- `browsers` — конфигурация браузеров; `headless: true` — запуск без UI. Подробнее: [Браузеры](https://github.com/gemini-testing/testplane-docs/pull/basic-guides/managing-browsers.mdx).
- `prepareBrowser` — хук перед тестами; в конфиге выше — вызывает `setupBrowser(browser)` и добавляет методы Testing Library.
- `plugins` — плагины; в конфиге выше — html-reporter для интерактивных отчетов (скриншоты, логи, отладка). Подробнее: [HTML Reporter](https://github.com/gemini-testing/testplane-docs/pull/html-reporter/overview.mdx).

Total: 2 Passed: 2 Failed: 0 Skipped: 0 Retries: 0
```

### Возможные проблемы
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы не делал этот блок. Можно супер кратко в разделе ожидаемого результата написать, что тестам нужен доступ к testplane.io для успешного прохождения.

```

Команда `await browser.openAndWait()` по умолчанию дожидается загрузки всех необходимых элементов на странице.
Для ожидания загрузки страницы используйте [`browser.openAndWait()`](../commands/browser/openAndWait.mdx):
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай, наверное, тут оставим пример только с url. А openAndWait упомянем просто кратко текстом — "Для перехода на страницу можно также использовать команду openAndWait, которая поддерживает больше настроек, связанных с загрузкой статики на странице."

А то новому пользователю даем 2 почти одинаковых способа, любой запутается. В будущем думаю мы смержим эти команды в 1.


```javascript
const assert = require("assert");
1. Data-атрибуты (`[data-testid="..."]`) — самый надежный способ
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут потерялся способ поиска по тексту элемента и другим user-facing штукам, которые мы рекомендуем в статье про селекторы

Вообще, я бы вернул краткую формулировку, что есть такие-то способы поиска элементов и сослался на статью про селекторы, где есть прям почти такой же раздел с рекомендациями и приоритетами использования, а то получается дублирование

// Этот код выполнится только после выхода из debug()
await browser.$(".button").click();
});
```
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это команда browser.debug(), но вообще под REPL мы традиционно понимаем еще --repl-before-test и связанные опции, а также команда browser.switchToRepl(). Думаю, стоит их тут упомянуть


Полезно для проверки DOM, cookies или localStorage после выполнения теста.

## Что делать, если тест упал
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Имхо, слишком общие рекомендации... тест упал в CI => увеличиваем тайм-ауты вообще плохой совет.
Я бы наверное убрал эту секцию. Мы рассказали про инструменты отладки, дальше уже если тест упал надо ими просто пользоваться =)

npx testplane --keep-browser-on-fail # только при падении
```

Полезно для проверки DOM, cookies или localStorage после выполнения теста.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут еще можно подсветить хороший кейс использования — в связке с MCP, чтобы AI-агент подключился к уже подготовленному браузеру (например, после залогина средствами testplane).


Подробнее о GUI читайте в разделе [HTML Reporter](../html-reporter/overview.mdx).

### Фильтрация тестов
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай унесем это на уровень выше чтобы было:

## Фильтрация тестов при запуске

### По имени

Мотивация: чтобы подразделы появились в структуре статьи справа (там отображаются только заголовки до 3 уровня)


```javascript
const assert = require("assert");
![Интерфейс Testplane GUI](/img/docs/guides/testplane-gui.png)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


У вас имеется набор тестов, и вам нужно запустить только один из них.
- Наблюдать выполнение тестов в реальном времени
- Просматривать скриншоты и сравнивать их
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

еще из отчета можно обновлять скриншоты


### Запуск тестов в конкретных браузерах
```bash
npx testplane --grep "поиск|навигация"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я не совсем понял здесь слово "навигация", которое не матчится ни на один из тестов в примере. Я бы здесь ожидал увидеть "поиска|заголовка", что покажет как можно сматчиться сразу на 2 теста

# Запуск во всех браузерах (по умолчанию)
testplane
npx testplane --tag "smoke" # только smoke-тесты
npx testplane --tag "auth & smoke" # тесты с обоими тегами
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

правильно писать слитно auth&smoke

```

Чтобы выполнить тесты в конкретном браузере, используйте команду:
#### По браузеру
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

здесь можно добавить, что опцию можно указывать несколько раз для запуска в нескольких браузерах. Например, npx testplane -b chrome -b firefox


## Отладка
```bash
npx testplane --local --devtools --grep "Название теста"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в этом примере нет ничего про headless. Для отключения headless-режима нужно или в конфиге браузера указать headless: true, или запустить тест с такой же cli-опцией npx testplane --headless false (или --browsers-chrome-headless false, если эта опция уазана на уровне браузера). Опция --local здесь включает именно использование локального браузера, а devtools указывает на протокол взаимодействия с браузером. Но за отображение браузера отвечает только опция headless

ps: если пользователь попробует выполнить эту команду на нашем тестовом проекте, то он вообще получит ошибку для браузера Firefox, т.к. в этом браузере нет поддержки devtools. Т.е. тест сможет выполниться (всё еще в headless-режиме) только в Chrome

### Локальный браузер с DevTools

О процессах установки и настройки Testplane UI вы можете прочитать в разделе [UI.](..//html-reporter//overview.mdx)
По умолчанию Testplane запускает браузер в headless-режиме (без окна). Для отладки можно открыть видимое окно браузера с DevTools:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По умолчанию Testplane запускает браузер в headless-режиме (без окна)

только при условии, если проект был настроен через наш визард npm init testplane@latest, т.к. мы там явно в конфиге выставляем эту опцию:

browsers: {
    chrome: {
        headless: true,
        desiredCapabilities: {
            browserName: "chrome"
        }
    },
    firefox: {
        headless: true,
        desiredCapabilities: {
            browserName: "firefox"
        }
    }
},

если пользователь будет вручную настраивать проект, то такой опции там не будет

npx testplane --browser chrome

# Отладка с DevTools
npx testplane --local --devtools --grep "название теста"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--local указывать не обязательно

# Запуск только в одном браузере
npx testplane --browser chrome

# Отладка с DevTools
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тут важно подчеркнуть, что это именно протокол devtools (чтобы не путали с интерфейсом дебага в хроме)

const menuItems = await browser.$$("nav.navbar a.navbar__item");
assert.ok(menuItems.length > 0);
});
// CSS-селекторы (рекомендуется)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

почему здесь рекомендуется именно css-селектор?

describe("Типы селекторов", () => {
it("CSS-селекторы", async ({ browser }) => {
// Рекомендуется: data-атрибуты (стабильны, не зависят от верстки)
const button = await browser.$('[data-testid="submit-button"]');
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я бы тут (и в остальных местах) показывал сразу 2 варианта поиска — текущий и browser.findByTestId()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants