Обновить
256K+

Тестирование веб-сервисов *

Семь раз оттесть, один раз деплой

116,82
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Автоматизация тестирования вебсайта: Pytest, Allure, Selenium + несколько секретных ингредиентов

Время на прочтение5 мин
Охват и читатели20K
Уже больше года у Acronis новый логотип, о том, как он создавался можно прочитать тут. В рамках ребрендинга обновился и сайт www.acronis.com. Для построения сайта мы выбрали CMS Drupal. Сайт получился классный снаружи и непростой внутри: 28 локалей (!), отзывчивый веб-дизайн, карусели, визарды, всплывающие окна… в итоге пришлось задействовать множество различных модулей друпала, некоторые из них кастомизировать и писать собственные. При работе такой динамичной, сложной системы неизбежны ошибки. Их предотвращением и выявлением занимается команда контроля и обеспечения качества вебсайта. В этой статье мы хотим поделиться своим успешным рецептом автоматизации тестирования нашего сайта.


Добро пожаловать под кат!

Новый Яндекс.Вебмастер

Время на прочтение2 мин
Охват и читатели23K


Сегодня на «Четвертой вебмастерской» представители Яндекса рассказали новом Яндекс.Вебмастере – он уже доступен в статусе бета-версии. Чем же интересно это долгожданное обновление?
Читать дальше →

Тестирование веб-сервиса на Go

Время на прочтение11 мин
Охват и читатели47K
В этой статье хотелось бы поделиться одним из способов простого и удобного интеграционного тестирования http-сервиса, написанного на Go. Интеграционные тесты бывает непросто создавать так, чтобы обходиться без сложных скриптов, но на помощь нам придет Docker, пакет из стандартной библиотеки httptest и билд-теги. Для примера мы будем использовать MySQL базу данных с миграциями, управляемыми пакетом goose. Финальной целью является получить простое и удобное кроссплатформенное интеграционное тестирование простым запуском команды go test, будь это рабочий ноутбук или Continuous Integration сервер.

image
Читать дальше →

Как сделать тестовое окружение максимально похожим на боевое

Время на прочтение7 мин
Охват и читатели23K
image

Одной из возможностей повышения качества выпускаемого продукта является соответствие окружений на боевых серверах и в среде тестирования. Мы постарались минимизировать количество ошибок, связанных с различием конфигураций, путем перехода от нашего старого тестового окружения, где настройки сервисов сильно отличались от боевых, к новому окружению, где конфигурация практически соответствует боевой. Сделали мы это с помощью docker и ansible, получили много профита, но и не избежали различных проблем. Об этом переходе и интересных подробностях я постараюсь рассказать в данной статье.
Читать дальше →

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

Время на прочтение6 мин
Охват и читатели16K
Web optimization

Привет, Хабровчане! Сегодня поговорим об оптимизации скорости загрузки сайта. Это первое на что обращает внимание пользователь особенно при входе с мобильных устройств. Какие проблемы ведет за собой низкая скорость сайта:
— снижение конверсии (исследование Walmart);
— уменьшение охвата аудитории;
— увеличение показателя отказов;
— снижение доступности сайта;
— снижение скорости индексации поисковыми роботами.
Читать дальше →

Оценка тестового покрытия на проекте

Время на прочтение7 мин
Охват и читатели91K
Самый лучший способ оценить, хорошо ли мы протестировали продукт – проанализировать пропущенные дефекты. Те, с которыми столкнулись наши пользователи, внедренцы, бизнес. По ним можно многое оценить: что мы проверили недостаточно тщательно, каким областям продукта стоит уделить больше внимания, какой вообще процент пропусков и какова динамика его изменений. С этой метрикой (пожалуй, самой распространённой в тестировании) всё хорошо, но… Когда мы выпустили продукт, и узнали о пропущенных ошибках, может быть уже слишком поздно: на “хабре” появилась про нас гневная статья, конкуренты стремительно распространяют критику, клиенты потеряли к нам доверие, руководство недовольно.

Чтобы такого не происходило, мы обычно заранее, до релиза, стараемся оценивать качество тестирования: насколько хорошо и тщательно мы проверяем продукт? Каким областям не хватает внимания, где основные риски, какой прогресс? И чтобы ответить на все эти вопросы, мы оцениваем тестовое покрытие.
Читать дальше →

Рецепты тестирования Ruby и Rails приложений

Время на прочтение7 мин
Охват и читатели23K
image

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

Кому это будет интересно?

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

Читать дальше →

Еще один способ тестирования веб-сервисов с использованием AssertJ

Время на прочтение5 мин
Охват и читатели14K
Захотелось поделиться с вами моим способом тестирования веб-сервисов.

Принцип такой:

1. Создаем maven проект.
2. Настраиваем его так, чтобы с каждым запуском выполнялось следующее:
2.1. загружалось WSDL описание сервиса по ссылке
2.2. генерировался код клиента на основе WSDL описания
2.3. генерировался код ассертов для классов, участвующих в проверках, в том числе тех, которые были сгенерированы на предыдущем этапе
3. Пишем тесты.
4. Добавляем проект в jenkins, который и запускает само тестирование.

