Рубрика «Тестирование веб-сервисов» - 62

image

Предисловие

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

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

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

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

Парсер OOXML (docx, xlsx, pptx) на Ruby: наши ошибки и находки - 1
Читать полностью »

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

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

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

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

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

Читать полностью »

Часть 1

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

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

Фреймворки

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

Cucumber – это фреймворк, реализующий подход BDD/TDD. Я не претендую на глубокое теоретическое знание BDD/TDD, пока что для меня они суть одно и тоже.

Читать полностью »

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

image

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

Читать полностью »

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

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

Цели:

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

Итак, поехали!
Читать полностью »

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

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

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

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

Репортажная лета помимо того что дает понимание что происходит на конференции, позволяет подключаться к докладам в тот момент, который вам удобен. Увидели что ведущий написал что-то интересное? А на текущем докладе пока идет вводная? Переключились, посмотрели, переключились обратно. Боитесь что надо отойти и пропустите самое интересное? трансляцию можно поставить на паузу. Вкупе с репортажной лентой на мой взгляд это становится очень удобным инструментом

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

Сертификаты посещения

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

Не забываем что у нас есть классный сайт: QA: Conference
Читать полностью »

Пару лет назад писал статью, где рассматривались первые из списка выдачи в поисковиках хостинг-провайдеры по запросам VDS, VPS или виртуальный сервер. Идея была проста: понять и показать, чем они отличаются, да и утолить жажду собственного интереса.
Сегодняшние реалии таковы, что чуть ли не каждый день появляется одностраничный сайт, предлагающий приобрести хостинг или сервер. Не трудно догадаться, что периодически они же и закрываются. Достаточно вспомнить печально известный cloudmouse с тысячами клиентов (как они сами заявляли).

Причина такого «разнообразия» выбора, на мой взгляд кроется в том, что практически любой крупный провайдер предлагает, как один из вариантов партнёрской программы, возможность перепродажи собственных услуг под чужим брендом, полностью white-label. Итог: провайдеру-однодневке не нужно иметь ни дата-центр, ни оборудования, ни даже службу поддержки. Только одностраничный web-сайт с какой-либо системой биллинга. Должен отметить, что некоторые открыто заявляют о перепродажи чьих-либо услуг, однако риски те же: случись что-либо с данным реселлером (заболел, уехал, забыл, надоело) – ваш сервер будет удалён действительным исполнителем за неуплату.

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

Итак, зайдя в google, я выбрал с десяток сайтов хостинг-провайдеров. Приоритет при выборке я отдавал тем, кто предлагает бесплатный тест, ибо не нашлось желающих выделить несколько тыс. руб. на закупку серверов.
Конфигурация серверов везде одинаковая: 2 ядра процессора, 1 или 2ГБ RAM и 30ГБ дискового пространства.

Сам тест очень простой:

  1. Производительность дисковой системы, как одна из важнейших причин почему сервер тормозит. Здесь использовалось тоже самое ПО, что и ранее: HD Tune Pro и CristalDiskMark.
  2. Производительность и стабильность этой же производительности процессора. Было создано простенькое ПО на C++, которое на 10 секунд раз в 15 минут полностью нагружало процессор и считало количество выполненных операций
    void cpu_intensive_task() {
        double value = 0.0;
        for (int i = 0; i < 1000000000; ++i) {
            value += std::sqrt(3.1415926);
        }
    }
  3. Скорость работы сети: через speedtest.net поведены замеры от дата-центра до различных городов в России и в мире.
  4. Обращал внимание на возраст оборудования (по моделями процессоров)

Результаты получились такие:
Читать полностью »

Разрабатывая и тестируя сайт, зачастую замечаешь не все js-ошибки. Это происходит по ряду причин:

  • отсутствие консоли в некоторых мобильных и планшетных браузерах;
  • открытая консоль мешает при тестировании, перекрывая видимую часть страницы;
  • консоль открывают когда страница уже загрузилась и ошибки, возникающие при загрузке, теряются (Firebug в Firefox, Internet Explorer);
  • при разработке часто отключают логирование ошибок в системах аналитики, чтобы не было лишнего «шума» при анализе ошибок;
  • и прочее.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js