3 класс

Тест по окружающий мир 3 класс: ГДЗ Окружающий мир 3 класс Плешаков, Гара, Назарова

Содержание

Тест по окружающему миру по теме » Наша безопасность», 3 класс.

Рекомендации по проверке теста.
DOCX / 12.81 Кб

Всероссийский конкурс педагогического мастерства для учителей начальных классов «Контрольная работа в формате теста для учащихся 1-4 классов»

Вводная часть

Предмет: окружающий мир.

Класс: 3

Тема: «Наша безопасность».

Контрольно- измерительный материал

ИНСТРУКЦИЯ ДЛЯ УЧАЩИХСЯ

На выполнение работы отводится 40 минут.

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

В некоторых заданиях потребуется выбрать несколько верных ответов. Внимательно читай текст заданий.

В работе будут задания, ответ на которые необходимо записать в указанном месте.

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

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

Желаем успеха!

1. Кто такой пешеход?

А) человек, производящий работу на дороге;

Б) лицо, идущее по тротуару;

В) лицо, находящееся в транспортном средстве.

2. Найди неверное утверждение

А) автобус надо ждать на краю остановки;

Б) дорогу можно переходить на зеленый сигнал светофора;

В) дорогу можно переходить, если все машины затормозили.

3. С какого возраста можно выезжать на велосипеде на проезжую часть?

А) 12 лет;

Б) 14 лет;

В) 16 лет.

4. Как называется участок дороги, где можно переходить проезжую часть?

А) пешеходный переход;

Б) пешеходная дорожка;

В) островок безопасности.

5. В каком случае верно указаны все номера телефонов?

А) пожарная охрана -01, аварийная газовая служба -04, скорая помощь- 03;

Б) пожарная охрана -02, аварийная газовая служба -04, скорая помощь- 07;

В) пожарная охрана -01, аварийная газовая служба -03, скорая помощь- 04;

Г) пожарная охрана -01, аварийная газовая служба -05, скорая помощь- 03?

6. Определи и запиши, к какой группе относится каждый знак.

Запрещающие знаки:___________

Предупреждающие знаки:_____________

Предписывающие знаки:__________

Информационно- указательные:________________

7. В каком ряду знаки подписаны правильно?

А) «Дети», «Въезд запрещен», «Пешеходный переход»;

Б) «Переход запрещен», «Въезд запрещен», «Пешеходный переход»;

В) «Переход запрещен», «Уступите дорогу», «Дети»;

8. Кто выбрал подходящее место для сбора грибов?

9. Как вести себя, чтобы качели не стали опасными?

А) не подходить к ним близко

Б) качаться по несколько человек

В) сильно раскачивать качели

Г) прыгать с качелей

10. Какой знак напоминает о том, чего нельзя делать при утечке газа?

11. Что можно делать на балконе?

А) свешиваться через перила;

Б) Сидеть на перилах;

В) читать книгу;

Г) играть в мяч.

12. Бледная поганка – это съедобный гриб.

А) Да

Б) Нет

13. Какие растения несъедобные?

А) волчье лыко;

Б) щавель;

В) земляника;

Г) белена;

Д) дурман;

Е) голубика;

14. Какое животное в лесу может быть опасным?

А) змея;

Б) ёж;

В) лягушка;

Г) муравей.

15. Гроза опасна те, что может________________________________.

16. Как защищаться от загрязненной воды?

А) устанавливать дома фильтры для воды;

Б) стараться меньше пить;

В) пить только кипяченую воду;

Г) чаще мыть руки.

17. Что нужно делать, если в доме прорвало трубу.

А) вызывать водопроводчика;

Б) перекрывать вентиль;

В) устранять утечку самому;

Г) звонить родителям;

18. Какие ребята выбрали неподходящие места для игры?

19. Чего нельзя делать, если ты пассажир?

А) прислоняться к дверям в общественном транспорте;

Б) держаться за поручни;

В) уступать место старшим;

Г) трогать оставленные без присмотра вещи.

20. Чего нельзя делать, если неожиданно остановилась кабина лифта?

А) постараться открыть дверь и выйти;

Б) попрыгать, чтобы кабина пришла в движение;

В) нажимать по очереди разные кнопки;

Г) нажать кнопку «Вызов диспетчера».

Правильные ответы:

Б

А

Б

А

А

Запрещающие знаки: Б

Предупреждающие знаки: А

Предписывающие знаки: В

Информационно- указательные: Г

А

Г

А

Г

В

Б

А,Г ,Д

А

может ударить молния

А

А,Б ,Г

Б

А,Г

А,Б ,В

Окружающий мир. 3 класс. Тест по теме «Здоровый образ жизни»

ТЕСТ

Здоровый
образ жизни

1
вариант                                                   

1. Что не входит в правила здорового
образа жизни?

А)  соблюдение чистоты
Б)  правильное питание
В)  компьютерные игры

2.Когда правила сохранения и
укрепления здоровья приносят настоящую пользу?

А)  когда их делают от случая к случаю
Б)  когда их выполняют регулярно
В)  когда ими хвастаются

3.Подумай, к чему
приводят вредные привычки.

А)  к уважению
окружающих
Б)  к замедлению роста организма
В)  к интересному проведению времени

4.Какая из привычек не вредная?

А)  курение
Б)  употребление спиртного
В)  утренняя зарядка

5.Обозначь, какое
питание можно назвать  «здоровым».

А)  регулярное
Б)  богатое сладостями
В)  богатое овощами и фруктами

6.Что важно делать при здоровом образе
жизни?

А)  сочетать труд и отдых
Б)  постоянно сидеть дома, оберегая себя от столкновения с бактериями
В)  мало двигаться, сохраняя энергию

7. Почему надо чаще
мыть руки?

А)  Чтобы не заболеть

Б)  Чтобы не расстраивать родителей

В)  Чтобы руки были красивыми

8. Выбери, с помощью чего не закаливаются

А)  солнце             

Б)  воздух              

В)  ветер            

Г)  вода

9.Отметь верные ответы:

А)  организму для роста и
развития не требуются  витамины

Б)  чтобы не болеть, нужно
соблюдать режим дня

В)  для здоровья полезно есть
жареную пищу

10.Что вредит здоровью?

А)  утренняя зарядка
Б)  игры на свежем воздухе

В)  долгое просиживание у компьютера

 

2
вариант                                                    

1. Что нужно делать,
чтобы реже простужаться?

