Обновить
113.15

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

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

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

Работа с OZON (Merchants) API средствами PHP

Время на прочтение4 мин
Количество просмотров24K
Работаем над большим интернет-магазином. И вот возникла необходимость из УТ (1С Управление торговлей) управлять заказами на O Ozon.

Смысл такой: есть БД PostgreSQL, 1C'ка работает с этой базой, вносит данные о поступивших заказах, меняет статусы заказов. И есть также скрипт PHP, который лежит на сервере и выполняется по крону каждые 3 минуты. Что этот скрипт должен делать?

  • 1. Получать токен от API ozon;
  • 2. Забирать все новые заказы с Ozon. Создавать новый XML файл с полученными заказами;
  • 3. Получать из БД заказы с определённым статусом. Изменять статус этих заказов на Ozon. Изменять статус этих заказов в БД;
  • 4. Закрывать заказы с определённым статусом на Ozon. Изменять статус этих заказов в БД.
Читать дальше →

Тестируем асинхронный код

Время на прочтение5 мин
Количество просмотров13K
Асинхронный код – сложный. Все это знают. Писать асинхронные тесты – еще сложнее. Недавно я починил мигающий (flaky) тест и хотел бы поделиться некоторыми мыслями по поводу написания асинхронных тестов.

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



Тестируем throttler


Throttler (Ограничитель) – это класс, отвечающий за ограничение количества одновременных операций, выполняемых с некоторым ресурсом (например, пул соединения, сетевой буфер или ресурсоемкие операции процессора). В отличие от других инструментов синхронизации, роль ограничителя заключается в том, чтобы запросы, превышающие квоту, завершались ошибкой немедленно, без ожидания. Быстрое завершение важно, поскольку альтернатива, ожидание, потребляет ресурсы – порты, потоки и память.
Читать дальше →

Как мы тестировали российский speedtest

Время на прочтение6 мин
Количество просмотров34K
Тестирование сервиса wiTest.ru

Все хотя бы раз в жизни пользовались сервисом speedtest.net для измерения скорости доступа в Интернет дома или на работе. Точность не высокая, но зато бесплатно. Аналогичных сервисов мне лично известно более 20 как российских, так и зарубежных.

Возникла мысль оценить, насколько эти сервисы показывают «правду» относительно реальной картинки. Для этого был собран стенд, который имитирует «последнюю милю» абонентского подключения по технологиям: FTTx, GPON и xDSL. Логическая схема собранного стенда представлена на рисунке ниже.

Стенд тестирования wiTest

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

Как я скачивал онлайн трансляцию Comdi (Startup village)

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

Мы живем с вами в то время, когда видео с Youtube и других видеохостингов может скачать даже школьник с помощью огромного количества расширений для браузеров.
Что касается онлайн трасляций, то здесь уже не все так просто. В прошлом году еще задался целью скачать записи выступлений на Startup village в Сколково, но тогда ничего кроме захвата экрана не придумал. В этот раз решил пойти до конца и найти способ скачать онлайн трансляции. Готовых решений в интернете не видел, только многочисленные вопросы, как скачать с Comdi. Надеюсь кому-то мой опыт покажется полезным.
Читать дальше →

Как стать тестировщиком или каких знаний мы ждём от джуниора

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

image


Пара вводных слов
Всем доброго времени суток, меня зовут Туманов Дима. Сейчас я работаю в компании Rambler&Co и отвечаю за тестирование на проектах Афиши. В рамках данной статьи я развею несколько мифов об IT и тестировании в частности. Кроме того, приведу примеры из жизни как “не зная ничего” стать Junior QA Engineer в крупной компании.


Начало пути
Проработав почти два года в одной “мирной” госкорпорации в должности “ненастоящего инженера”, я осознал, что развитие остановилось. Я мог сидеть на одном месте и почти ничего не делать. В конечном итоге мои знания бы совсем отстали от реальной действительности и я бы стал невостребованным на рынке. В этот момент я принял решение о смене места и сути своей работы.

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

Delayed Durability или история о том как получилось ускорить выполнение автотестов с 11 до 2,5 минут

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


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

Стек технологий был изначально выбран мелкомягкий, а в качестве хранилища данных использовался SQL Server 2014 Express. Одним из первых тасков, которые мне поручили — это поисследовать возможность ускорения автотестов.
Подробнее

Как не дать частым релизам поломать ваше API, или пишем авто-тесты для открытого API и шлем результат в Telegram бот

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

Предисловие


