| 
		21.07.2022 00:00	 | 
 
| 
  Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова
 Существует множество способов измерения производительности. В сегодняшней статье я хочу поговорить об одном из самых простых. Вообразите следующий сценарий:  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		13.07.2022 00:00	 | 
 
| 
  Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова
 Если вы используете Cypress, то, возможно, знакомы с цепочками команд. Так ли это? Я вижу, что многие пользователи Cypress знают об этом, но иногда не улавливают их внутреннюю логику. 
В этой статье я хочу разобрать ряд основополагающих принципов цепочек Cypress и то, как их понимание улучшит ваши тесты.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		04.07.2022 00:00	 | 
 
| 
  Автор: Баз Дейкстра (Bas Dijkstra) Оригинал статьи Перевод: Ольга Алифанова
 Ранее я писал статью с примерами того, как задавать данные в фича-файлах Cucumber в форме таблиц, чтобы спецификации было легче читать, и показал, как интерпретировать данные в разных табличных форматах. 
В конце этой статьи я обещал написать продолжение про концепцию трансформеров таблиц данных, чтобы работать с табличными структурами данных Cucumber-JVM другим, более эффективным путем. Это заняло некоторое время, но вот это продолжение. 
Я большой поклонник SpecFlow, BDD-фреймворка для .NET. Одна из наиболее симпатичных мне функций SpecFlow – это SpecFlow.Assist helpers, позволяющие быстро трансформировать таблицы из спецификаций в списки экземпляров C#-объектов, а также сравнивать списки объектов с таблицами – и все это путем одного вызова метода SpecFlow.Assist helper. 
В этой статье я покажу вам, как сделать нечто похожее в Cucumber-JVM через использование трансформеров таблиц данных.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		23.06.2022 00:00	 | 
 
| 
 Автор: Анастасия Копова 
 
  
При приёмке задач мы уделяем большое внимание проверке клиент-серверного взаимодействия. Опыт проведения собеседований показывает, что новички в тестировании мобильных приложений ограничиваются интерфейсными проверками, упуская из виду то, что за каждым изменением интерфейса стоит отправка запроса к серверу и получение ответа от него. Здесь и возникает пространство для ошибок. Если повезло, то кандидат знает о необходимости проверки сетевого взаимодействия, но, за редким исключением, его знания ограничены Rewrite или Breakpoints. Сегодня я расскажу, с какими задачами сталкиваются тестировщики мобильных приложений и как в этом помогает Charles Proxy.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		01.06.2022 00:00	 | 
 
| 
  Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова 
Если вы когда-либо тестировали API через Postman или иной инструмент, то это будет элементарной задачей для вас. Cypress – отличный инструмент тестирования, который также может быть полезен при тестировании API. В сегодняшней статье я пройдусь по основам создания API-теста в Cypress.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		16.05.2022 00:00	 | 
 
| 
  Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова
 Возможно, вам нужно запускать ваши тесты в нескольких окружениях. Неоднократно видел, как люди делали что-то вроде этого: 
cy.visit(Cypress.env('localUrl'))
Я большой поклонник использования Cypress.env() для хранения переменных, но есть способы куда лучше.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		13.04.2022 00:00	 | 
 
| 
  Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова
 Среди тестировщиков множество перфекционистов. Практически у всех, с кем я сталкивался, чешутся руки использовать команду .wait() в Cypress и остановить тест на пару секунд. Если вы из таких людей, то отлично знаете, что такое использование .wait() – не лучшее решение, и пробуете найти альтернативу. Тест просто ничего не делает несколько секунд. Их может быть достаточно, но иногда этого мало. 
Когда мы используем .wait(), то хотим, чтобы приложение пршило в нужное состояние. Закрытие модального окна, получение ответа от сети, смена состояния кнопки… Cypress был создан с учетом повторных попыток – это означает, что как только команда сработает, Cypress перейдет к следующей. Если команда не срабатывает, Cypress будет пытаться выполнить ее повторно в течение нескольких секунд. 
Эта архитектура часто приводит к тому, что Cypress зачастую слишком быстро бежит по приложению, а мы хотим заставить его подождать. Жестко закодированное ожидание – зачастую способ приказать Cypress замедлиться. Но это не идеальный подход, как я уже говорил. Давайте посмотрим, что можно сделать, если вы сталкиваетесь с этим пугающим решением.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		29.03.2022 00:00	 | 
 
| 
  Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова
 TypeScript в последнее время набирает популярность, и для этого есть веские основания. Он помогает разработчикам создавать свои собственные типы. Это позволяет делать меньше ошибок и создавать самодокументирующийся код. В этой статье я познакомлю вас с основами TypeScript.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		25.03.2022 00:00	 | 
 
| 
  Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова
 Вы узнаете: 
- Как      создать кастомную команду, автоматически дополняющую ваши селекторы
 
- Как      выполнить проверку тестов, написанных на TypeScript
 
- Как      грепнуть селекторы из приложения
 
- Как      создать предупреждение, если в приложении есть неиспользуемые селекторы.
 
 
Cypress советует использовать селекторы data-cy в качестве лучшей практики для выбора элементов на странице. Недавно мы отлично подискутировали в дискорде, действительно ли эта практика хороша. Лично я сильно склоняюсь к "да". Если вы в моем лагере, у меня есть для вас ряд полезных советов.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
					
		
	| 
		18.03.2022 00:00	 | 
 
| 
  Автор: Луиза Гиббс (Louise Gibbs) Оригинал статьи Перевод: Ольга Алифанова 
UI-автоматизация может быть медленной, неуклюжей и склонной к ошибкам. Ее поддержка в условиях меняющейся базы кода неизбежна. Настройка тестов, исправление поломок и адаптация к изменениям ПО могут стать огромной проблемой. 
Это звучит адски, но я обожаю это! Это похоже на серию головоломок, нуждающихся в решении, а я люблю головоломки. Если вы покупаете книгу головоломок в киоске, то загадки в начале книги будут намного проще загадок в ее конце. Если вы совсем новичок в этом типе задач, логично начинать с начала, с более простых головоломок. 
Вне зависимости от вашего опыта автоматизации, вы должны подходить к проекту как новичок, если проект для вас в новинку. Начните с идентификации "простых" тестов. Я всегда начинаю с теста, запускающего приложение. Если вы не сможете это сделать, то все остальные тесты будут бесполезными. 
Затем сконцентрируйтесь на создании базовых тестов, перемещающихся по приложению, открывающих определенные страницы и выполняющих базовые действия. Нажатия кнопок легко выполнимы, и это хорошее место для старта. Начиная, не особо раздумывайте о том, какие тесты понадобятся вам надолго – думайте о создании тестов, которые "работают", и развивайте их. Добавляйте более сложные действия, когда основной фреймворк уже готов, и у вас появилась некоторая уверенность. 
В этом примере я расскажу, как я начинаю совершенно новый проект UI-автоматизации.  | 
 
	| 
		
			Подробнее...
	 | 
 
 
 
		 
		 |