А)  много есть

Б)  закаляться

В)  тепло одеваться

2. Что относится к
правилам здорового образа жизни?

А)  курение

Б)  обильное питание

В)  занятие спортом

3. Какое питание
считается здоровым?

А)  разнообразное

Б)  всухомятку

В)  второпях

4. Что может стать
причиной инфекционных болезней?

А)  грязные руки

Б)  вещи больного

В)  испорченная пища

5. Что значит вести
здоровый образ жизни?

А)  пить много лекарств

Б)  читать книги о здоровом образе жизни

В)  выполнить правила здорового образа жизни

6.Что полезно для закаливания?

А)  стоять под дождём

Б)  перед сном мыть ноги прохладной
водой

В)  долго купаться в холодной воде

7.Вести здоровый образ жизни – это
значит:

А)  соблюдать чистоту

Б)  много двигаться

В)  подолгу сидеть у компьютера

Г)  правильно питаться

8.Что нужно делать, чтобы стать
сильнее?

А)  кататься на лыжах

Б)  плавать

В)  есть сдобные сладкие булочки

9.Отметь верные
высказывания:

А)  организму для роста и
развития не требуются  витамины

Б)  чтобы не болеть, нужно
соблюдать режим дня

В)  для здоровья полезно есть
жареную пищу

10. Инфекционные болезни возникают
из-за:

А)  нарушения режима дня

Б)  плохой осанки

В)  заражения болезнетворными бактериями
или вирусами

 

 

 

 

 

 

 

 

 

 

 

 

 


 

Тест. Человек. (Окружающий мир, 3 класс)

Окружающий мир 3 класс
УМК «Школа России»
Тест №2
Работу выполнила:
учитель начальных классов
МОУ СОШ №1 г. Камешково
Владимирской области
Курова Татьяна Владимировна
Все вопросы и задания разделены на три уровня
сложности: уровень А – базовый, уровень В – средней
сложности, уровень С – повышенной сложности. Задания
уровней А и В предполагают один верный ответ, в заданиях
уровня С может быть как один, так и несколько правильных
ответов.
Рекомендации по оцениванию результатов:
Каждое верно выполненное задание уровня А оценивается
в 1 балл,
уровня В – в 2 балла,
уровня С – в 3 балла.
80 – 100% — оценка «5»;
60 – 80% — оценка «4»;
40 – 60% — оценка «3»;
0 — 40% — оценка «2».
А1
Что отличает человека от
других живых существ?
1. движение
3. дыхание
2. рост
4. разум
А2
Какой орган у человека особенно развит
по сравнению с другими организмами?
1. сердце
3. головной
мозг
2. желудок
4. лёгкие
А3
Что не относится к внутреннему
миру человека?
1. чувства
3. возраст
2. настроение
4. характер
А4
Какие органы позволяют человеку
воспринимать окружающий мир?
1. органы
дыхания
3. органы
пищеварения
2. органы
чувств
4. органы
кровообращения
В1
Что помогает человеку
накапливать свои знания о мире?
1. память
3. восприятие
2.
воображение
4. внутренний
мир
В2
Что позволяет делать мышление?
1.
запоминать
3.
представлять
2.
делать выводы
4.
чувствовать
С1
Что помогает человеку
познавать окружающий мир?
1. восприятие
3. память
2. мышление
4. переживания
Ключ к тесту:
А1
А2
А3
А4
В1
В2
С1
4
3
3
2
1
2
1,2,3
1б.
1б.
1б.
1б.
2б.
2б.
3б.

Тест «Мы и наше здоровье»


Фамилия_____________________________________     Дата__________________________


 


1.Какая наука занимается изучением строения тела человека?


а) физиология              б) анатомия                в) гигиена                       г) медицина


 


2.Отметь только внутренний орган человека.


а) рука                    б) печень                  в) нос                         г) стопа


 


3. Укажи орган, который способен воспринимать звуковые волны.


а) ухо                          б) нос                            в) кожа                                г) глаз


 


4.Какие органы образуют дыхательную систему?


а) носовая полость, трахея, бронхи, лёгкие.                        б) скелет, мышцы


в) головной мозг, спинной мозг, нервы.                              г) почки, мочеточники, мочевой пузырь


 


5.Какие органы образуют опорно-двигательную систему?


а) носовая полость, трахея, бронхи, лёгкие.                  б) скелет, мышцы


в) головной мозг, спинной мозг, нервы.                        г) почки, мочеточники, мочевой пузырь


 


6. Перечислите части тела человека


а) Голова, позвоночник, туловище, руки, ноги.


б)  Голова, глаза, уши, нос, рот, туловище, руки, ноги.


в) Голова, туловище, руки, ноги.


 


7. Какова роль скелета человека?


а)  приводит в движение мышцы;                  б) защищает внутренние органы от повреждений;


в) является опорой тела человека.


 


8. Орган, расположенный внутри черепа называется…


а) печень;            б)спинной мозг;                        в)головной мозг;                     г)сердце.


 


9К какой системе органов относится мозг?


А)К пищеварительной         б) К кровеносной                в)К нервной         г)К органам  дыхания


 


10 Какой орган защищает внутреннюю часть тела от повреждений, холода, бактерий?


а)Скелет                 б)Мышцы                      в)Кожа                  г)Живот


 


11. Какую роль играет выделение кожей пота?


а) Охлаждает тело      б) Загрязняет кожу


в) Очищает кожу        г) Смазывает кожу


 


12.Как называется система органов, которую образуют сердце и кровеносные сосуды?


А) Кровеносная        б)Дыхательная          в)Пищеварительная             г)Опорно-двигательная


 


13. Какой орган состоит из маленьких пузырьков?


а) Легкие         б) Печень                в) Сердце                   г)  Желудок


 


14. Органом осязания является:


а) Легкие                   б) Кожа                      в) Желудок                 г) Печень


 


15. Что нужно для развития твоего организма?


а) чипсы, семечки.                                 б) витамины, вода, минеральные соли, белки.


в) таблетки, газированный сок

125 Простые вопросы общего характера 3 класса с ответами

Дети достаточно наблюдательны в отношении того, что их окружает. Они склонны извлекать крошечные уроки из своего окружения. Вы также можете поделиться некоторыми вопросами GK для класса 3, чтобы помочь вашему ребенку быть в курсе различных предметов и улучшить свои знания.