Нам понадобятся следующие инструменты: Java, maven, AssertJ, TestNG.

AssertJ — интересный фреймворк, который, помимо всего прочего, умеет генерировать асерты для конкретных классов. Это позволяет писать тесты так:
Читать дальше →

Как мы потеряли и снова нашли миллионы, не проведя A/B тестирование

Время на прочтение5 мин
Охват и читатели12K
Мы всегда считали, что должны делиться с миром уроками и технологиями, полученными в процессе занятия нашим бизнесом, включая как успехи, так и неудачи. Мы уже писали о нескольких успехах – как мы уменьшили время ответа поддержки, ускорили приложения и увеличили надёжность. Сегодня я хочу рассказать вам об опыте, который не был удачным.

Это история о том, как мы внесли изменения в сайт Basecamp.com, обошедшееся нам в миллионы долларов, как мы вышли из этой ситуации и что узнали в процессе.

Что произошло?


Всё началось в феврале 2014 года, когда мы официально стали компанией Basecamp. Это было серьёзное изменение – ребрендинг, отказ от поддержки некоторых продуктов, продажа других, и т.п. В процессе мы решили поменять и дизайн сайта basecamp.com (это наш маркетинговый сайт), чтобы отразить тот факт, что он уже был не просто сайтом продукта Basecamp, но сайтом компании Basecamp.

Изменения были довольно существенными – как по контенту, так и визуальные. Редизайн коснулся не только посадочной страницы, (можно посмотреть сайты до и после), но и главной страницы сайта.

image

image

Одним из крупных изменений стало исчезновение формы для входа с домашней страницы. Это решение не было особенно продуманным, мы не проводили тщательное исследование того, как количество шагов, необходимое для входа в триальную версию сервиса, влияет на его используемость. Годами мы спорили о сравнительной ценности возможности быстро «войти» в сервис (для привлечения большего количества людей) по сравнению с «продуманной» системой входа (у которой будет меньше регистраций, но в которой поучаствуют лишь заинтересованные пользователи, большинство из которых в дальнейшем станет платными). Но насколько мне известно, мы не принимали специального решения о переходе на систему более медленного «входа». Это просто было одним из решений на пути нашего «превращения в Basecamp».
Читать дальше →

Charles: незаменимый тул в арсенале QA-инженера

Время на прочтение5 мин
Охват и читатели254K

Для тестирования мобильных приложений, работающих с удаленными серверами, QA-инженеру приходится держать под рукой множество разных тестовых аккаунтов, логов, запросов и ответов. Реальность такова, что не всегда удается договориться о предоставлении нужных тестовых данных в срок. Чаще всего серверные разработчики будут незнакомыми вам людьми по ту сторону Скайпа. В таких ситуациях приходится своими руками подменять ответ сервера перед его передачей в приложение.

Чтобы редактировать выдачу сервера и воспроизводить сложные тестовые сценарии в QA Redmadrobot, мы используем Charles.
Читать дальше →

Новые возможности Safari 9 в iOS 9 и Mac OS X

Время на прочтение6 мин
Охват и читатели17K
C релизом iPhone 6s, iOS9, OS X 10.11 El Capitan и даже watchOS 2 у веб-разработчиков появилось возможность попробовать новые функции в Safari 9. Далее подробно разберем их в нашей статье.

CSS


Поддержка фонового фильтра (backdrop-filter)


Это свойство определенно в Filter Effect Level 2, позволяет применять фильтры к фону (backdrop) элемента, а не к его фону (background). Можно создавать полупрозрачный фон, например для меню на фоновом изображении. Текст хорошо читается и выглядит эффектно, как в iOS.

Фоновый фильтр
Читать дальше →

Утечка реальных ФИО пользователей через Кинопоиск.ру

Время на прочтение1 мин
Охват и читатели86K
8 октября 2015 года Яндекс «перезапустил» купленный два года назад сайт Кинопоиск.ру. Судя по всему, это крупная неудача Яндекса. Число критических сообщений от пользователей старого Кинопоиска растёт как лавина.

Новый Кинопоиск не имеет никаких очевидных преимуществ перед старым, в то время как минусов масса:
Читать дальше →

Функциональные тесты: Django + Selenium WebDriver и 3 варианта на Ваш выбор

Время на прочтение8 мин
Охват и читатели20K
image

«В жизни каждого Django-разработчика наступает момент, когда он решительно рвет со своим прошлым, лишенным функционального тестирования!»

Об этом и поговорим.
Читать дальше →

Ближайшие события

Производительное юнит-тестирование веб-приложений на примере yii2 и codeception

Время на прочтение13 мин
Охват и читатели23K
Задача данной статьи — показать самый производительный путь написания тестов в контексте разработки веб-приложений.
Здесь и дальше под термином тесты будут подразумеваться юнит-тесты.

