«Яндекс» открыл доступ к исходному коду фреймворка Testsuite 

«Яндекс» открыл доступ к исходному коду фреймворка Testsuite 

18.03.2020     

Компания «Яндекс» разработала фреймворк Testsuite специально для тестирования сервиса «Яндекс.Такси». Теперь доступ к продукту открыли для всех желающих – исходный код Testsuite выложили на GitHub под лицензией MIT.

Зачем нужен Testsuite 

Фреймворк создан для тестирования HTTP-сервисов. Он позволяет создавать запросы к API таких сервисов и анализировать ответы, отслеживать цепочки вызовов во внешние системы. 

Также фреймворк дает возможность перехватывать HTTP-запросы, которые ваш продукт отправляет во внешние сервисы, и обрабатывать их. 

С помощью Testsuite вы можете в тесте взаимодействовать с подключенной базой данных (из коробки поддерживаются PostgreSQL, MongoDB, Redis) – например, чтобы задать предусловие для выполнения теста через проверку результата запроса. 

Как устроен тестовый фреймворк 

В основу Testsuite лег pytest – самый популярный тестовый фреймфорк для Python. Но использовать его можно для тестирования продуктов, которые не обязательно написаны на Python. Так, «Яндекс.Такси» – это композиция сотен микросервисов, высоконагруженных компонентов на С++ и менее требовательных к ресурсам на Python. Но Testsuite успешно применяется и для тех, и для других.

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

В рамках тестирования каждый микросервис запускается в отдельном процессе. Кроме того, стартует mockserver – веб-сервер, который имитирует работу внешнего окружения. Он подменяет вызовы HTTP API внешних сервисов. 

Настраивать обработчики запросов на сервере можно для каждого теста. При этом mockserver будет помнить, какие запросы были обработаны и какие данные передавались. 

Непосредственно тесты Testsuite позволяют проверить, правильно ли исследуемый сервис обрабатывает HTTP-запросы. Они помогут отследить внутреннее состояние сервиса, его работу с базой данных и вызовы во внешние сервисы. 

Использование Testsuite 

Разработчики отметили, что применимость фреймворка как инструмента тестирования зависит от уровня детализации исследуемого продукта. Так, библиотеки, компоненты, а также отдельные классы, методы и функции удобно тестировать не столько с Testsuite, но с применением стандартных unit-тестов, фреймворков Googletest и pytest. 

Наиболее эффективная сфера применения Testsuite – это тестирование микросервисов. Кроме этого, фреймворк позволяет создавать и запускать интеграционные тесты для ансамблей микросервисов. Причем, если сервисы написаны на Python, Testsuite подойдет и для тестирования низкоуровневых взаимодействий между ними. 

Сейчас Testsuite работает только в операционных системах GNU/Linux и macOS, требуя установки Python и pytest3. Чтобы начать работу, нужно иметь базовое представление о синтаксисе Python. Желательно познакомиться и с pytest – это облегчит создание собственных тестов в Testsuite. 

Разработчики предоставили подробную документацию по проекту и примеры тестов с инструкцией по настройке и запуску фреймворка.

Критика

Разработчики в комментариях к статье о Testsuite на Habr отметили, что продукт – скорее не фреймворк, а набор отдельных инструментов и плагинов для pytest. Конечно, он упрощает работу с оригинальным фреймворком, но в целом не является чем-то уникальным и незаменимым. 

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



Источник: https://infostart.ru/journal/news/tekhnologii/yandeks-otkryl-dostup-k-iskhodnomu-kodu-freymvorka-testsuite_1212496/
Автор:
Ксения Шестакова Обозреватель


Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

Создатель Linux высказался за увеличение длины строк кода

Новость Linux

Золотым стандартом для кода ядра Linux считаются 80-символьные строки. Но Торвальдс предлагает увеличить значение до 100 символов.

вчера в 16:30    521    user1015646    12       

«Ростех» внедрит в вузах России учебного промышленного робота с исходниками на GitHub

Новость GitHub Робототехника

Госкорпорация «Ростех» создала компактного робота для обучения студентов вузов и колледжей. Исходный код для управления устройством выложен на GitHub, учебные заведения могут дорабатывать его под свои нужды. 

вчера в 09:50    255    VKuser24342747    1       

Microsoft призвала пользоваться PowerShell вместо CMD

Новость Infostart Software Partners Маркет Новости компаний

Microsoft порекомендовала пользоваться инструментом PowerShell вместо классического интерпретатора CMD (cmd.exe). Разработчики не будут заниматься доработкой CMD, но оставят его в системе для обеспечения совместимости. 

04.06.2020    597    user1015646    20       

Из реестра российского ПО могут удалить ОС на ядре Linux

Новость Linux Минкомсвязь

Правила, которыми руководствуется Минкомсвязь, запрещают добавлять в реестр ПО с компонентами, которые распространяются по свободным лицензиям GPL и MPL.

02.06.2020    587    user1015646    8       

Опубликован релиз платформы Electron 9.0.0 для создания приложений на базе движка Chromium

Новость Linux

Создатели обновления повысили эффективность обработчика событий окна в Linux, улучшили просмотрщик PDF и многое другое.

01.06.2020    663    SKravchenko    0       

Microsoft планирует объединить UWP и Win32-приложения при помощи проекта Reunion

Новость Новости компаний

Reunion призван объединить платформу разработчиков Windows, которая в настоящее время разбита между Win32 и универсальной платформой Windows (UWP).

29.05.2020    634    SKravchenko    0       

«Яндекс» запустил бесплатную облачную платформу для разработки нейросетей

Новость Искусственный интеллект Облачные технологии

«Яндекс» запустил новый сервис DataSphere, позволяющий проводить в облаке ресурсоемкие вычисления для машинного обучения. Во время тестирования услуга полностью бесплатна для разработчиков. 

