Как стать автором
Поиск
Написать публикацию
Обновить
92.8

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

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

Сначала показывать
Период
Уровень сложности

Протестируй это: как мы определяем, какие тесты запускать на пулл-реквест-чеках

Время на прочтение5 мин
Количество просмотров4.5K
Привет, Хабр! Меня зовут Егор Даниленко. Я занимаюсь разработкой цифровой платформы корпоративного интернет-банка Сбербанк Бизнес Онлайн, и сегодня я хочу рассказать вам о процедуре CI разработки, принятой у нас.
Читать дальше →

Как составить стратегию тестирования: версия настоящих инженеров

Время на прочтение10 мин
Количество просмотров118K
Без стратегии тестирования можно наверняка обойтись, если есть бесконечное количество квалифицированных сотрудников, времени и денег. Словом, возможность пилить один релиз годами. В таких гипотетических идеальных условиях никакая стратегия не нужна, потому что вы можете тестировать ваш продукт всеми существующими способами как угодно долго, применяя техники в любом порядке, на несколько кругов, и рано или поздно каким-то путем вы придете к production ready качеству.

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

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


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

REST-assured: полезные советы

Время на прочтение4 мин
Количество просмотров110K
В данной статье я собрал полезные советы по использованию REST-assured, одной из самых распространенных Java-библиотек для автоматизации тестирования REST-API.

Все примеры жизненные, они собраны из моей практики проведения code-review в более чем 50 проектах с автотестами.
Читать дальше →

Как я нашёл баг в системе Avios Travel и получил тысячи валидных баллов для авиамиль

Время на прочтение4 мин
Количество просмотров6.9K


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

Это история о том, как я нашел ошибку в программе вознаграждений Avios Travel, который позволяет исполнить эту мечту*.
Читать дальше →

Нагрузочное тестирование «не-HTTP». Ч.1 JMeter

Время на прочтение7 мин
Количество просмотров13K

В монолите вызовы методов делались внутри одного приложения — теперь, в микросервисной архитектуре, всё взаимодействие осуществляется через сеть. Соответственно, скорость обмена информации между приложениями падает вне зависимости от используемого протокола обмена.


В этой статье мы расскажем, как писать код для нагрузочного тестирования «не-HTTP» протоколов на примере Apache Thrift с помощью таких инструментов, как JMeter и Gatling (часть 2). Тестировать будем микросервис, который должен справляться с 50K RPS. С одной нагрузочной машины постараемся достичь производительности, заявленной в этом твите:


Автоматизируй мне тестирование полностью, дёшево, навсегда: анонс QA-митапа в Avito 26 августа

Время на прочтение3 мин
Количество просмотров5.4K
Сегодня я хочу пригласить вас в субботу, 26 августа, на первый Avito Automation meetup. Что там будет? Довольно предметный разговор про развитие систем автоматизации и прикладные инструменты. Чего мы ждём от мероприятия? Конструктивного общения и обмена мнениями среди профессионалов.

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



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

Дело было вечером. Автомасштабируемый веб-сервис с балансировкой нагрузки на примере Bitrix в Google Cloud Platform

Время на прочтение7 мин
Количество просмотров11K
Сразу стоит оговориться, что данная статья написана скорее не для того, чтобы показать возможность работы данного продукта на Google Cloud Platform (GCP), он и без этого будет на ней работать. Bitrix был взят для опытов просто как популярная платформа. Он и сам умеет строить пулы, ноды и прочее в своем “веб окружении”, правда со своими грабельками. И именно поэтому были взяты даже машины на Debian для тестов, а не любимый всеми CentOS.

На самом деле материал применим ко многим веб-проектам. Точнее это простенький гайд по построению отказоустойчивых и распределенных приложений на базе виртуальных машин Google Compute Engine, баз Google Cloud SQL и балансировщика нагрузки Google.
Читать дальше →

Автоматизированное тестирование ботов для Telegram