Разработка веб-приложений сопровождается постоянным использованием в коде базы данных. Если код работы с базой данных и код работы с результатом взаимодействия с базой данных не разделен, нам потребуется база данных в подавляющем большинстве тестов проекта. Также, если код использует методы фреймворка, нам для тестов потребуется подключить фреймворк. Пока тестов мало, всё отлично. Когда тестов становится больше, замечается проблема: скорость выполнения тестов немного напрягает. Когда время выполнения всех юнит-тестов становится больше чем минута, становится невозможным постоянно запускать все тесты. Разработчик начинает запускать только часть тестов, пытаясь уменьшить негативное влияние длительного времени работы тестов, но проблема снижения эффективности тестирования со временем будет только возрастать.

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

Наша цель будет разобраться, каким образом необходимо писать тесты и код для обеспечения максимальной скорости выполнения тестов.
Читать дальше →

Тестирование в Яндексе. Как сделать отказоустойчивый грид из тысячи браузеров

Время на прочтение7 мин
Охват и читатели42K
Любой специалист, причастный к тестированию веб-приложений, знает, что большинство рутинных действий на сервисах умеет делать фреймворк Selenium. В Яндексе в день выполняются миллионы автотестов, использующих Selenium для работы с браузерами, поэтому нам нужны тысячи различных браузеров, доступных одновременно и 24/7. И вот тут начинается самое интересное.



Selenium с большим количеством браузеров имеет много проблем с масштабированием и отказоустойчивостью. После нескольких попыток у нас получилось элегантное и простое в обслуживании решение, и мы хотим поделиться им с вами. Наш проект gridrouter позволяет организовать отказоустойчивый Selenium-грид из любого количества браузеров. Код выложен в open-source и доступен на Github. Под катом я расскажу, на какие недостатки Selenium мы обращали внимание, как пришли к нашему решению, и объясню, как его настроить.
Читать дальше →

4 must-have-элемента тестирования ПО

Время на прочтение4 мин
Охват и читатели20K
29 сентября «Универсариум» запустил курс «Основы тестирования ПО». Надо отдать должное Алексею Петрову – автору курса, директору по качеству Почта@Mail.ru. Он в течение 17 лекций планомерно приводит слушателя к мысли о том, что тестирование – это не просто (а, если честно, то вообще не) сверка реализованного кода со спецификацией. Это процесс, сопровождающий продукт от самой идеи его создания почти до полного исчезновения и прекращения использования. Скажем больше – это целая философия, конечной целью которой является создание Продукта Вашей Мечты.

image

Сегодня мы раскроем основные пункты тестирования, без которых невозможно создание качественного продукта:
Читать дальше →

Технический аудит сайта при помощи Screaming Frog SEO Spider

Время на прочтение20 мин
Охват и читатели115K
image

Для большинства людей общий аудит сайта – задача достаточно сложная и трудоемкая, однако с такими инструментами, как Screaming Frog SEO Spider (СЕО Паук) задача может стать значительно более простой как для профессионалов, так и для новичков. Удобный интерфейс Screaming Frog обеспечивает легкую и быструю работу, однако многообразие вариантов конфигурации и функциональности может затруднить знакомство с программой, первые шаги в общении с ней.

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

Автоматизация тестирования Java EE веб-сервисов с помощью SoapUI и Arquillian

Время на прочтение8 мин
Охват и читатели55K
Одним из преимуществ веб-сервисов является относительная простота тестирования. Действительно, в простейшем случае все, что нам нужно для проверки работы веб-сервиса – это отправить правильно сформированный HTTP-запрос любым удобным способом и проверить, что вернулось в ответ. С помощью SoapUI – инструмента для всевозможных видов тестирования веб-сервисов (более подробно о возможностях можно почитать на официальном сайте) – этот процесс можно сделать еще удобнее, автоматизировав его: мы можем создать набор тестов, указав в нем, какие запросы следует отправлять, и задав набор правил, которым должны удовлетворять ответы от сервиса. Но, тем не менее, эти тесты мы по прежнему должны будем запускать руками, а душа жаждет полной автоматизации. Действительно, почему бы не запускать эти тесты автоматически при сборке приложения (на CI-сервере или прямо на машине разработчика)?
Читать дальше →

Использование Java native library на серверах приложений

Время на прочтение3 мин
Охват и читатели12K
Java native library (JNL) представляет собой JAR-архив, содержащий в себе JNI-код и объекты, которые операционная система может загрузить в качестве разделяемых библиотек. Это позволяет вызывать из Java-приложения функции, реализованные платформо-зависимыми методами. Способы создания JNL — это тема отдельной большой статьи, поэтому считаем, что у вас уже есть JNL и вы хотите ею воспользоваться в своем приложении. Об особенностях использования JNL в приложениях, работающих под управлением сервера приложений, и будет эта статья.
Читать дальше →

Традиционное тестирование скоро умрет

Время на прочтение2 мин
Охват и читатели38K
Рутинные задачи в разработке ПО автоматизируются посредством приложений Continuous Delivery и DevOps. Разработчики берут на себя все больше и больше ответственности. Мне стало интересно какова будет роль традиционного тестирования и тестировщиков если посмотреть немного вперед.


Читать дальше →