29.05.2020    906    VKuser24342747    1       

В Беларуси заработал сервис видеоконференций на основе российской облачной платформы

Новость Облачные технологии Стартапы

Сервис видеоконференцсвязи на базе российской облачной платформы IVA MCU запустили в Беларуси. Услуги предоставляет республиканский провайдер облачных услуг beCloud. 

28.05.2020    486    user1015646    0       

Microsoft открыла исходники для 37-летнего языка GW-BASIC

Новость Новости компаний Языки программирования

Microsoft представила исходный код интерпретатора языка программирования GW-BASIC. 37 лет назад он был одним из самых популярных языков для написания программ и игр. 

28.05.2020    689    VKuser24342747    2       

Создатель Linux отказался от Intel в пользу AMD

Новость Linux Микроэлектроника

Линус Торвальдс стал использовать для работы компьютер на базе процессора AMD. Предыдущие 15 лет он отдавал предпочтение ПК на компонентах Intel. 

27.05.2020    888    user1015646    9       

Microsoft Build 2020: переход в онлайн и главные анонсы

Новость Infostart Software Partners Маркет Новости компаний

Компания Microsoft на конференции Build 2020 представила не только технологии будущего, но и полезные практические решения, которыми будут пользоваться миллионы людей по всему миру.

26.05.2020    1426    user1015646    1       

Microsoft создаст единую платформу для разработки под Windows

Новость Infostart Software Partners Маркет Новости компаний

Компания представила единую платформу для разработки под Windows, функционал для ответственного использования машинного обучения и другие инструменты для разработчиков. 

25.05.2020    1388    VKuser24342747    3       

Разработчик Node.js запустил новую JavaScript-платформу Deno 1.0

Новость Языки программирования

Создатель платформы для JavaScript-разработки Node.js Райан Даль выпустил первый официальный релиз нового проекта – Deno 1.0.

25.05.2020    796    user1015646    1       

Facebook создал тестовый клон своей сети и населил его умными ботами

Новость Соцсети

Компания Facebook разработала платформу-имитацию оригинальной соцсети. Ее населили ботами, чтобы разработчики отработали различные сценарии поведения без ущерба для пользователей

14.05.2020    1029    user1015646    0       

GitHub представил сервис для облачной разработки Codespaces

Новость GitHub

Крупнейший сервис хранения репозиториев кода GitHub выпустил масштабное обновление – компания представила встроенную IDE с инструментами для облачной разработки Codespaces, форумы для обсуждения кода, средства защиты репозиториев и другие новшества

12.05.2020    1718    user1015646    1       

Состоялся релиз Linux-дистрибутива Ubuntu 20.04 LTS

Новость Linux Ubuntu

23 апреля, Canonical объявили о доступности дистрибутива Ubuntu 20.04 LTS, под кодовым названием Focal Fossa. Этот выпуск с долгосрочной поддержкой включает в себя новую тему для рабочего стола и темный режим. Под капотом вы найдете обновленное ядро Linux 5.4 и новый способ установки приложений.

08.05.2020    1557    SKravchenko    0       

Новые возможности видеомессенджера Google Duo

Новость Google Мессенджеры

Мессенджер Google Duo повысил качество видеозвонков благодаря новой технологии видеокодеков. Кроме этого разработчики добавили 4 новые функции, которые должны сделать его использование более комфортным.

07.05.2020    1154    SKravchenko    1       

Проверка на прочность: разработчиков заставили доказать надежность ОС «Аврора»

Новость ОС Безопасность Госзакупки Импортозамещение Мобильные приложения

Российская мобильная ОС «Аврора» должна была стать основной системой для смартфонов и планшетов, которые планировали закупать для чиновников и госкомпаний. Но чтобы госзакупки состоялись, правительство потребовало у разработчиков подтвердить надежность продукта.

07.05.2020    1686    user1015646    2       

Apple и Google объединились в борьбе с коронавирусом

Новость Mac OS Google

Apple и Google объединились для борьбы против COVID-19. В блогах компаний появился анонс разработки на основе Bluetooth, помогающей правительствам всего мира сдерживать распространение заражения

28.04.2020    1486    feva    3       

IBM возродит язык программирования COBOL

Новость Языки программирования

Компания IBM решила, что «древний» язык рано списывать со счетов, и намерена возродить его. 

28.04.2020    2131    user1015646    3       

Бесплатная конференция по управлению данными и искусственному интеллекту

Новость

24 апреля состоится бесплатная онлайн-конференция от сообщества лидеров цифровой трансформации Global CIO – «Управление данными и искусственный интеллект». 

22.04.2020    1464    kbazzh    0       

Git – 15 лет: как появилась и чего достигла самая популярная система контроля версий

Новость git

7 апреля система контроля версий Git отметила 15-летие. Решение, разработанное легендарным Линусом Торвальдсом, используют миллионы разработчиков по всему миру. Рассказываем, как создавалась система и почему она так популярна.

22.04.2020    2100    user1015646    0       

Нейросеть Microsoft будет помогать программистам допускать меньше багов

Новость ИТ-компания Искусственный интеллект Маркет Языки программирования

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

21.04.2020    1917    VKuser24342747    5       

Эксперты спрогнозировали рост рынка дата-центров из-за коронавируса

Новость Аналитика

Исследователи из iKS-Consulting пришли к выводу, что при позитивном сценарии развития пандемии российский рынок ЦОДов сохранит темп роста в 15%. При негативном произойдет замедление развития. 

20.04.2020    1449    VKuser24342747    0       

CorelDRAW Graphics Suite 2020: ИИ, быстродействие и возможность совместной работы

Новость Infostart Software Partners Искусственный интеллект Маркет

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

16.04.2020    2136    iivanov1    13