Наша команда разрабатывает финансовые инструменты, в том числе открытые платежные API, и как многие проекты, работающие по практике continuous integration мы одновременно с созданием проекта 3 года назад начали думать над тем, как улучшить покрытие проекта тестами и добиться максимальной стабильности нашего кода при довольно частых изменениях (мы иногда устанавливаем обновления на продуктовую среду несколько раз в день). Особенно это важно в трех аспектах:

  • мы предоставляем наши API интерфейсы в открытый доступ клиентам и важно, чтобы все взаимодействие четко соответствовало описаниям спецификаций
  • мы интегрируемся с большим количеством других финансовых сервисов и банков, и помимо покрытия тестами своего кода мы вынуждены также покрывать интеграционными тестами взаимодействие с test (а иногда и prod) средой сторонних систем
  • наша внутренняя архитектура включает в себя большое количество микросервисов, которые общаются между собой по HTTP API

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

Парсер OOXML (docx, xlsx, pptx) на Ruby: наши ошибки и находки

Время на прочтение6 мин
Количество просмотров8.6K
Мы выложили парсер OOXML форматов на Ruby в open-source. Он доступен на GitHub'е и RubyGems.org, бесплатен и распространяется под лицензией AGPLv3. Всё как у модненьких Ruby-разработчиков.


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

QA MeetUp 17 июня в Нижнем Новгороде

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


17 июня в Нижнем Новгороде Mail.Ru Group снова проведет QA MeetUp. Событие будет интересно всем, кто работает в сфере тестирования. Приглашаем вас пообщаться с профессионалами из разных IT-компаний, передать свой опыт и получить новый. В программе встречи пять докладов.
Читать дальше →

Как построить грамотную систему тестирования? Инсайты от QA-экспертов: видео и презентации с митапа в Wrike

Время на прочтение1 мин
Количество просмотров22K
Какие инструменты облачного тестинга используют в Яндексе? Как устроено тестирование в Badoo? Что представляет собой система автоматизированного frontend-тестирования в Wrike?



Пару недель назад наш Wrike Tech club собрал около 150 специалистов по тестированию, чтобы обсудить в питерском офисе компании насущные, вечные и, на первый взгляд, почти неразрешимые проблемы QA в больших (и не очень) проектах. Как и обещали, делимся видео и презентациями со встречи.

Смотреть

Ускорение автоматизации тестирования веб-интерфейса за счет применения Python и Selenide

Время на прочтение4 мин
Количество просмотров12K
Одной из задач компании RTL-Service, которая занимается разработкой систем локального позиционирования с высокой точностью и обеспечением голосовой связи по зашифрованному каналу, является разработка веб-клиента:

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

UI тесты: Cucumber + Selenide

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

Часть 2


Продолжение статьи о написании UI тестов на Cucumber с помощью Selenide. В первой части был разобран простейший пример smoke-теста для riskmarket.ru. В этой части апгрейдим тест до полноценного проекта с отчетами, поговорим о скриншотах, кастомных Condition, проаннотируем элементы, введем PageObject.


Получившийся проект вполне можно использовать как фундамент для ваших UI тестов.


Проект на гитхабе


Видео исполнения теста на youtube



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

UI тесты: Cucumber + Selenide

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

Часть 1


Сегодня поговорим о создании UI smoke-теста для сайта с использованием фреймворков Cucumber и Selenide. Статья рассчитана на junior, который совсем ничего не знает про данные фреймворки. Опытный junior найдет во второй части интересные моменты, до которых я доходил пару месяцев.
Статья состоит из двух частей:


  • в первой описано создание нашего теста простейшим способом – чтобы запускалось и при этом никаких сложных вещей из фреймворков не использовалось. Только создадим описание фичи (.feature файл) и класс описания степов с использованием Selenide.
  • во второй части в тот же самый тест добавим всякие интересные штуки от Selenide, посмотрим, как создавать красивые отчеты, которые будут содержать текст фич (мн.ч от слова «фича»).

Фреймворки


Selenide – фреймворк (а точнее библиотека), обертывающий Selenium. Чем он отличается, прекрасно описано автором, Андреем Солнцевым. Главное отличие – Selenide позволяет сократить кучу строчек кода при написании UI тестов, что является одной из главных задач при создании тестов/написании кода, ибо Вы должны заботиться о том тестере, который придет после Вас и должен будет разбирать Ваше творение.


Cucumber – это фреймворк, реализующий подход BDD/TDD.


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

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

Как построить грамотную систему тестирования? Инсайты от QA-экспертов 19 мая в Питере

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


Какие инструменты облачного тестинга используют в Яндексе? Как устроено Selenium-тестирование в Badoo? Что представляет собой система автоматизированного frontend-тестирования в Wrike?

19 мая в питерском офисе Wrike состоится встреча специалистов по тестированию, где мы обсудим насущные, вечные и, на первый взгляд, почти неразрешимые проблемы QA в больших (и не очень) проектах.

О программе и докладах

Как понадеяться на МЧС и сгинуть в лесах Карелии — вредные советы от опытного туриста