Время на прочтение5 мин
Количество просмотров24K
Кажется, что время — это река, которую внезапно переклинило, и она решила течь по кругу. Именно такое впечатление складывается на первый взгляд, когда видишь, что вновь стали популярны боты в мессенджерах. Но это впечатление обманчиво. Изменилось очень многое — мощности, которые стоят за ботами, возможность обработки ими мультимедиа информации, наличие информации о пользователях, круг охвата… В общем, это явно не ностальгический тренд, а реально полезная технология, которая будет развиваться и дальше.

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

Для некоего личного проекта мне захотелось написать бота с довольно сложной ветвящейся логикой (например, это может быть система поддержки или диагностики с глубокой вложенностью). При этом граф данной логики имеет огромное количество разветвлений. В общем, быстро стало очевидно, что без автоматизированного тестирования не обойтись — иначе что-то точно упущу из внимания. И насколько же сильно я удивился, когда узнал, что способа тестировать логику ботов просто нет!

Конечно, можно зарегистрировать дополнительного бота для тестирования, но это вариант кривой и некрасивый. Обращение ко внешнему апи во время тестов, заглушка, которая не даст общаться с ботом кому попало, ограничение на скорость отправки сообщений раз в секунду… Если слать сообщение раз в секунду, то граф из каких-то 60 вершин будет тестироваться уже больше минуты! И я уже не говорю о том, что у нас нет никакой возможности смоделировать возросшую нагрузку на бота, при которой он упрётся в ограничение в 30 сообщений в секунду… В общем, я понял, что опять придётся делать что-то своё.
Читать дальше →

Документирование #микросервисов

Время на прочтение5 мин
Количество просмотров107K


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


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

Оповестить любой ценой о падении сайта. Практические советы

Время на прочтение4 мин
Количество просмотров9.3K
Что делать, когда нужно донести клиенту информацию? И нет, речь идет не о надоедливых рассылках об акциях и спецпредложениях. Если вот действительно суть услуг в том, чтобы клиент вовремя что-то узнал? Сервис мониторинга сайтов ХостТрекер, в чьи обязанности входит немедленное оповещение клиентов о возникших проблемах, делится опытом. Окунуться в возникающие проблемы и запросы можно ниже.


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

Обзор современных систем веб-рабочих столов

Время на прочтение4 мин
Количество просмотров27K
Привет, великий Хабр! В наше время Интернет бурно развивается. Теперь, это не просто хранилище информации. Мы общаемся в сети, активно используем облачные сервисы для хранения собственных файлов, создаем в веб-приложениях документы, рисунки и презентации, пользуемся онлайн-переводчиком, играем в онлайн-игры и так далее.

В виртуальном пространстве Интернета, на мой взгляд, всегда удобно иметь в своем распоряжении привычный рабочий стол, который сосредоточил бы в себе все необходимые для пользователя приложения и позволил работать с данными непосредственно в браузере. На сегодня Интернет – это одна из бурно развивающихся отраслей IT-сферы и в последнее время особую популярность приобрели облачные технологии, в частности все больший интерес получают так называемые «онлайн операционные системы».

Система веб-рабочих стола организует для пользователя набор приложений и сервисов прямо в Интернете, доступный в любом месте и на любом устройстве. Основой каждого такого рабочего стола является интерфейс — аналог проводника и рабочего стола обычной операционной системы (Windows, Mac OS, Linux).
Читать дальше →

TailSampler — паралельная отправка GET-запросов в Apache.JMeter

Время на прочтение14 мин
Количество просмотров14K

 

1. Назначение плагина «HTTP Request Tail»


Плагин упрощает загрузку встроенных ресурсов, позволяет параллельно выполнять указанные GET-запросы. Делая тест максимально близким к работе браузера по составу загружаемых ресурсов и по способу загрузки этих ресурсов.

TailSampler выручает если нужно:

  • выполнить группу GET-запросов паралельно;
  • выполнить 1000 GET-запросов, не создавая 1000 компонентов HTTP Request;
  • протестировать сайт, активно использующий AJAX, Adobe Flash, Adobe AIR, SilverLigth, ...

Первый митап RamQA