Общие знания об окружающем мире также могут повысить их уверенность в себе. Кроме того, это может помочь им легче общаться и побудить их участвовать в викторинах.

В этом посте мы собрали несколько вопросов GK класса 3 с субъективными вопросами по естествознанию, истории, географии, обществоведению, математике и космосу.

125 GK Вопросы для класса 3

Мы разделили вопросы на различные подтемы. Вы можете выбрать тему в соответствии с интересами вашего ребенка и использовать вопросы для улучшения его общего знания.

Космос

  1. Как называется естественный спутник Земли?
    Ответ: Луна
  2. Какую планету также называют Красной планетой?
    Ответ: Марс
  3. Какая самая большая планета в Солнечной системе ?
    Ответ: Юпитер
  4. Какая планета ближе всего к Солнцу?
    Ответ: Меркурий
  5. Какая самая горячая планета в Солнечной системе ?
    Ответ: Венера
  6. Какая самая маленькая планета Солнечной системы?
    Ответ: Меркурий
  7. День какой планеты длиннее года?
    Ответ: Венера
  8. Ганимед — самый большой спутник какой планеты?
    Ответ: Юпитер
  9. Какая самая яркая планета Солнечной системы?
    Ответ: Венера
  10. Вокруг какой планеты есть кольца?
    Ответ: Сатурн
  11. Какая звезда ближе всего к Земле?
    Ответ: Солнце
  12. Сколько часов Земля совершает один оборот вокруг своей оси?
    Ответ: 24 часа
  13.  Сколько дней требуется Земле, чтобы совершить один оборот вокруг Солнца?
    Ответ: 365 дней
  14.  Сколько спутников у Юпитера?
    Ответ: 79
  15.  Как называется самый большой спутник Сатурна?
    Ответ: Титан
  16. Какая планета дольше всех совершает оборот вокруг Солнца?
    Ответ: Нептун
  17. Какое расстояние между Землей и Солнцем?
    Ответ: 150 миллионов километров (93 миллиона миль)

История

  1.  Кто первым высадился на Луне?
    Ответ: Нил Армстронг
  2. Кто первым поднялся на Эверест?
    Ответ: Эдмунд Хиллари и шерпа Тенцинг Норгей
  3. Кто была первой женщиной, отправившейся в космос?
    Ответ: Валентина Терешкова
  4. В какой стране появилась первая в мире газета?
    Ответ: Китай
  5. Сколько лет длилась Первая мировая война?
    Ответ: Четыре года (1914-1918)
  6.  Сколько лет длилась Вторая мировая война?
    Ответ: Шесть лет (1939-1945)

Изобретения и открытия

  1.  Кто изобрел печатный станок?
    Ответ: Иоганн Гутенберг
  2.  Кто изобрел лампочку?
    Ответ: Томас Алва Эдисон
  3.  Кто открыл пенициллин?
    Ответ: Александр Флеминг
  4.  Кто изобрел паровой двигатель?
    Ответ: Джеймс Ватт
  5.  Кто изобрел телефон?
    Ответ: Александр Грэм Белл
  6.  Кто полетел на первом самолете?
    Ответ: Братья Райт (Орвилл и Уилбур)
  7.  Кого называют отцом компьютера?
    Ответ: Чарльз Бэббидж
  8.  В какой стране были изобретены шахматы?
    Ответ: Индия
  9.  Кто открыл гравитацию?
    Ответ: Альберт Эйнштейн
  10. Кто открыл число Пи?
    Ответ: Архимед

География

  1. Какая самая высокая горная вершина в мире?
    Ответ: Гора Эверест
  2. Где находится гора Эверест?
    Ответ: Непал
  3. Какой континент самый большой?
    Ответ: Азия
  4. Какой континент самый маленький?
    Ответ: Австралия
  5. Какая самая маленькая страна в мире?
    Ответ: Ватикан
  6. Какая самая большая страна в мире?
    Ответ: Россия
  7. Какая самая длинная река в мире?
    Ответ: Нил
  8.  Сколько всего континентов?
    Ответ: Семь
  9. Какое из известных мест на Земле самое холодное?
    Ответ: Станция Восток, Антарктида
  10. Какое место на Земле самое жаркое?
    Ответ: Данакильская впадина, Эфиопия
  11. Какой океан самый большой?
    Ответ: Тихий океан
  12.  Какая страна известна как «Земля белых слонов»?
    Ответ: Таиланд
  13.  Какая самая большая жаркая пустыня в мире?
    Ответ: Пустыня Сахара
  14.  Какой самый большой коралловый риф в мире?
    Ответ: Большой Барьерный риф
  15. Какой самый большой тропический лес в мире?
    Ответ: Амазонка

Наука

  1. Какая часть мозга самая большая?
    Ответ: Головной мозг
  2.  Сколько зубов у большинства взрослых?
    Ответ: 32
  3. Сколько костей в нашем теле?
    Ответ: 206
  4. Какой цветок самый большой?
    Ответ: Rafflesia arnoldii
  5.  Из чего сделана металлическая нить накала лампы?
    Ответ: Вольфрам
  6. Какой основной металл используется для производства стали?
    Ответ: Железо
  7. Как называются невозобновляемые источники энергии?
    Ответ: Ископаемое топливо
  8.  Приведите несколько примеров ископаемого топлива?
    Ответ: Бензин, дизель и уголь
  9. Как называются животные, которые питаются только растениями?
    Ответ: Травоядные
  10. Как называются животные, которые едят только мясо?
    Ответ: Плотоядные
  11. Как называются животные, которые питаются как растениями, так и мясом?
    Ответ: Всеядные
  12. Как называются животные, которые спят днем ​​и бодрствуют ночью?
    Ответ: Ночные животные
  13. Какое растение растет в пустыне?
    Ответ: Кактус
  14. Какая кость самая длинная в нашем теле?
    Ответ: Бедренная кость
  15. Какая самая короткая кость в нашем теле?
    Ответ: Стремя (в среднем ухе)
  16.  На какой части растения растет картофель?
    Ответ: Root
  17. Какое животное может обходиться без питьевой воды более недели?
    Ответ: Верблюд
  18. Сколько костей у новорожденного?
    Ответ: 300
  19.  Какова температура кипения воды?
    Ответ: 100 °C
  20. Какова температура замерзания воды?
    Ответ: 0 °C