Время на прочтение3 мин
Количество просмотров35K
Сижу я в комнате для раздумий и читаю «Вестник МЧС» от 2007 года, потому что баллончик освежителя уже надоел, а на обложке издания есть громкая фраза «Туристы должны быть защищены». А у меня как раз на носу турпоход на майских праздниках, грех не ознакомиться с материалом. В материале рассказано, что Александр Чуприян, в бытность свою замминистра, поднял актуальный вопрос о регулировании спасательных действий и глобальном учёте тургрупп, маршрутов следования и прочих данных для оперативного спасения туристов в случае внезапного ЧС. И деятельность такая на тот момент в некоторых регионах уже ведётся. И готовить будут многолетний план по распространению сей деятельности на все регионы.

image

«Туристы должны знать, что они защищены!» — поставил Александр Чуприян задачу коллегам по службе. Это было в далёком 2007 году.

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

Паттерны и антипаттерны Cucumber BDD

Время на прочтение7 мин
Количество просмотров21K
Потратив множество человеко-часов над разработкой автотестов для нескольких огромных проектов, я с полной уверенностью могу сообщить, что составил может быть далеко не полный, но уж точно достаточно крупный набор практик, с которыми хочется поделиться с каждым. Итак, следуя стопам классиков, хочу (надеюсь увидеть дополнения от вас в комментариях) составить:

Шаблоны проектирования Cucumber BDD сценариев


Цели:

  • получить готовый инструмент, при помощи которого станет возможным стандартизировать процессы разработки и контроля качества исполняемых сценариев, построенных для работы в Cucumber-based технологических стеках (cucubmer jvm, SpecFlow и проч.)
  • получить набор правил, позволяющих специалистам с разных проектов легко мигрировать между проектами без длительной фазы привыкания
  • получить чистый, легко-читаемый код сценариев, который легко расширяется и слабо подвержен полным переписываниям текстов сценариев при минимальных изменениях UI

Итак, поехали!
Читать дальше →

Реализация мониторинга и интеграционного тестирования информационной системы с использованием Scalatest. Часть 2

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


В предыдущей статье Реализация мониторинга и интеграционного тестирования информационной системы с использованием Scalatest мы говорили о создании проекта в Idea и написании простых тестов. В этой части мы рассмотрим некоторые особенности работы фреймворка, а также приемы для решения задач, возникающих в ходе написания тестов.
Более детально остановимся на специфике запуска тестов, разберем детали формирования отчетов, особенности работы с Selenium, а также обратим внимание на таймауты, ожидания, вызовы команд операционной системы, формирование jar файла с тестами
Читать дальше →

QA: Conference. Сертификаты и репортажная лента в трансляции

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


Мы в прошлом посту анонсировали онлайн билеты для нашей конференции QA: Conference. Сейчас я хотел бы немного раскрыть карты касательно онлайн формата. Если посмотреть на страницу трансляции, то станет видно что на ней три зоны: Сам поток (можно выбирать среди 3 залов), комментарии — снизу и справа — репортажная лента. Также мы вводим сертификаты посещения мероприятия. Для чего все это?

Репортажная лента


Прямо во время конференции помимо видео операторов и фотографов будут проводить репортаж несколько профессиональных тестировщиков. Так обычно делают Microsoft и Apple во время своих мероприятий. Один из них — это один из ведущих на Radio QA Алексей Виноградов, который провел уже более 20 выпусков своего подкаста и готов вести репортаж прямо с конференции. Для вас это означает что ведущие будут комментировать как само событие, так и доклады (причем в разных залах, давая возможность вам переключаться на те доклады, которые вам больше нравятся), освещая основные идеи из них.
Читать дальше →

4.04

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

Ежегодно 4 апреля свой профессиональный праздник — Международный день вебмастера, отмечают разработчики сайтов и приложений для интернета. Дата празднования неофициального праздника совпадает с Международным днем интернета и своим видом очень напоминает типичную ошибку 404, сигнализирующую о ненайденной странице.


День «Четыре. Ноль четыре» —
Красный день календаря,
Я спешу, мой друг, поздравить
С днём вебмастера тебя!

Пусть работает успешно
Всё до самых мелочей,
Чтоб всем мир интернета
Стал реальности милей.

Не пропусти js-ошибку

Время на прочтение2 мин
Количество просмотров27K
Разрабатывая и тестируя сайт, зачастую замечаешь не все js-ошибки. Это происходит по ряду причин:
  • отсутствие консоли в некоторых мобильных и планшетных браузерах;
  • открытая консоль мешает при тестировании, перекрывая видимую часть страницы;
  • консоль открывают когда страница уже загрузилась и ошибки, возникающие при загрузке, теряются (Firebug в Firefox, Internet Explorer);
  • при разработке часто отключают логирование ошибок в системах аналитики, чтобы не было лишнего «шума» при анализе ошибок;
  • и прочее.
Читать дальше →