video-kniga.ru

Яндекс xxx.com

Яндекс xxx.com нагрузочного тестирования в Яндексе Тестирование IT-систем Я хочу сегодня вспомнить о том, как нагрузочное тестирование в Яндексе появилось, развивалось и устроено. Кстати, если вам понравится этот рассказ, приходите на Тестовую среду в нашем питерском офисе 30 ноября зарегистрироваться— там я расскажу больше об игровых механиках в тестировании и с удовольствием вживую с вами поговорю.

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

Из коммерческих утилит выделялся HP Load Runnerно дороговизна лицензий и завязка на проприетарный софт нас не обрадовала. Поэтому Тимур вместе с разработчиком высокопроизводительного веб-сервера phantom Женей Мамчицем придумали хитрый трюк: Так получился модуль phantom-benchmark. Сам код фантома теперь открыт и его можно скачать отсюдаа рассказ про фантом можно посмотреть видео с презентации.

Тогда Phantom был очень прост, умел измерять только максимальную производительность сервера, а мы могли лишь ограничивать количество потоков. Но уже в то время наша утилита была на голову производительней аналогов. Поэтому за нагрузочным тестированием к нам стали обращаться все чаще и все больше сервисов. С до года команда нагрузочного тестирования разрослась до десяти человек. Танковая тематика до сих пор с нами. Платформа виртуализации в то время была на openvz, а сейчас яндекс xxx.com полностью перешли на lxc из-за лучшей поддержки новых ядер и дистрибутивов ubuntu server.

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

Веб-интерфейс научился отображать процентили, тайминги, средние времена, коды ответа, объем получаемых и передаваемых данных и еще около 30 различных графиков и таблиц. Помимо этого Лунапарк был провязан с почтой, джаббером и другими сервисами. Изменения не обошли стороной яндекс xxx.com сам генератор нагрузки Phantom — он научился делать очень многое из того, чего не умел раньше.

Например, подавать запросы по расписанию яндекс xxx.com линейно, ступенчато, снижать нагрузку и даже! В консольный яндекс xxx.com добавился агрегационный вывод с процентилями, мониторинг объема данных, яндекс xxx.com, ответов. Так выглядел яндекс xxx.com вывод образца года. Постепенно пришло понимание, что нужно не только постоянно тестировать некоторые сервисы, но и сопровождать их из года в год от релиза к релизу, а также уметь сравнивать тесты между.

Так появились важные для работы нагрузочного тестировщика страницы Лунапарка: Так выглядели их первые версии. Тестировщик, разработчик или менеджер в любой момент мог узнать, как развивается продукт с точки зрения производительности. Сейчас мы работаем над улучшением и выносом этих страниц во главу фреймворка. На текущем этапе развития яндекс xxx.com наиболее важны не единичные тесты, а тренды производительности. В году произошло важное событие — мы стали первой командой в Яндексе, запустившей настоящую геймификацию рабочего процесса, о которой у яндекс xxx.com будет отдельный доклад на Тестовой среде.

Такое даже сейчас редко встречается и в самых продвинутых IT-компаниях. Среди рутинной работы любая ачивка или спасибка на вес золота. Это очень здорово мотивирует. Команду разработки возглавил Андрей undera Похилько. Сообщество тестеров знает его как разработчика замечательных плагинов для Jmeter. Андрей яндекс xxx.com свежие идеи и подходы, которые яндекс xxx.com очень яндекс xxx.com в работе. Писать phantom-протоколеры на каждый такой сервис нам показалось дорого, и мы решили встроить в Лунапарк обычный Jmeter.

Тем самым небольшими усилиями яндекс xxx.com научились поддерживать в нагрузочном тестировании несколько десятков новых протоколов. Встраивание помогло нам оставить стандартный вебинтерфейс без перехода на Jmeter GUI. В определенный момент яндекс xxx.com на яндекс xxx.com тестирование повалило так много, что нам стало очевидно: Для решения этой яндекс xxx.com мы проанализировали всю нашу текущую каждодневную работу, и оказалось, что к сервисам нужно подходить с разной степенью глубины тестирования.

Мы придумали следующую схему работы: Для тестирования прототипов или экспериментальных сборок мы сделали отчуждаемую версию генератора нагрузки и, чтобы не отвлекать нагрузочников от более подготовленных проектов, стали рекомендовать ее разработчикам яндекс xxx.com системным администраторам для отладочных нагрузочных тестов своего прототипа.

Для тестирования разовых или событийных сервисов, где нагрузка может внезапно вырастать в яндекс xxx.com раз Спорт, ЕГЭ, Новости, Промопроектымы держим быстроподнимаемые виртуальные машины, где раскатываются готовые пакетированные сервисы.

Тесты проходят в ручном режиме со снятием удаленной телеметрии с объекта нагрузки. Иногда процесс координируется в специальных чат-комнатах, яндекс xxx.com может сидеть до человек: Окончательные результаты документируются в JIRA.

Пример онлайн страницы проводимого теста. Для анализа яндекс xxx.com желанию можно включать дополнительные графики, например, времена ответа. HTTP и сетевые ошибки: Времена на разных стадиях взаимодействия и потоки: Для регрессионных тестов, или для тестов, приемка результатов которых проводится разработчиками, либо администраторами, мы яндекс xxx.com так называемые автоматические и полуавтоматические тесты.

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

Мы посмотрели на варианты этих инструментов и обнаружили, что открытых фреймворков не так. Jenkins показался нам наиболее удобным для расширения функциональности с помощью плагинов и, потестировав его рядом с Лунапарком, внедрили его в тестирование. Яндекс xxx.com помощью внешних вызовов к специальному API и встроенного планировщика мы смогли переложить всю рутинную работу тестеровщика на Jenkins. Яндекс xxx.com экономит нам десятки человек в штате и позволяет сконцентрировать интеллект тестера на ручных исследовательских тестах.

Внимательный читатель заметит, что постепенно Лунапарк стал представлять собой раздельную структуру: Летом года на одном из Яндекс. Субботников в Москве яндекс xxx.com представили лоад-генератор сообществу тестировщиков. Танк с легкими графиками, со встроенной поддержкой jmeter и ab развивается только на внешнем гитхабе, мы отвечаем на вопросы пользователей в клубике и принимаем внешние пулреквесты от разработчиков.

Мы знаем, яндекс xxx.com сообщество нагрузочных тестировщиков в Рунете невелико, доступные знания очень яндекс xxx.com и поверхностны, но тем не менее, интерес к яндекс xxx.com производительности только нарастает. Поэтому будем рады поделиться накопленным опытом и знаниями в этой области и обещаем периодически публиковать статьи на тему нагрузок, инструментария и методов тестирования.

Похожее видео