Время на прочтение1 мин
Количество просмотров3.5K
29 сентября c 19:00 до 22:00 пройдёт наш первый митап по тестированию и обеспечению качества разработки. В этот раз мы поговорим про автоматизацию мобилок, автоматизацию управления и об устройстве тестирования в одной известной компании.

image

На встрече мы услышим 3 доклада.
Читать дальше →

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

Создаем заглушки сервисов для интеграционного тестирования на Apache Camel (с использованием Scala DSL)

Время на прочтение14 мин
Количество просмотров17K
image


Это третья статья об использовании Scala в тестировании. Сегодня будут рассмотрены примеры использования Apache Camel для создания тестовых заглушек, а также компонентов информационной системы.


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


Для разовой проверки интеграции мы бы использовали простое Java или Scala приложение, сценарий Apache JMeter или SoapUI. Но нам нужна система, которая постоянно работает, отвечает на запросы и не требует действий со стороны тестировщика — запустил и забыл. Для решения такой задачи мы можем создать приложение, основанное на фреймворке Apache Сamel.

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

Server-less API на AWS за 15 минут

Время на прочтение6 мин
Количество просмотров18K
Amazon Web Services позволяют очень быстро производить прототипирование простых веб-приложений, и написать API, допустим, для простого мобильного приложения можно за считанные минуты. Мы будем использовать связку DynamoDB и API Gateway (без Lambda-функций!) для настройки GET и POST запросов к базе с возможностью чтения, записи и изменения данных в ней.


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

6 впечатляющих веб-технологий 2015 года

Время на прочтение5 мин
Количество просмотров55K
2015 год выдался богатым на нововведения, связанные с улучшениями веб-платформы. Аксель Рошмайер рассматривает 6 технологий, которые ему кажутся наиболее интересными:

1. Electron;
2. React Native;
3. Прогрессивные веб-приложения;
4. Visual Studio Code;
5. Rollup;
6. WebAssembly.



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

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

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

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

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

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

Google Developers Launchpad — всё что нужно для успешного старта

Время на прочтение1 мин
Количество просмотров13K
Привет, Хабр! Мы стараемся поддерживать разработчиков инструментами, технологиями, информацией и вниманием. Одно из направлений нашей деятельности — программа Google Developers Launchpad, система поддержки стартапов и разработчиков приложений. Она была не так давно запущена в мире и практически сразу пришла и в Россию.



В рамках этой программы мы предоставляем различные возможности: как бизнес-услуги, PR-продвижение, так и технические вещи. Например, доступ к сервису Firebase, расширенный доступ к Google Maps API, к инструментам тестирования и тому подобное. Мы также даём возможность командам один на один пообщаться с экспертами Google, которые могут оценить дизайн и инфраструктуру приложения, посоветовать, как лучше реализовывать те или иные функции или оптимизировать приложение.

Программа перспективная и ряд российских проектов уже прошел или сейчас проходит через неё. Вместе с проектом AppTractor.ru мы отобрали шесть участников Launchpad и поговорили с ними об их работе.
Читать дальше →

Альтернативная классификация багов

Время на прочтение3 мин
Количество просмотров21K
Любой тестировщик сталкивается по своей жизни с тьмой багов. Иногда их так много, что хочется хоть как-то их сгруппировать и выделить какие-то правила по нахождению, а для этого требуется классификация. Русскоязычные ресурсы предлагают классифицировать баги по их серьезности, приоритету, размеру, месту и частоте возникновения.
Читать дальше →

Как в Postman использовать данные из файла

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.2K

В Postman есть возможность загружать данные из файла — указал в запросе «возьми имя из файла», сделал файл на 100 имен, и вуаля! Запускаешь 1 запрос, а он выполняется 100 раз с разными данными.

Так удобно готовить тестовые данные. Заранее прикинул классы эквивалентности, и создал всё одним махом. Нужно исправить? Вот он, файлик, в формате csv или json — легко читается, легко исправляется. 

А вот что с этим файликом делать дальше? Как сказать постману, что мы хотим подставить эти данные в запрос или в автотест? Где какой синтаксис использовать? Об этом и поговорим в статье на примере системы Users.

Читать далее