Бетон авито: Бетон за 4 080 руб в Шаховской на Авито аналоге
Из стекла и бетона: главные постройки архитектора Ле Корбюзье :: Дизайн :: РБК Недвижимость
adv.rbc.ru
adv.rbc.ru
adv.rbc.ru
Недвижимость
Телеканал
Pro
Инвестиции
Мероприятия
РБК+
Новая экономика
Тренды
Недвижимость
Спорт
Стиль
Национальные проекты
Город
Крипто
Дискуссионный клуб
Исследования
Кредитные рейтинги
Франшизы
Газета
Спецпроекты СПб
Конференции СПб
Спецпроекты
Проверка контрагентов
РБК Библиотека
Подкасты
ESG-индекс
Политика
Экономика
Бизнес
Технологии и медиа
Финансы
РБК Компании
adv.
adv.rbc.ru
Ровно 130 лет назад, 6 октября 1887 года, родился швейцарско-французский архитектор Шарль-Эдуар Жаннере-Гри, взявший позднее псевдоним Ле Корбюзье. Он стал одним из основателей таких архитектурных жанров, как функционализм, брутализм и модернизм, а также первым реализовал многие архитектурные идеи, которые сейчас применяются практически повсеместно.
В портфолио знаменитого архитектора есть жилые и офисные здания во Франции, США, Японии, России, Бразилии и других странах, а в Индии по его проекту построили целый город. Как творения Ле Корбюзье повлияли и до сих пор влияют на инженерную и архитектурную мысль всего мира — в подборке проектов известного зодчего в материале «РБК-Недвижимости»
Автор
Игорь Кривицкий
adv.rbc.ru
Вещи, транспорт, недвижимость, услуги, вакансии – okidoki
- Транспорт 14 429
- Недвижимость 1 537
- Услуги 1 786
- Мода, стиль и красота 44 097
- Детские товары 35 052
- Дом и сад 24 126
- Работа 1 895
- Животные 2 803
- Развлечения и хобби 11 597
- Спортивный инвентарь 7 587
- Электроника 23 841
- Всё для бизнеса 2 365
Премиум объявления
Смотреть все
Грузоперевозки
20 €
Видеокарты GTX 1660S+Ti / RTX 3060 ti, 3070, 3080 ti и т.
д.
Срочно
179 € Возможен торг
Продам гараж, готовый к работе
Срочно
55 000 € Возможен торг
Покупка автомобилей в любом состоянии и возрасте
ШИНОМОНТАЖ И РЕМОНТ АВТОМОБИЛЯ
30 €
Термическая массажная кровать Migun HY-7000Е
2 350 € Возможен торг
Монтаж строительных лесов на заводах в Финляндии
Срочно
3 000 €
Сантехнические работы
Линейный лазер Huepar P04CG – 4×360°
250 €
Тепловые насосы DAIKIN, MIDEA.
Продажа и установка
Бетонные полы по всей Эстонии!
Скупка автомобилей
Прокат автомобилей Bolt, Wolt, Forus, Uber
140 €
AMBER 6 X 6 M 100 MM ПОЛНЫЙ КОМПЛЕКТ
22 500 €
PUHANGU ЛОМБАРД – большой выбор товаров!
Покупка легковых автомобилей по лучшей цене 24/7
Ремонт квартир
Срочно
Скупка автомобилей по хорошей для Вас цене 24/7
Работа на ручной мойке
1 500 €
Арматурная сетка,ранги, арматура
19 € Возможен торг
Новые объявления
Угги
70 € Возможен торг
Mercedes-Benz ML 270 2.
7 Special Edition 120 кВт
4 200 €
Леново Д22 10
15 € Возможен торг
Айфон 14 Про 128 ГБ
1 150 € Возможен торг
Самсунг А12 4/64 ГБ
85 €
100 €
Шуба
180 € Возможен торг
Продам:кеды vans!состояние 9/10 1 раз одеты.
размер 37,
20 € Возможен торг
Шуба
180 € Возможен торг
Постельное белье с одеялом
145 €
Барбус Денисони (Puntius denisonii)
8 €
Huawei MatePad SE 64 ГБ LTE графитовый черный
180 €
Посуда
5 €
I9-10900K, 32 ГБ, GTX 1070Ti, 1 ТБ SSD, 750 Вт
1 490 € Возможен торг
Стул для домашнего офиса НИЛСЕРИК, IKEA
25 €
Samsung Galaxy S10 Plus 128 ГБ Зеленый в очень хорошем состоянии
229 €
Samsung Galaxy S21, черный
300 € Возможен торг
Золотая рыбка Оранда (Carassius Auratus Oranda)
25 €
Картина маслом на папке
20 € Возможен торг
BMW x5 e53 задний дифференциал 3.
91
400 € Возможен торг
Кавасаки Zx6F
1 500 €
Для персонализации услуг okidoki использует cookies. Подробнее
Офисы Авито – Москва | Снимки Office
Фирма
Компания ABD architects спроектировала новый офис компании объявлений Авито, расположенный в Москве, Россия.
Над дизайн-проектом нового офиса Avito Yacht работали архитекторы архитектурного бюро ABD. Часть площадей на 10-м этаже отведена под рабочее пространство в формате open-space. Рабочие зоны, каждая из которых выполнена в голубых, красных, желтых и зеленых тонах, разделены стеклянными и подвижными флипчартными стенками, а также двухъярусными мягкими выдвижными ящиками, напоминающими трюм корабля. Для отдыха и общения персонала предусмотрены лаунж-зоны и укромные рабочие места. Для деловых встреч и конференций предусмотрены небольшие переговорные комнаты, названные по именам знаменитых островов (Врангеля, Котлина и др.).
15-й этаж многофункционального здания. Здесь есть столовая с просторным обеденным залом, конференц-залы, конференц-залы и несколько рабочих помещений. Над обеденными столами висят круглые люстры, каждая из которых украшена изображениями небесных созвездий. Росписи на обоих этажах расписаны художниками вручную.
Основная идея интерьера новой части офиса Avito родилась легко: коллектив Avito молодой, все увлечены спортом и путешествиями, поэтому тема интерьера была очевидна – Яхтинг.
Петр Фидельман, главный архитектор проектов ABD architects: «Яхты — это радость открытий, позитива, соперничества и борьбы, командной работы и индивидуального мастерства. Кроме того, яхта является образцом рационального дизайна, где каждый кубический сантиметр пространства осмыслен и функционален, что вполне актуально и для офисного помещения».
Идея яхты вдохновила на множество оригинальных дизайнерских решений, причем все они носят не только декоративный характер, но и функциональны. Выигрышной идеей стало, например, использование солнцезащитной пленки, которая используется для смотровых иллюминаторов яхт, для матирования стеклянных стен. Через светоотражающую пленку снаружи почти не видно, что происходит внутри конференц-зала, а изнутри все видно прекрасно. Характерный для корпусов яхт белый глянец наносится маркерной краской в канцелярии. В результате можно рисовать маркером на большинстве стен.Офис спланирован по принципу Activity Based Design. Это означает, что для всех рабочих ситуаций и процессов, будь то интенсивная консультация проектной группы, целенаправленная работа одного сотрудника или конфиденциальная беседа тет-а-тет или что-то еще, архитекторы из ABD architects предусмотрели соответствующую зону и созданы удобные условия.
Большое внимание уделялось командной работе: планировочные и мебельные решения способствуют общению и сотрудничеству сотрудников. Имеется множество удобных и разнообразных внутренних зон для групп от двух-трех до двенадцати человек, что примерно соответствует количеству проектных бригад. Все конференц-залы и открытые зоны общения оформлены по-разному, ни одна из них не похожа на другую. Здесь есть гамак от двухкорпусного корабля, спасательная скамейка-кольцо для мозгового штурма, трюм, каюта подводной лодки и переговорная «спина боцмана» со стенами цвета загара, украшенными морскими татуировками, и многое другое.
Девиз Авито «трудись – играй» воплощается буквально – помимо эффективных рабочих зон здесь есть просторный тренажерный зал с раздевалкой и душевыми, бильярдная, уютная комнатка с массажным креслом, игровая комната с кикер и игровая приставка, импровизированный скалодром, серьезно оборудованные «кухни» с напитками и закусками и просторная полноценная столовая, обслуживающая всю большую команду.
В рабочей зоне есть несколько капсул для сна, где сотрудники Avito могут отдохнуть или поработать в тишине. Вы можете лежать или сидеть внутри. Есть мягкий матрас, вентиляция и свет. Капсулы расположены в два яруса и в духе морской тематики называются «торпедными аппаратами» — вход в каждую капсулу имеет характерную круглую форму.
Очень серьезное внимание в офисе уделяется акустике. Напряженные дискуссии, игра в бильярд, занятия в спортзале не должны мешать целенаправленной работе коллег. Таким образом, потенциальные источники шума локализуются планировочными средствами, связанными со специальными конструкциями полов и стен. В некоторых зонах в качестве звукопоглощающего материала используются настоящие морские канаты.
Конференц-центр расположен на одном из этажей: группа просторных переговорных комнат с мобильной мебелью и впечатляющим медиа-оборудованием позволяет проводить встречи, тренинги, презентации. Рядом с переговорными комнатами есть удобный зал, где можно пообщаться до и после встречи.
Раздвижные перегородки позволяют объединить переговорные комнаты, холл и расположенную рядом столовую в одно огромное пространство, где можно проводить мероприятия на сотни гостей. Чтобы изменить зал столовой, вам не нужно выносить столы. Как и на яхте, специальные лебедки поднимают паруса, лебедки поднимают столы к потолку в столовой, освобождая место для вечеринок и других мероприятий.
Дизайн : ABD architects
Фотография : Сергей Волокитин
16 Изображения | расширить для получения дополнительной информации
Релизы · avito-tech/Emcee · GitHub
EmCeeResult
28 июн 11:37
бифон
17.0.0
59ff1af
СравнитьEmCeeResultLatest
Последний
В этом релизе появилась долгожданная функция – создание результирующего xcresult
, который вы можете открыть в Xcode сразу после запуска тестов. Просто используйте команду
runTests
и укажите --result-bundle <путь>
для создания пакета результатов.
Вы также можете контролировать время жизни вложений xcresult
через TestArgFile.entries.testAttachmentLifetime
— это может быть deleteOnSuccess
, keepAlways
, keepNever
. Прямо как xcodebuild
, да!
Предупреждения
- В этом выпуске НЕ ПОДДЕРЖИВАЮТСЯ ПЛАГИНЫ . Вы не сможете скомпилировать их против Emcee v17. Пожалуйста, подождите, пока мы не выпустим дальнейшее обновление для этого!
- Совместное использование Worker не работает между этой версией Emcee и предыдущими версиями. Это потому, что мы перепутали ключ и значение для поля HTTP: раньше это было
application/json: Content-Type
, который быстро-nio принудительно отклоняет; теперь он правильно установлен наContent-Type: application/json
.
Мелкие детали
Меньше утечек памяти и больше скорости благодаря обновлению HTTP-сервера до Vapor
Генерируется меньше журналов! Снова!
Emcee теперь убивает
xcodebuild
с более подходящим сигналомSIGINT
, что приводит к меньшему количеству искажений результатов.libssh
свобода пришла! Emcee не требует установки в вашей системе. Кроме того, рекомендуется использовать аутентификацию на основе ключей.Мы избавились от повторяющихся ошибок от junit. Мы избавились от повторяющихся ошибок из junit.
- Справка
(например,
Emcee runTests -h
) стала еще лучше благодаря предоставленной дополнительной информации. Теперь вы можете настроить количество симуляторов для каждого рабочего, локали, клавиатуры, языка с помощью команды
runTests
. См.Emcee runTests -h
.
Присоединяйтесь к нашим Telegram-каналам!
Достойное место для обсуждения и обмена знаниями о ведущем!
Русский: https://t.me/emcee_ios
Английский: https://t.me/emcee_ios_en
Easy Peasy
17 янв 17:58
бифон
16.0.0
a665ac0
СравнитьEasy Peasy
Мы провели ряд интервью с командами, использующими Emcee. Мы получили хорошие отзывы, которые мы использовали для улучшения нашего продукта. В этом выпуске мы сосредоточились на простоте использования и простоте первого опыта.
Он доступен прямо в README.
Вводим новую команду – runTests
. Очень похож на известный runTestsOnRemoteQueue
, но он посвящен открытию мира простоты и понятной настройки для большинства пользователей Emcee. Он имеет следующий синтаксис и параметры:
$ Emcee runTests -h
-
--queue
: описывает, где должна быть запущена очередь. Этот аргумент может повторяться несколько раз, и в этом случае ведущий будет использовать хосты один за другим, пока ему не удастся запустить очередь. Здесь необходимо указать хотя бы одно значение. -
--worker
: описывает, где должен быть запущен рабочий. Этот аргумент может повторяться несколько раз. Необходимо указать хотя бы одно значение. -
--device
: Устройство для запуска теста, например.Айфон Х
. Необходимый. Примечание:iPhone SE
поколения могут быть непростыми в использовании! -
--runtime
: Время выполнения для запуска теста, например.15,0
. Необходимый. -
--test-bundle
: Расположение.xctest 9Пакет 0055, в котором будут выполняться тесты. Необходимый.
-
--app
: Расположение пакета.
. Необязательный. Пожалуйста, обратитесь к нашему руководству, чтобы узнать больше о тестах с хост-приложением.app
-
--runner
: РасположениеXX-Runner.app
. Необязательный. -
--test
: Тест для выполнения, например.ИмяКласса/Методтеста
. Необязательный. Если не указано, ведущий будет запускать все тесты. Вы можете указать несколько тестов для выполнения, например.--test Class/test1 --test Class/test2
-
--retries
: Сколько попыток выполнить каждый тест. Необязательный. По умолчанию он будет повторять тесты один раз, если произойдет сбой. -
--test-timeout
: Максимальная продолжительность выполнения теста. Необязательный. Ограничение продолжительности теста по умолчанию составляет 180 секунд. -
--junit
: Путь, по которому должен быть создан файл отчета Junit. Необязательный. -
--trace
: путь, по которому должен быть создан файл трассировки Chrome.Необязательный.
Поясним --queue
и --worker
аргументы. Это URL-адреса, которые описывают, как подключиться к машине. В настоящее время поддерживается только SSH. Некоторые примеры:
-
--queue ssh://emcee:[email protected]/Users/emcee/emceequeue.noindex
: это означает запуск очереди Emcee на хостеqueue.example.com
, путем аутентификации с помощью имени пользователяemcee
и пароляpass
. Рабочий каталог будет расположен по адресу/Пользователи/ведущий/emceequeue.noindex
. -
--worker ssh://[email protected]/Users/emcee/emceeworker.noindex?custom_rsa
: это означает, что очередь запустит своего рабочего наworker.example.com
. Worker будет использовать/Users/emcee/emceeworker.noindex
в качестве своего рабочего каталога. Кроме того, Emcee будет использоватьemcee
в качестве имени пользователя и ключ~/.
для аутентификации на рабочем хосте. Ожидается, что этот ключ будет присутствовать на узле очереди.ssh/custom_rsa
-
--worker ssh://[email protected]/Users/emcee/emceeworker.noindex#/absolute/path/to/custom_rsa
: то же, что и выше, но очередь будет использовать ключ из/absolute/ путь/к/custom_rsa
.
Emcee теперь содержит встроенный HTTP-сервер, который удовлетворит большинство ваших потребностей. Это значительно упрощает поток и снижает порог входа.
Вы можете передавать локальные пути в команду runTests
. Предоставляются локальные .app
и .xctest 9Пакеты 0055 будут прозрачно размещаться через встроенный HTTP-сервер, что позволит всем работникам загружать артефакты для запуска тестов.
Вы также можете указать локальные пути внутри файла тестового аргумента, который вы передаете в runTestsOnRemoteQueue
, они также будут размещены на встроенном сервере. Удобно!
И, наконец, вы можете предоставить файл конфигурации локального сервера очередей в runTestsOnRemoteQueue
. Теперь нет необходимости загружать его на HTTP-сервер.
Help me Dr.
-h
🍡 Теперь вы можете получить справку по любой команде, набрав -h
рядом с ней, например. Ведущий -h
или Ведущий runTests -h
. Похоже, Emcee готов к такому хай-теку.
Улучшенные ошибки 💢
Если вы предоставите неверный файл тестового аргумента или JSON-файл конфигурации очереди, Emcee теперь будет печатать удобочитаемые ошибки. Вы будете поражены. Вот одна ошибка на ваше рассмотрение:
Не удалось декодировать значение для ключа «записи» в «файле тестового аргумента»: ключ «xcTestBundle» не найден в записях [0].buildArtifacts
Совершенно ясное объяснение того, что пошло не так, не так ли?
Дополнительно
jobId
☃️ Некоторым нашим пользователям было непонятно, что поле jobId
в тестовом файле arg должно быть уникальным. Теперь вы можете его опустить, Emcee сгенерирует для вас случайный
jobId
.
Режим повтора теста 👯♀️
Теперь вы можете указать, как вы хотите, чтобы ваши тесты повторялись в случае их неудачи. В вашем тестовом файле arg записи
есть новое поле testRetryMode
. Возможные значения:
retryThroughQueue
— если тест на воркере не пройден, он будет возвращен обратно в очередь. Затем очередь повторит этот тест на других рабочих процессах до указанного количества попыток. Это поведение по умолчанию. Это позволяет выполнять тест на разных хостах, потенциально устраняя проблему неработающей среды (поскольку каждая установка macOS в Universe уникальна).retryOnWorker
— если тест не пройден, тот же воркер выполнит повторную попытку.
Исправление симулятора лучше 📲
Произошла ошибка (Боже мой), которая привела к избыточному исправлению симулятора (читай: применить настройки симулятора). Теперь Emcee не будет исправлять симуляторы, если
все пропатчено.
Теперь возможны воркеры без кеша 💳
Есть способ отключить кеш воркеров. В конфигурации сервера очередей, в настройках воркера, рядом с numberOfSimulators
есть еще два поля:
-
maxCacheSize
— максимальный размер кэша в байтах. -
maxCacheTTL
— максимальный TTL для любого кешируемого элемента, в секундах.
Вы можете установить 0
для этих полей, и это полностью отключит кеш. Это удобно, если вы хотите что-то отладить.
Запретить ведущему очистку вывода Runner 🏃
Теперь вы можете запретить работникам автоматически удалять все тестовые артефакты после завершения теста и закрытия плагинов. В тестовом файле arg записи
есть новое поле runnerWasteCleanupPolicy
. Возможные значения:
-
clean
— значение по умолчанию, значит все будет удалено -
сохранить
— все созданные файлы будут сохранены.
Режим захвата журнала 📝
Теперь вы можете контролировать, какие журналы должны записываться во время тестового запуска. Эти журналы получены из пакетов xcresult
после завершения тестов. В тестовом файле arg записи
есть новое поле logCapturingMode
. Возможные значения:
-
allLogs
— будут захвачены все сообщения журнала -
onlyCrashLogs
— будут перехватываться только те логи, которые выглядят как крашлоги -
noLogs
— логи не будут записываться
Куда без
dyld
Теперь можно динамические библиотеки вставлять в тест. В тестовом файле arg записей
есть новое поле userInsertedLibraries
. Это массив путей. Эти пути будут переданы в тест как env DYLD_INSERT_LIBRARIES
. Объедините это с современными функциями визуализации macOS, с тем фактом, что тесты выполняются через xcodebuild
(чтобы он мог расширять __TESTBUNDLE__
и другие строки — посмотрите на man xcodebuild.
), и это предоставит вам некоторая дополнительная гибкость для вашего процесса выполнения теста. xctestrun
- Ниже представлен универсальный бинарник (arm64 и x64) для вашего удобства! Он даже имеет встроенный
libssh
, поэтому вы можете легко его использовать. - Если вы загружаете бинарный файл
Emcee
с GitHub, не забудьте удалить атрибут карантина:xattr -c Emcee
- Пожалуйста, перестройте свои плагины. API v15 несовместим с v16.
Полный список изменений : 15.0.0...16.0.0
Пятнадцать релизов Старый
01 дек 11:03
бифон
15.0.0
386ef75
СравнитьFifteen Releases Old
Сегодня мы празднуем выпуск Emcee v15 с небольшой задержкой 🥳
Очереди Emcee теперь можно запускать на нескольких хостах, что позволяет при необходимости еще более плавно снижать производительность. Например, если вы установите хост очереди на обслуживание (выключите его или инопланетяне уничтожат вашу машину), теперь очередь может быть запущена на резервном(ых) хосте(ах), что позволит вам продолжать выполнять свои тесты. Чтобы использовать это, просто укажите несколько хостов очереди в
queue_config.json
через массив queueServerDeploymentDestinations
. Ведущий перебирает хосты в указанном порядке.
- Теперь вы можете импортировать сертификата 📜 в брелок симулятора! Спасибо @EvgenyIv96 за реализацию этой функции.
-
xcodebuild
теперь удаляет все вложения 📎 из результирующего пакетаxcresult
, если тест прошел успешно ✅, снижая нагрузку на воркеров. Еще раз спасибо @EvgenyIv96 за реализацию этого. - Новый баннер жестов клавиатуры iOS 15 ⌨️ можно скрыть, установив
didShowContinuousPathIntroduction
наtrue
в файле тестового аргумента.
- Теперь Emcee анализирует
файла xcresult
и извлекает оттуда ошибки тестирования в дополнение к анализу потока результатов.Это значительно улучшает обнаружение ошибок при тестировании. 🌡
- Стратегия прогрессивного расписания оптимизирована для меньшего количества рабочих. 👷🏻♀️👩🏼🌾👩🏽🏭👩🚀
- Новая стратегия расписания с фиксированный размер ковша позволяет (очевидно) установить фиксированный размер ковша. Это полезно для большего количества рабочих. Например. мы используем эту стратегию в Авито с нашими 80+ работниками. 🖥
- New
Команда Emcee initTestArgFile
создает образец тестового файла arg, который вы можете заполнить своими настройками. Полезно для быстрого старта! 🥩 - Новая команда
Emcee initQueueServerConfig
создает образец конфигурации очереди. Опять же, полезно для первоначальной настройки. 🌱 - Для разделения символов Swift теперь используется динамический буфер. Это устраняет проблемы с обнаружением тестов для некоторых пользователей Emcee. 🦅
- Наконец, напомню, что ведущий не требует
sudo
.Вы можете создать стандартного пользователя с ограниченными правами и заставить Emcee использовать его. 🔒 Для этого сценария ведущий теперь проверяет, существует ли папка
~/L/D/CoreSimulator
, и создает ее, если она отсутствует.
Только не забудьте установить libssh3
с помощью отличного менеджера пакетов, который использует химию, водоснабжение, манипуляции с жидкостями и доменные термины, связанные с напитками, для описания всех возможных действий и процессов. ☢️
Также не стоит забывать о вполне понятном факте, что чипы Apple Silicon имеют специальный путь назначения для устанавливаемых вещей в этом почетном менеджере пакетов, а на чипах Intel он другой. Таким образом, маловероятно, что вы сможете использовать двоичный файл Intel на Apple Silicon Mac, что связано с чрезвычайно высоким качеством любого современного программного обеспечения . 💎 Пожалуйста, визуализируйте этот прекрасный смайлик в красном цвете в своем воображении.
Полный журнал изменений : 14.0.0...15.0.0
Эй, приятель!
06 июл 09:11
бифон
14.0.0
fb51a5f
СравнитьЭй, приятель!
- Если симуляторы не загружаются, об этом будет лучше, более удобочитаемая ошибка. Это пришло в качестве замены для «сбой процесса xcrun с кодом выхода 69».
@venigreat реализовал функцию, позволяющую получить доступ к
xcresult
связок из плагинов, позволяющих обрабатывать их на ходу.TestContext.environment
теперь содержит новую запись, указывающую на пакетxcresult
. Вы можете и должны использоватьXcodebuildTestRunnerConstants.envXcresultPath
, чтобы получить имя этой среды.Кстати, для Emcee
есть плагин Allure с открытым исходным кодом.
@venigreat реализовал следующую функцию: теперь ведущий разрешает доступ к SSH с помощью файлов с закрытыми ключами. Ранее он использовал только аутентификацию на основе пароля. Вы указываете механизм аутентификации через конфигурацию очереди.
@venigreat реализовал третью функцию: теперь ведущий может добавлять произвольные HTTP-заголовки к своим сетевым запросам. Это полезно, если ваше хранилище (например, артефактное, нексусное и т. д.) требует аутентификации через заголовки или если ваш сервер хочет отслеживать своих клиентов с помощью некоторого значения
X-Fancy-Header
.
Человек с выращенными бревнами
17 мая 11:21
бифон
12.0.0
2d07ee2
СравнитьGrown Logs Man
В этом релизе мы сосредоточились на добавлении поддержки системы распределенного логирования и использовали для этих целей Kibana. Таким образом, мы решили задокументировать, как работает система ведения журналов Emcee, и дать подробное объяснение того, какие показатели сообщает Emcee.
Global Analytics
Ведущий теперь поддерживает две конфигурации аналитики. Один из них глобальный . Он захватывается очередью при запуске ( queueServerConfiguration.globalAnalyticsConfiguration
), и он используется для сообщения о некоторых глобальных событиях , которые не относятся к какому-либо конкретному заданию. Вот некоторые примеры:
- Статус функции совместного использования работников
- Индивидуальные рабочие статусы, видимые очередью (например, активен, молчалив, никогда не запускался)
- Общее количество поставленных в очередь и исключенных из очереди сегментов и тестов
- Глобальный счетчик текущих заданий в очереди
- Показатели операций симулятора - продолжительность выделения, продолжительность действия (это продолжительность операций создания, загрузки, выключения и удаления)
Специальная аналитика
Другая конфигурация аналитики — это , специфичная для . Вы предоставляете конфигурацию для него через тестовый файл arg, и он используется для отчетов об аналитических событиях, связанных с заданием. Некоторые, если не все, примеры:
Продолжительность обработки задания
Продолжительность подготовки задания — сколько времени требуется для подготовки задания, т. е. обнаружения всех тестов и постановки их в очередь
События извлечения из очереди и постановки в очередь
Проверка событий удаления из очереди и постановки в очередь
Длительность обработки сегмента. Каждое задание состоит из тестов, а тесты сгруппированы в сегменты. Эта метрика используется для отчета о длительности этих сегментов.
Застрявшие ковши в задании
Состояния очереди заданий — количество сегментов, поставленных в очередь и удаленных из очереди, время для удаления сегмента из очереди
События обнаружения тестов — количество тестовых наборов, количество тестов и агрегированная продолжительность обнаружения тестов
Время запуска тестовой метрики
Продолжительность предполетной проверки
Событие запуска теста
Время между тестами
Тест завершен, событие
Продолжительность испытания бетона
Суммарная продолжительность теста
Продолжительность теста после полета
Бесполезная метрика длительности вызова средства запуска тестов
Стоит отметить, что конкретная конфигурация аналитики НЕ наследует ничего от глобальной конфигурации . Вы должны передать полные конфигурации как через конфигурацию очереди, так и через тестовый файл arg. Следует иметь в виду, что тестовый файл arg должен содержать конфигурацию аналитики для конкретного задания, поэтому по крайней мере
analyticsConfiguration.persistentMetricsJobId
может (и, вероятно, должен) отличаться в зависимости от вашей работы (например, модульные тесты, тесты пользовательского интерфейса, полный набор регрессий). , и т. д.).
Как обычно, лучше обратиться к модульным тестам, чтобы увидеть все возможные способы настройки тестового файла arg. Тесты для корневой файловой структуры тестовых аргументов находятся здесь, а тесты для записей файла тестовых аргументов — здесь.
Emcee теперь поддерживает отправку всех своих журналов в общие конечные точки Kibana. Kibana настраивается через [global] AnalyticsConfiguration.kibanaConfiguration
. Ведущий добавит следующие значения к зарегистрированным сообщениям:
-
имя хоста
— хост, который выдал сообщение журнала -
emceeVersion
— версия ведущего -
emceeCommand
— выполняется команда, т.е.
дамп
,runTestsOnRemoteQueue
,distWork
и т. д. -
workerId
— воркер, выдавший лог-сообщение. -
processId
иprocessName
— pid и имя процесса самого Emcee, например.3224
иEmceeWorker_ab33da
. -
идентификатор подпроцесса
иsubprocessName
— pid и имя процесса подпроцесса, который исполнял ведущий -
xcrunToolName
— имя инструмента, который был запущен черезxcrun
, например. дляxcrun xcodebuild
этот ключ будет иметь значениеxcodebuild
-
persistMetricsJobId
— идентификатор задания из тестового файла arg -
subprocessPipe
— стандартное имя выходного канала для сообщений, регистрируемых подпроцессами, например.стандартный вывод
илистандартный вывод
. В настоящее время Emcee регистрирует сообщения подпроцесса во время процесса обнаружения тестов, но в будущем может быть принято больше случаев.
Помимо ключей по умолчанию, которые Emcee добавляет автоматически, вы можете добавить свои ключи через [global]analyticsConfiguration.metadata
. Например, в нашем CI мы добавляем следующие ключи, чтобы помочь нам отследить журналов , специфичных для задания (поэтому мы добавляем эти значения к конфигурации , специфичной для , через testargfile): ciBranch
, ciBuildNumber
, ciPullRequestId
.
-
--temp-folder
теперь необязателен - Ведущий теперь удаляет артефакты тестирования и запуска тестов после выполнения корзины. У подключаемых модулей еще есть время для обработки тестовых артефактов (см.
TestsWorkingDirectorySupport
), но как только все подключаемые модули завершат работу, Emcee worker очистит все файлы. Это устраняет проблему с утечкой дискового пространства. - Emcee анализирует содержимое файла
xcodebuild -resultStreamPath
по умолчанию и даже пытается добавить журналы сбоев (еслиxcodebuild
выдаст их). - Ведущий теперь также собирает глобальные исключения тестов, возникающие перед началом любого теста. Теперь при сбое тестового пакета Emcee добавит эти исключения ко всем тестам, которые должны были быть запущены.
-
Вызовы xcrun simctl spawn
теперь ограничены жестко заданным тайм-аутом в 30 секунд, чтобы предотвратить потенциальные зависания. 30 секунд более чем достаточно, но если нет, свяжитесь с нами.
- Ведущий теперь отслеживает время ожидания теста, которое может произойти до начала любого теста, после завершения последнего теста и между двумя тестами. Это значение тайм-аута контролируется
testArgFile.testTimeoutConfiguration.testRunnerMaximumSilenceDuration
(https://github.com/avito-tech/Emcee/wiki/Test-Arg-File#testtimeou...
Вот и мы
08 фев 17:08
бифон
11.0.3
c82ddf0
СравнитьHere We Go
Это секретная технология, разработанная Apple, позволяющая получать обновления в режиме реального времени о процессе выполнения теста. Все, что вам нужно сделать, это пройти
-resultStreamPath
- xcodebuild
, и он начнет выгружать поток JSON прямо в этот файл.
Мы реконструировали модели из этого файла. Результатами этой работы являются модули ResultStream и ResultStreamModels, если вы хотите использовать их в своих проектах.
Если вы хотите использовать его в Emcee , мы рассмотрели его в разделе ПЕРЕКЛЮЧЕНИЕ ФУНКЦИЙ — это верно, вам нужно подписаться (на данный момент):
- Добавить
EMCEE_USE_RESULT_STREAM
=true
для вашей тестовой среды (через файл тестового аргумента), и ваши тесты будут выполняться с помощью этой новой высокой технологии.
Команда Emcee kickstart
теперь корректно запускает рабочего, даже если он никогда не запускался доJSONStream
Производительность ЦП улучшена в 3,5 раза (или на 350%). Кроме того, теперь мы используем байты (UInt8
) вместо скаляров юникода.Однако поддерживается только кодировка UTF8.
Никогда не поздно сократить избыточное ведение журнала
01 дек 18:08
игнатовв
11.0.2
ae1e5cc
СравнитьНикогда не поздно сократить избыточное ведение журнала
- Удалить раздражающие журналы ошибок ошибки удаления задания
Никогда не поздно выставить цель TestsWorkingDirectorySupport для общественных нужд
18 ноя 10:08
бифон
11.0.1
eac537f
СравнитьНикогда не поздно выставить цель TestsWorkingDirectorySupport для общественных нужд
- Открытая цель
TestsWorkingDirectorySupport
.Используйте его в зависимости от
EmceeInterfaces
Бесполезно
06 окт 15:34
бифон
v11.0.0
cebbcef
СравнитьБесполезно
Новая метрика! Бесполезные вызовы
xcodebuild
. Это событие описывает ситуацию, когда Emcee вызываетxcodebuild
для запуска тестов, но никогда их не запускает, вместо этого ожидает чего-то (например, testmanagerd) и затем завершает работу. Обычно это происходит, когда на машине используется слишком много симуляторов. Уменьшение количества симуляторов или перезагрузка компьютера могут помочь уменьшить количество бесполезных вызовов.Фиксированные значения показателей исключения из очереди/постановки в очередь
Новая система отчетности! Ведущий теперь может отчитываться перед Statsd! Конфигурация Analytics принимает для него новые настройки.
Когда вы ставите в очередь тесты с неудовлетворительными требованиями к рабочим процессам, эти тесты будут помечены как провалившиеся, если ни один рабочий процесс не доступен для запуска этих тестов, вместо того, чтобы позволить очереди держать их в очереди бесконечно, ожидая появления подходящего рабочего процесса. 🦺
Исправлен запуск Emcee на больших машинных фермах с более чем 64 компьютерами. 🤡
Теперь снова поддерживается планирование тестов с пустыми рабочими требованиями. 🦵🏻
Классы [Synchronous]QueueClient
окончательно удалены.JobStateFetcher
для получения текущего состояния задания,JobResultsFetcher
для получения результатов задания,JobDeleter
для удаления задания — это новые APIМодуль QueueClient
.
Уменьшить
19 авг 08:30
бифон
v10. 0.0
ab902bc
СравнитьУменьшить
По умолчанию. Подробнее об этой функции читайте здесь.
Новая функция! Позволяет запланировать тесты для рабочих, которые соответствуют определенным требованиям. Подробнее об этой функции читайте здесь. В настоящее время доступны только доступные версии Xcode, но их можно расширить. Предлагайте свои идеи.
Новая функция! Позволяет отправить команду кикстарта в очередь через REST, чтобы попытаться оживить определенных воркеров. Полезно, если вы завершаете процесс EmceeWorker для обслуживания машины, а затем вам нужно вернуть его в рабочее состояние.
Все метрики теперь имеют версию ведущего
- Многие поля в файле тестовых аргументов теперь являются необязательными и имеют значения по умолчанию. Самый короткий допустимый тестовый файл arg теперь может быть очень маленьким: .
{ "Идентификатор задания": "Идентификатор задания", "записи": [ { "testsToRun": ["все"], "testDestination": {"deviceType": "iPhone X", "runtime": "11.3"}, "ТипТеста": "UITest", "Артефакты сборки": { "appBundle": "http://example.com/App.zip#MyApp/MyApp.app", "бегун": "http://example.com/App.zip#Tests/UITests-Runner.app", "xcTestBundle": "http://example.com/App.zip#Tests/UITests-Runner.app/PlugIns/UITests.xctest" } } ] }
Сделано
--emcee-version
необязательно - генерируется автоматически, когда вы делаетеmake build
.Удален аргумент командной строки
--queue-server-destination
из командыrunTestsOnRemoteQueue
. Этот файл был объединен с--queue-server-configuration
. Кстати,--queue-server-run-configuration
стал--queue-server-configuration
(больше никаких глупыхrun
).--job-id
,--job-group-id
,--priority
,--job-group-priority
аргументы были удалены.
Добавить комментарий