Math

  1.  Как называется многоугольник с пятью сторонами?
    Ответ: Пентагон
  2.  Что означает X в римских цифрах?
    Ответ: 10
  3. Как называется треугольник с двумя равными сторонами и двумя равными углами?
    Ответ: Равнобедренный треугольник
  4.  Какой формы головка гаечного ключа?
    Ответ: Шестиугольник
  5. Как называется форма алмаза?
    Ответ: Ромб
  6.  Кто известен как отец математики?
    Ответ: Архимед
  7.  Что идет после 99 990?
    Ответ: 99,991
  8.  Какие три последовательных числа дают одинаковый ответ как при сложении, так и при умножении?
    Ответы: 1, 2 и 3 (1+2+3 = 6, 1*2*3 = 6)
  9. Сколько сторон у восьмиугольника?
    Ответ: Восемь
  10. Сколько секунд в сутках?
    Ответ: 24*60*60 = 86 400 секунд
  11.  Сколько миллиметров составляет метр?
    Ответ: 1000 миллиметров
  12.  Расположите в порядке возрастания: ¼, 1/9, ½, 1/5
    Ответ: 1/9, 1/5, ¼, ½
  13.  собственная римская цифра?
    Ответ: Ноль
  14.  Угол меньше 90 градусов называется ______.
    Ответ: Острый угол
  15.  Угол, который больше 90 градусов, называется _____.
    Ответ: Тупой угол
  16.  Какова сумма всех углов треугольника?
    Ответ: 180 градусов
  17.  Что такое 2/4 в десятичной дроби?
    Ответ: 0,5
  18.  Какое число Пи?
    Ответ: 3.14
  19.  Как называется расстояние вокруг фигуры?
    Ответ: Периметр
  20.  Если число умножить на ноль, получится ____.
    Ответ: 0
  21.  При умножении числа на единицу получается ____
    Ответ: То же число

Разное

  1.  Кто автор книг о Гарри Поттере?
    Ответ: Дж.К. Роулинг
  2.  В какой книге главный герой падает в кроличью нору?
    Ответ: Алиса в стране чудес
  3.  Кого вы найдете в Лесу Сотни Акров?
    Ответ: Винни-Пух и его друзья
  4. Как называется искусство складывания бумаги в красивые фигуры?
    Ответ: Оригами
  5.  Из чего сделан рог носорога?
    Ответ: Кератин, белок, содержащийся в волосах, ногтях и копытах животных
  6. Сколько цветов у радуги?
    Ответ: Seven
  7.  Какое самое высокое здание в мире?
    Ответ: Бурдж-Халифа в Дубае
  8.  Какая часть компьютера называется его мозгом?
    Ответ: ЦП
  9. Какой самый распространенный язык в мире?
    Ответ: китайский
  10. Сколько дней в високосном году?
    Ответ: 366 дней
  11.  Какое чудо света можно найти в Индии?
    Ответ: Тадж-Махал
  12. В гимне какой страны только музыка и нет слов?
    Ответ: Испания
  13.  Единственная страна, у которой нет прямоугольного флага?
    Ответ: Непал
  14.  Когда отмечается Всемирный день окружающей среды?
    Ответ: 5 июня
  15. Когда отмечается День Земли ?
    Ответ: 22 апреля
  16.  Сколько игроков в крикетной команде?
    Ответ: 11
  17.  Как называется место, где держат пчел?
    Ответ: Пасека
  18. Как называется детёныш кенгуру?
    Ответ: Джоуи
  19. Детеныша какого животного называют жеребенком?
    Ответ: Лошадь
  20. Что такое полная форма SIM-карты?
    Ответ: Модуль идентификации абонента
  21. Что такое полная форма оперативной памяти?
    Ответ: Оперативная память
  22. Какая самая высокая статуя в мире?
    Ответ: Статуя Единства в Индии
  23. Какое самое длинное рукотворное сооружение в мире?
    Ответ: Великая Китайская стена
  24. Какая самая маленькая птица?
    Ответ: Bee hummingbird
  25. Кто является основателем Google?
    Ответ: Ларри Пейдж и Сергей Брин
  26. Что такое полная форма UPS?
    Ответ: Источник бесперебойного питания
  27.  Сколько килобайт составляет 1 мегабайт?
    Ответ: 1,024
  28. Чем знаменит Марк Цукерберг?
    Ответ: Он основал Facebook
  29.  Что означают AM и PM?
    Ответ: Ante Meridiem и Post Meridiem
  30. Что означают BC и AD?
    Ответ: До Христа и Anno Domini
  31. Кто был первым президентом Соединенных Штатов?
    Ответ: Джордж Вашингтон
  32. Какое из наземных животных самое быстрое?
    Ответ: Гепард
  33.  В какой стране находятся пирамиды Гизы?
    Ответ: Египет
  34. Где находится Статуя Свободы ?
    Ответ: Нью-Йорк
  35. Какое млекопитающее самое тяжелое?
    Ответ: Синий кит
  36. Какое животное самое высокое в мире?
    Ответ: Жираф

У нас есть несколько
Вход в рецепты
в наших примерах.

Выбор элементов

Анти-шаблон:
С использованием
очень хрупкие селекторы, которые могут быть изменены. Передовая практика:
Использовать
данные-*

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

Каждый написанный вами тест будет включать селекторы для элементов. Чтобы спасти себя много
головной боли, вы должны написать селекторы, устойчивые к изменениям.

Часто мы видим, что у пользователей возникают проблемы с таргетингом на их элементы, потому что:

  • Ваше приложение может использовать динамические классы или идентификаторы, которые изменяются
  • Ваши селекторы ломаются из-за изменений в разработке стилей CSS или поведения JS

К счастью, можно избежать обеих этих проблем.

  1. Не ориентироваться на элементы на основе атрибутов CSS, таких как: id , класс , тег
  2. Не ориентироваться на элементы, которые могут изменить свое textContent
  3. Добавьте атрибуты data-* , чтобы упростить поиск элементов

Как это работает:

Дана кнопка, с которой мы хотим взаимодействовать:

  <кнопка
 
 
  имя = «представление»
  роль = "кнопка"
  данные-cy="отправить"
>
  Представлять на рассмотрение

  

Давайте посмотрим, как мы могли бы нацелиться на него:

Селектор Рекомендуемый Примечания
род.get('button').click() Никогда Худшее — слишком общее, без контекста.
cy.get('.btn.btn-large').click() Никогда Плохо. В сочетании со стилем. Сильно подвержен изменениям.
cy.get('#main').click() Экономно Лучше. Но все же в сочетании со стилями или прослушивателями событий JS.
cy.get('[name=submission]').click() Экономно В сочетании с атрибутом имени , который имеет семантику HTML.
cy.contains('Отправить').click() Зависит Гораздо лучше. Но все же в сочетании с текстовым содержанием, которое может измениться.
cy.get('[data-cy=submit]').click() Всегда Лучший. Изолирован от всех изменений.

Ориентация на элемент выше с помощью тега , class или id очень изменчива и
сильно подвержен изменениям. Вы можете заменить элемент, вы можете провести рефакторинг CSS и
обновить идентификаторы, или вы можете добавлять или удалять классы, влияющие на стиль
элемент.

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

Атрибут data-cy не изменится из-за изменения стиля CSS или поведения JS,
это означает, что он не связан с поведением или стилем элемента.

Дополнительно дает понять всем, что этот элемент используется напрямую
по тестовому коду.

Игровая площадка «Селектор»
автоматически следует этим рекомендациям.

При определении уникального селектора он автоматически отдает предпочтение элементам с:

  • данные-cy
  • проверка данных
  • дата-тестид
Пример реального мира

Приложение «Реальный мир» (RWA)
использует две полезные пользовательские команды для выбора элементов для тестирования:

  • getBySel выдает элементы с атрибутом data-test , которые соответствуют a
    указанный селектор.
  • getBySelLike выдает элементы с атрибутом data-test , который содержит
    указанный селектор.
 

Cypress.Commands.add('getBySel', (селектор, ...аргументы) => {
  return cy.get(`[data-test=${selector}]`, ... args)
})

Cypress.Commands.add('getBySelLike', (селектор, ...аргументы) => {
  return cy.get(`[data-test*=${selector}]`, ... args)
})
  

Источник:
кипарис/support/commands.ts

Текстовое содержимое:

После прочтения приведенных выше правил у вас может возникнуть вопрос:

Если я всегда должен использовать атрибуты данных, то когда я должен использовать
г.в.содержит () ?

Эмпирическое правило: спросите себя:

Если содержимое элемента изменилось , хотите ли вы, чтобы тест провалился?

  • Если да: используйте cy.contains()
  • Если ответ отрицательный: используйте атрибут данных.

Пример:

Если мы снова посмотрим на нашей кнопки…

  
  

Вопрос: насколько важно для вашего теста текстовое содержимое Отправить ? Если
текст изменен с Отправить на Сохранить — вы хотите, чтобы тест провалился?

Если ответ да потому что слово Отправить критично и не должно
поменяли — тогда используйте cy.содержит() для таргетинга
элемент. Таким образом, если его изменить, тест не будет выполнен.

Если ответ нет потому что текст можно изменить — тогда используйте
cy.get() с атрибутами данных. Меняем текст на
Сохранение не приведет к сбою теста.

Присвоение возвращаемых значений

Анти-шаблон:
Пытающийся
назначить возвращаемое значение Commands с помощью
константа
,
пусть
, или
вар
.

Многие пользователи, впервые просматривающие код Cypress, думают, что он выполняется синхронно.

Мы видим, что новые пользователи обычно пишут код, который выглядит следующим образом:

 

const a = cy.get('a')

cy.visit('https://example.cypress.io')


a.first().click()
  

Вам редко придется использовать const , let или var в Cypress. Если вы используете
их, вы захотите сделать некоторый рефакторинг.

Если вы новичок в Cypress и хотите лучше понять, как работают команды —
пожалуйста, прочтите наше руководство «Введение в Cypress».

Если вы уже знакомы с командами Cypress, но используете
const , let или var , то вы обычно пытаетесь сделать одну из двух вещей:

  • Вы пытаетесь сохранить и сравнить значений, таких как текст , классы ,
    атрибутов .
  • Вы пытаетесь разделить значений между тестами и перехватчиками, такими как до и
    перед каждым .

Для работы с любым из этих шаблонов, пожалуйста, прочитайте нашу
Руководство по переменным и псевдонимам.

Посещение внешних сайтов

Анти-шаблон:
Пытающийся
для посещения или взаимодействия с сайтами или серверами, которые вы не контролируете.

Передовая практика:
Только тест
что вы контролируете. Старайтесь не требовать стороннего сервера. Когда необходимо,
всегда используйте
cy.request()
общаться со сторонними серверами
через их API.

Одна из первых вещей, которую пытаются сделать многие наши пользователи, — это привлечь третью сторону.
сервера в своих тестах.

Вы можете захотеть получить доступ к сторонним серверам в нескольких ситуациях:

  1. Тестовый вход, когда ваше приложение использует другого провайдера через OAuth.
  2. Проверка вашего сервера обновляет сторонний сервер.
  3. Проверка вашей электронной почты, чтобы узнать, не отправил ли ваш сервер электронное письмо с сообщением о том, что вы забыли пароль.

Вначале у вас может возникнуть соблазн использовать cy.visit() или использовать
Cypress для перехода к стороннему окну входа в систему.

Однако вам не следует никогда не использовать ваш пользовательский интерфейс или посещать сторонний сайт при тестировании
потому что:

  • Это занимает невероятно много времени и замедляет ваши тесты.
  • Сторонний сайт мог изменить или обновить свое содержимое.
  • На стороннем сайте могут возникнуть проблемы, не зависящие от вас.
  • Сторонний сайт может обнаружить, что вы тестируете через скрипт, и заблокировать вас.
  • На стороннем сайте могут проводиться кампании A/B.

Давайте рассмотрим несколько стратегий поведения в подобных ситуациях.

При входе в систему:

Многие провайдеры OAuth проводят эксперименты A/B, что означает, что их экран входа
динамически меняющийся. Это затрудняет автоматизированное тестирование.

Многие провайдеры OAuth также ограничивают количество веб-запросов, которые вы можете
их. Например, если вы попытаетесь протестировать Google, Google автоматически выдаст .
обнаружить, что вы не человек, и вместо того, чтобы предоставить вам экран входа в систему OAuth,
они заставят вас заполнить капчу.

Кроме того, тестирование через поставщика OAuth является изменяемым — сначала вам потребуется
реальный пользователь на их сервисе, а затем изменение чего-либо на этом пользователе может
влияют на другие тесты ниже по течению.

