An open API service indexing awesome lists of open source software.

https://github.com/soblvsk/shri-2023-testing

πŸ§ͺ Testing a website for React.js
https://github.com/soblvsk/shri-2023-testing

playwright testing typescript

Last synced: about 1 month ago
JSON representation

πŸ§ͺ Testing a website for React.js

Awesome Lists containing this project

README

          

# Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅: АвтотСсты

## Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр

УстановитС зависимости

```bash
npm ci
```

Π‘ΠΎΠ±Π΅Ρ€ΠΈΡ‚Π΅ клиСнтский ΠΊΠΎΠ΄ прилоТСния

```bash
npm run build
```

ЗапуститС сСрвСр

```bash
npm start
```

ПослС этого ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎ адрСсу http://localhost:3000/hw/store

## Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов

ЗапуститС `Playwright UI`

```bash
npm run test:e2e:gui
```

ЗапуститС с `BUG_ID` ΠΎΡ‚ 1 Π΄ΠΎ 10

```bash
# Если Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» bash
BUG_ID=1 npm run start

# Если Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΎΡ‚ windows
$env:BUG_ID = '1'; npm run start
```

## ОписаниС

Π’Π°ΠΌ Π΄Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Π³Π°Π·ΠΈΠ½. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Ρ‹.

Π€ΠΎΡ€ΠΊΠ½ΠΈΡ‚Π΅ этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ тСсты, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Ρ… сцСнариСв. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ сцСнарии ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌΠΈ/ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ тСстами, Π½Π° своС усмотрСниС.

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ β€” автотСсты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π±Π°Π³ΠΈ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ β€” Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°Π³ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠ°Π΄Π°Ρ‚ΡŒ нСбольшоС количСство тСстов (Π½Π΅ большС 1-2).

## Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ трСбования

**ΠžΠ±Ρ‰ΠΈΠ΅ трСбования:**

- вёрстка Π΄ΠΎΠ»ΠΆΠ½Π° Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ ΡˆΠΈΡ€ΠΈΠ½Ρƒ экрана
- Π² шапкС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ссылки Π½Π° страницы ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ссылка Π½Π° ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ
- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π² шапкС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ссылкой Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ страницу
- Π½Π° ΡˆΠΈΡ€ΠΈΠ½Π΅ мСньшС 576px Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ мСню Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π·Π° "Π³Π°ΠΌΠ±ΡƒΡ€Π³Π΅Ρ€"
- ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ элСмСнта ΠΈΠ· мСню "Π³Π°ΠΌΠ±ΡƒΡ€Π³Π΅Ρ€Π°", мСню Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ

**Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹:**

- Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ страницы: главная, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, условия доставки, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹
- страницы главная, условия доставки, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ статичСскоС содСрТимоС

**ΠšΠ°Ρ‚Π°Π»ΠΎΠ³:**

- Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹, список ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ с сСрвСра
- для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ отобраТаСтся Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Ρ†Π΅Π½Π° ΠΈ ссылка Π½Π° страницу с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π΅
- Π½Π° страницС с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°, Π΅Π³ΠΎ описаниС, Ρ†Π΅Π½Π°, Ρ†Π²Π΅Ρ‚, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° "Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ"
- Ссли Ρ‚ΠΎΠ²Π°Ρ€ ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ, Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ Π½Π° страницС Ρ‚ΠΎΠ²Π°Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ сообщСниС ΠΎΠ± этом
- Ссли Ρ‚ΠΎΠ²Π°Ρ€ ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ "Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ" Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ количСство
- содСрТимоС ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌΠΈ страницы

**ΠšΠΎΡ€Π·ΠΈΠ½Π°:**

- Π² шапкС рядом со ссылкой Π½Π° ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ количСство Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² Π½Π΅ΠΉ
- Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π² Π½Π΅Π΅ Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ
- для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Ρ†Π΅Π½Π°, количСство , ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ общая сумма Π·Π°ΠΊΠ°Π·Π°
- Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° "ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ", ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ всС Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ
- Ссли ΠΊΠΎΡ€Π·ΠΈΠ½Π° пустая, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ссылка Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

## Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ `bug id`, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 1 Π΄ΠΎ 10. КаТдоС ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ `bug id` добавляСт Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π±Π°Π³. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `bug id` всС тСсты проходят, Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния `bug id` ΠΏΠ°Π΄Π°ΡŽΡ‚ 1-2 тСста.

**ΠŸΡ€ΠΈ использовании Hermione ΠΈ Jest:**

- ΠΏΡ€ΠΈ запускС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… тСстов ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ запроса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, http://localhost:3000/hw/store/catalog/0?bug_id=9
- ΠΏΡ€ΠΈ запускС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния `BUG_ID`, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `BUG_ID=1 npm run test`