Вот возможные решения для решения этих проблем:

  1. Заглушить поставщика OAuth и обойти его пользовательский интерфейс
    вообще. Вы можете обмануть свое приложение, заставив его поверить в OAuth.
    провайдер передал свой токен вашему приложению.
  2. Если вы должны получить реальный токен, который вы можете использовать
    cy.request() и использовать программный API , который
    предоставляет ваш провайдер OAuth. Эти API, скорее всего, изменяются еще нечасто
    и вы избегаете таких проблем, как регулирование и A/B-кампании.
  3. Вместо того, чтобы ваш тестовый код обходил OAuth, вы также можете попросить свой сервер
    за помощью. Возможно, все, что делает токен OAuth, — это создает пользователя в вашем
    база данных. Часто OAuth полезен только на начальном этапе, а ваш сервер
    устанавливает собственную сессию с клиентом. Если это так, используйте
    cy.request() , чтобы получить сеанс прямо из вашего
    сервер и вообще обойти провайдера.

Сторонние серверы:

Иногда действия, которые вы выполняете в своем приложении , могут повлиять на другой 3-й
партийное приложение. Эти ситуации не так распространены, но возможны.
Представьте, что ваше приложение интегрируется с GitHub и с помощью вашего приложения
вы можете изменить данные внутри GitHub.

После выполнения теста вместо попытки
cy.visit() GitHub, вы можете использовать
cy.request() для программного взаимодействия с
API GitHub напрямую.

Это позволяет избежать необходимости прикасаться к пользовательскому интерфейсу другого приложения.

Проверка отправленных писем:

Как правило, при прохождении таких сценариев, как регистрация пользователя или забытый
пароли, ваш сервер планирует доставку электронной почты.

  1. Если ваше приложение работает локально и отправляет электронные письма напрямую
    через SMTP-сервер можно использовать временный локальный тестовый SMTP-сервер
    работает внутри Cypress Test Runner. Прочитать сообщение в блоге
    «Тестирование электронных писем в формате HTML с помощью Cypress»
    для деталей.
  2. Если ваше приложение использует стороннюю службу электронной почты или вы не можете
    SMTP-запросы, вы можете использовать тестовый почтовый ящик с доступом к API. Читать
    сообщение в блоге
    «Полное тестирование электронных писем в формате HTML с использованием учетных записей SendGrid и Ethereal»
    для деталей.

Cypress может даже загрузить полученное электронное письмо в формате HTML в свой браузер, чтобы проверить
функциональность и визуальный стиль электронной почты:

  1. В других случаях следует попробовать использовать cy.request()
    команда для запроса конечной точки на вашем сервере, которая сообщает вам, что электронная почта
    поставлены в очередь или доставлены. Это даст вам программный способ узнать
    без участия пользовательского интерфейса. Ваш сервер должен будет предоставить эту конечную точку.
  2. Вы также можете использовать cy.request() на сторонний сервер получателей электронной почты, который
    предоставляет API для чтения электронных писем.Затем вам понадобится надлежащее
    учетные данные аутентификации, которые может предоставить ваш сервер, или вы можете использовать
    переменные окружения. Некоторые службы электронной почты уже предоставляют
    Плагины Cypress для доступа к электронной почте.

Наличие тестов, основанных на состоянии предыдущих тестов

Анти-шаблон:
Связь
несколько тестов вместе.

Передовая практика:
Тесты должны
всегда иметь возможность запускаться независимо друг от друга
и все равно пройти
.

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

Изменить это на это.только
на тесте и обновите браузер.

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

Если это не так, вам следует провести рефакторинг и изменить свой подход.

Как это решить:

  • Переместите повторяющийся код в предыдущих тестах на перед или перед каждой перехватчиками.
  • Объединение нескольких тестов в один более крупный тест.

Давайте представим следующий тест на заполнение формы.

 
описать('моя форма', () => {
  it('посещает форму', () => {
    cy.visit('/пользователи/новый')
  })

  it('требуется имя', () => {
    cy.get('#first').type('Джонни')
  })

  it('требуется фамилия', () => {
    cy.get('#последний').type('Яблочное семя')
  })

  it('может отправить действительную форму', () => {
    cy.get('форма').submit()
  })
})
  

Что не так с приведенными выше тестами? Они все соединены вместе!

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

Вот 2 способа исправить это:

1. Объединить в один тест

 
описать('моя форма', () => {
  it('может отправить действительную форму', () => {
    cy.visit('/пользователи/новый')

    cy. log('вводим имя')
    cy.get('#first').type('Джонни')

    cy.log('вводим фамилию')
    cy.get('#последний').type('Яблочное семя')

    су.лог('отправка формы')
    cy.get('форма').submit()
  })
})
  

Теперь мы можем поставить .только на этот тест, и он будет успешно работать независимо от
любого другого теста. Идеальный рабочий процесс Cypress — это написание и итерация на
по одному тесту за раз.

2. Запуск общего кода перед каждым тестом

  описать('моя форма', () => {
  перед каждым (() => {
    cy.visit('/пользователи/новый')
    cy.get('#first').type('Джонни')
    cy.get('#последний').type('Яблочное семя')
  })

  it('отображает проверку формы', () => {
    су.получить('#первый').очистить()
    cy.get('форма').submit()
    cy.get('#errors').should('содержать', 'Требуется имя')
  })

  it('может отправить действительную форму', () => {
    cy.get('форма').submit()
  })
})
  

Этот вышеприведенный пример идеален, потому что теперь мы сбрасываем состояние между каждым
test и гарантировать, что ничего из предыдущих тестов не просочится в последующие.

Мы также прокладываем путь к упрощению написания нескольких тестов.
против состояния «по умолчанию» формы.Таким образом, каждый тест остается скудным, но каждый
можно запустить самостоятельно и пройти.

Создание «крошечных» тестов с одним утверждением

Анти-шаблон:
Играет роль
как вы пишете модульные тесты.

Передовая практика:
Добавить несколько
утверждения и не беспокойтесь об этом

Мы видели, как многие пользователи пишут такой код:

  описать('моя форма', () => {
  перед (() => {
    cy.visit('/пользователи/новый')
    cy.get('#first').type('Джонни')
  })

  it('имеет проверочный атрибут', () => {
    су.get('#first').should('have.attr', 'проверка данных', 'обязательно')
  })

  it('имеет активный класс', () => {
    cy.get('#first').should('have.class', 'active')
  })

  it('отформатировано имя', () => {
    cy.get('#first').should('have.value', 'Джонни')
  })
})
  

Хотя технически это работает нормально, это действительно чрезмерно и неэффективно.

Почему вы использовали этот шаблон в модульных тестах:

  • Когда утверждения терпят неудачу, вы полагаетесь на заголовок теста, чтобы узнать, что не удалось
  • Вам сказали, что добавление нескольких утверждений — это плохо, и вы восприняли это как
    правда
  • Не было снижения производительности при разделении нескольких тестов, поскольку они выполнялись
    очень быстро

Почему этого не следует делать в Cypress:

  • Написание интеграционных тестов отличается от модульных тестов
  • Вы всегда будете знать (и сможете визуально увидеть), какое утверждение не удалось выполнить в большом
    тест
  • Cypress запускает серию асинхронных событий жизненного цикла, которые сбрасывают состояние между тестами
  • Сброс тестов выполняется намного медленнее, чем добавление дополнительных утверждений

Тесты в Cypress обычно выдают более 30 команд.Потому что почти каждый
команда имеет утверждение по умолчанию (и, следовательно, может потерпеть неудачу), даже ограничивая ваши
утверждения, что вы ничего не экономите, потому что любая отдельная команда
может неявно завершиться ошибкой
.

Как вы должны переписать эти тесты:

  описать('моя форма', () => {
  перед (() => {
    cy.visit('/пользователи/новый')
  })

  it('проверяет и форматирует имя', () => {
    cy.get('#первый')
      .тип('Джонни')
      .should('иметь.attr', 'проверка данных', 'обязательно')
      .и('иметь.класс', 'активный')
      .and('have.value', 'Джонни')
  })
})
  

Использование

после или после каждого крючка

Анти-шаблон:
С использованием

после
или
после каждого
хуки для очистки состояния.

Передовая практика:
Очистить
государство
до
запуск тестов.

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

Чаще всего мы видим тестовый код, который выглядит так:

  описать('пользователь, вошедший в систему', () => {
  перед каждым (() => {
    cy. логин()
  })

  после каждого (() => {
    cy.logout()
  })

  это('тесты', ...)
  это('больше', ...)
  это('вещи', ...)
})
  

Давайте посмотрим, почему это на самом деле не нужно.

Подвешенное состояние — ваш друг:

Одной из лучших частей Cypress является упор на отладку. в отличие
другие инструменты тестирования — когда ваши тесты заканчиваются — вы остаетесь со своей работой
приложение точно в тот момент, когда ваш тест закончился.

Это отличная возможность для вас использовать ваше приложение в
констатируйте, что испытания завершены! Это позволяет вам написать частичных тестов , которые управляют
вашего приложения шаг за шагом, написав тест и код приложения на
то же время.

Мы создали Cypress для поддержки этого варианта использования. На самом деле Кипарис не
очищать собственное внутреннее состояние по окончании теста. Мы хотим, чтобы у вас было
висячее состояние в конце теста! Такие вещи, как заглушки,
шпионы, даже маршруты а не
удаляются в конце теста. Это означает, что ваше приложение будет вести себя
одинаково во время выполнения команд Cypress или когда вы вручную работаете с
это после окончания теста.

Если вы удаляете состояние вашего приложения после каждого теста, вы мгновенно теряете
возможность использовать ваше приложение в этом режиме. Выход из системы в конце
всегда оставляйте вас с одной и той же страницей входа в конце теста. Чтобы
отлаживайте свое приложение или напишите частичный тест, вам всегда останется
комментируя свой кастом cy.команда logout() .

Все минусы без плюсов:

На данный момент предположим, что по какой-то причине ваше приложение отчаянно
требуется последний бит после или после каждого кода для запуска. Предположим, что
если этот код не запустить — все потеряно.

Это хорошо, но даже если это так, он не должен идти в после или
после каждого крючка . Почему? До сих пор мы говорили о выходе из системы, но давайте
используйте другой пример. Давайте воспользуемся шаблоном необходимости сброса вашего
база данных.

Идея выглядит так:

После каждого теста я хочу, чтобы база данных была сброшена до 0 записей, поэтому
когда следующий тест запускается, он запускается с чистым состоянием.

Имея это в виду, вы пишете что-то вроде этого:

  после каждого (() => {
  cy.resetDb()
})
  

Вот проблема: нет гарантии, что этот код будет работать.

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

Почему? Потому что если вы обновите Cypress в середине теста — у вас будет
созданное частичное состояние в базе данных, и ваша пользовательская функция cy.resetDb()
никогда не будет называться .

Если эта очистка состояния действительно требуется , то следующий тест будет немедленно
потерпеть поражение.Почему? Потому что сброс состояния никогда не происходил, когда вы обновлялись
Кипарис.

Сброс состояния должен выполняться перед каждым тестом:

Самое простое решение здесь — переместить код сброса на до проверки.
бежит.

Код, помещенный в перед или передКаждый хук будет всегда запускаться до
тест — даже если вы обновили Cypress посреди уже существующего!

Это также отличная возможность использовать
крючки корневого уровня цвета мокко.Идеальное место, чтобы поместить их в
кипарис/поддержка/index.js файл
потому что он всегда оценивается перед любым тестовым кодом из ваших спецификаций.

Хуки, которые вы добавляете в корень, всегда будут работать во всех комплектах!

 

перед каждым (() => {
  
  
  cy. resetDb()
})
  

Требуется ли сброс состояния?

Последний вопрос, который вы должны себе задать: сброс состояния даже
необходимый? Помните, Cypress уже автоматически очищает
местное хранилище,
файлы cookie, сеансы и т. д. перед каждым тестом.Удостовериться
вы не пытаетесь очистить состояние, которое уже очищено Cypress
автоматически.

Если состояние, которое вы пытаетесь очистить, живет на сервере — обязательно очистите
это государство. Вам нужно будет запустить эти типы процедур! Но если государство
связанные с вашим приложением, которое в настоящее время тестируется — вам, вероятно, даже не нужно
чтобы очистить его.

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

Пример реального мира

Приложение «Реальный мир» (RWA)
сбрасывает и повторно заполняет свою базу данных с помощью пользовательской задачи Cypress
называется db:seed в крючке beforeEach . Это позволяет начинать каждый тест с
чистый лист и детерминированное состояние. Например:

 

перед каждым (функция () {
  cy.task('db:seed')
  
})
  

Источник:
кипарис/тесты/ui/auth.spec.ts

Задача db:seed определена в
файл плагинов
проекта, и в этом случае отправляет запрос на выделенный серверный API
приложение для соответствующего повторного заполнения базы данных.

 

на('задача', {
  асинхронный 'db:seed'() {
    
    const {данные} = ожидание axios.post(`${testDataApiEndpoint}/seed`)
    возвращаемые данные
  },
  
})
  

Источник:
кипарис/плагины/index.ts

Та же практика, описанная выше, может использоваться для любого типа базы данных (PostgreSQL,
MongoDB и др.). В этом примере запрос отправляется на внутренний API, но вы
также может напрямую взаимодействовать с вашей базой данных с помощью прямых запросов, пользовательских
библиотеки и т. д.Если у вас уже есть не-JavaScript методы обработки или
взаимодействуя с вашей базой данных, вы можете использовать cy.exec ,
вместо cy.task для выполнения любой системной команды или
сценарий.

Ненужное ожидание

Передовая практика:
Использовать маршрут
псевдонимы или утверждения, чтобы защитить Cypress от продолжения до явного
условие выполнено.

В Cypress вам почти никогда не нужно использовать cy.wait() для произвольного количества
время. Если вы обнаружите, что делаете это, вероятно, есть гораздо более простой
способ.

Представим себе следующие примеры:

Ненужное ожидание

cy.request()

Ожидание здесь не требуется, так как cy.request()
Команда не будет разрешена, пока не получит ответ от вашего сервера. Добавление
ожидание здесь добавляет только 5 секунд после
cy.request() уже разрешен.

  cy.request('http://localhost:8080/db/seed')
cy. wait(5000)
  

Ненужное ожидание

cy.visit()

Ожидать этого не нужно, т.к.визит()
разрешается, когда страница запускает событие load . К тому времени все ваши активы
были загружены, включая javascript, таблицы стилей и html.

  cy.visit('http://localhost/8080')
cy.wait(5000)
  

Ненужное ожидание

cy.get()

Ожидание cy.get() ниже не требуется, потому что
cy.get() автоматически повторяет попытки до тех пор, пока таблица tr не будет
длина 2.

Всякий раз, когда команды имеют утверждение, они не разрешаются до тех пор, пока не будут связаны с ними.
утверждения проходят.Это позволяет вам описать состояние вашего приложения
не беспокоясь о том, когда он туда доберется.

  cy.intercept('GET', '/users', [{имя: 'Мэгги'}, {имя: 'Джоан'}])
cy.get('#выборка').click()
cy.wait(4000)
cy.get('таблица tr').should('have.length', 2)
  

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

  cy.intercept('GET', '/users', [{имя: 'Мэгги'}, {имя: 'Джоан' }]).as(
  'получить пользователей'
)
су.получить('#fetch').клик()
cy.wait('@getUsers')
cy.get('таблица tr').should('have.length', 2)
  

Веб-серверы

Анти-шаблон:
Пытающийся
для запуска веб-сервера из скриптов Cypress с помощью

cy.exec()
или
cy.task()
.

Передовая практика:
Начать веб
server перед запуском Cypress.

Мы НЕ рекомендуем пытаться запустить внутренний веб-сервер изнутри.
Кипарис.

Любая команда, запущенная cy.exec() или
cy.task() в конце концов должен выйти.В противном случае Cypress будет
не продолжать выполнение каких-либо других команд.

Попытка запустить веб-сервер из cy.exec() или
cy.task() вызывает всевозможные проблемы, потому что:

  • Вы должны запустить процесс в фоновом режиме
  • Вы теряете к нему доступ через терминал
  • У вас нет доступа к его stdout или журналам
  • Каждый раз, когда запускаются ваши тесты, вам нужно будет вычислять сложность вокруг
    запуск уже работающего веб-сервера.
  • Скорее всего, вы столкнетесь с постоянными конфликтами портов

Почему я не могу остановить процесс в хуке после ?

Потому что нет гарантии, что код, запущенный в после , всегда будет работать.

Во время работы в Cypress Test Runner вы всегда можете перезапустить / обновить во время
посреди теста. Когда это произойдет, код в после не будет выполняться.

Что мне тогда делать?

Запустите свой веб-сервер перед запуском Cypress и завершите его после завершения.

Вы пытаетесь запустить в CI?

У нас есть
примеры, показывающие, как запускать и останавливать веб-сервер.

Установка глобального baseUrl

Анти-шаблон:
С использованием

су.визит()
не устанавливая
базовый URL-адрес
.

Добавив baseUrl в ваш
конфигурация Cypress попытается добавить префикс baseUrl к любому URL-адресу, предоставленному
такие команды, как cy. visit() и
cy.request(), которые не являются полным доменным именем
(полное доменное имя) URL-адреса.

Это позволяет опускать жестко заданные URL-адреса полного доменного имени (FQDN) в
команды. Например,

  cy.visit('http://localhost:8080/index.html')
  

можно сократить до

Это не только создает тесты, которые могут легко переключаться между доменами, т.е.е.
запуск сервера разработки на http://localhost:8080 по сравнению с развернутым производственным сервером
домен, но добавление baseUrl также может сэкономить некоторое время во время начального
запуск ваших тестов Cypress.

Когда вы запускаете свои тесты, Cypress не знает URL-адрес приложения, которое вы
планирую протестировать. Итак, Cypress изначально открывается на https://localhost + случайный
порт.

Без набора

baseUrl Cypress загружает главное окно в localhost + случайный порт

Как только он встретит cy. visit(), Cypress затем
переключается на URL-адрес главного окна на URL-адрес, указанный в вашем посещении. Этот
может привести к «вспышке» или «перезагрузке» при первом запуске тестов.

Установив baseUrl , вы можете вообще избежать этой перезагрузки. Кипарис будет
загрузите главное окно в baseUrl , указанном вами, как только начнутся ваши тесты.

Файл конфигурации (

cypress.json по умолчанию)

  {
  "baseUrl": "http://localhost:8484"
}
  

С набором

baseUrl Cypress загружает главное окно в baseUrl

Наличие набора baseUrl дает вам дополнительный бонус: вы видите ошибку, если ваш
сервер не работает во время cypress open по указанному baseUrl .

Мы также отображаем ошибку, если ваш сервер не работает на указанной
baseUrl во время кипарис запуска после нескольких попыток.

Использование

baseUrl в глубину

Это короткое видео объясняет в
depth как правильно использовать baseUrl .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *