Pull to refresh
0
0
Денис Никаноров @SlimHouse

Пользователь

Send message

Как в Яндексе используют PyTest и другие фреймворки для функционального тестирования

Reading time19 min
Views123K
Всем привет! Меня зовут Сергей, и в Яндексе я работаю в команде автоматизации тестирования сервисов монетизации. Перед каждой командой, которая занимается задачами автоматизации тестирования, встает вопрос: «Какой [фреймворк|инструмент] выбрать для написания своих тестов?» В этом посте я хочу помочь вам на него ответить. Если быть конкретнее, речь пойдет об инструментах тестирования на языке Python, но многие из идей и выводов можно распространить на другие языки программирования, поскольку подходы часто не зависят от конкретной технологии.



В Python существует множество инструментов для написания тестов и выбор между ними неочевиден. Я опишу интересные варианты использования PyTest и расскажу о его [плюсах|минусах|неявных возможностях]. В статье вы найдёте развёрнутый пример использования Allure, который служит для создания простых и понятных отчётов автотестов. Также в примерах будет применяться фреймворк для написания матчеров — Hamcrest для Python. Надеюсь, что в итоге, те, кто сейчас в поиске инструментов для тестирования, смогут на основе изложенных примеров быстро внедрить функциональное тестирование в своем окружении. Те же, кто уже использует какой-то инструмент, смогут узнать новые подходы, варианты использования и концепции.
Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments10

Python + vshadow + robocopy — синхронизация каталога с удаленной машиной

Reading time4 min
Views14K
Не так давно у меня встала задача копировать базу данных из удаленного филиала для получения в нашем офисе ее полной копии на момент создания. По идее ежедневное копирование. Первое, что пришло на ум, это rsync сервер, на который выполняется копирование, а уже с него копия используется далее. Быстрый поиск навел на боле менее адекватную инструкцию тут же.

Проблема в том, что на клиентской машине стоит Win система. И принимающая сторона тоже использует аналогичную OS. Rsync сервер на Linux — это лишняя прослойка между двумя машинами. Ставить Rsync на Win сервере возможно, но по другим отвлеченным соображениям, излишне. В итоге наткнулся на свой скрипт синхронизации каталогов и совместив его с созданием теневой копии создал новое решение.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments9

Уменьшаем потребление CPU Skype под Linux и Mac OS

Reading time1 min
Views71K
image Skype. Как мы его любим и одновременно ненавидим. Долгое время, Skype был единственной программой, которую я старался закрывать при работе лаптопа от батареи: потреблял около 4% CPU, будил процессор 250-300 раз в секунду, ничего при этом не делая, оставляя процессору меньше времени на нахождение в более энергосберегающем состоянии.

Увидел я однажды комментарий пользователя Vayun:
Возможно проблема проявляется не у всех, проверить легко: запускаем скайп, запускаем top (на ноутбуке работающем от батареи наглядней будет powertop) и смотрим сколько он отъедает cpu.

Я долго не возился, придавил только poll, увеличив timeout. Это даёт наибольший выигрыш (уменьшая %CPU скайпа раз в 5), но наверное можно лучше.

Собственно, вот: Skype-poll-fix. Увеличивает таймаут у вызовов poll (Linux) и kevent (Mac OS), снижая потребление процессора в 4-5 раз.
Читать дальше →
Total votes 76: ↑72 and ↓4+68
Comments67

Звоним на мобильные телефоны из браузера с записью разговоров

Reading time6 min
Views79K


В сегодняшнем мире тонких клиентов, Интернета, продвинутых веб-интерфейсов появляется все больше задач, связанных с необходимостью совершения звонков из браузера/принятия звонков в браузер. Это, черт возьми, удобно! Сидит сотрудник перед монитором, выбирает клиента, нажимает позвонить — и, пока идет дозвон, на этой же странице просматривает его карточку, освежает в памяти последние договоренности и намеченные шаги.

Или другой сценарий — входящий в компанию звонок. Как здорово, когда ты в качестве клиента звонишь на безликий 8800 и девушка на том конце телефона отвечает тебе приятным голосом — здравствуйте, Алексей (подставить_свое_имя)! Это производит потрясающий эффект. Когда вместо «назовите себя, номер паспорта и имя кота, информация грузится — послушайте шестую симфонию Моцарта» оператор уже поднимая трубку знает, как вас зовут и видит по вам всю информацию. Сервис, что и говорить.

Но есть ли возможность реализовать такую систему без погружения в дебри настройки АТС — максимально быстро и минимальной кровью? Желательно еще, чтобы все разговоры записывались для целей контроля и обучения сотрудников. Ответ — конечно, погнали под кат.
Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments20

Как работают рекомендательные системы. Лекция в Яндексе

Reading time11 min
Views138K

Привет, меня зовут Михаил Ройзнер. Недавно я выступил перед студентами Малого Шада Яндекса с лекцией о том, что такое рекомендательные системы и какие методы там бывают. На основе лекции я подготовил этот пост.





План лекции:


  1. Виды и области применения рекомендательных систем.
  2. Простейшие алгоритмы.
  3. Введение в линейную алгебру.
  4. Алгоритм SVD.
  5. Измерение качества рекомендаций.
  6. Направление развития.

Под катом вы найдете конспект лекции и презентацию
Total votes 63: ↑56 and ↓7+49
Comments42

Подключаем Рутокен ЭЦП к OpenSSL

Reading time3 min
Views19K
UPDATE. Готовое решение для электронной подписи в браузере — Рутокен Плагин

Как известно, OpenSSL версии 1.0.0 и старше поддерживает российские криптоалгоритмы ГОСТ, причем поддержка этих алгоритмов полнофункциональна: реализованы подпись и шифрование в форматах PKCS#7, CMS, S/MIME в соответствии с российскими стандартами и RFC; протокол TLS с поддержкой российских шифрсьютов и т.п.

Таким образом, OpenSSL полностью совместим с проприетарными средствами криптозащиты российских производителей.

Для поддержки ГОСТов в него добавлен специальный «плагин» — engine gost. Вместе с тем существуют криптографические USB-токены с аппартной реализацией российских криптоалгоритмов на «борту». Примером такого токена является Рутокен ЭЦП, который, кстати сказать, сертифицирован как СКЗИ по классу КС2. Рутокен ЭЦП можно подключить к OpenSSL таким образом, что криптографические операции будут делаться на «борту» токена.

Для Рутокен ЭЦП имеется специальный кроссплатформенный плагин к OpenSSL — engine pkcs11_gost, который позволяет использовать аппаратную релизацию ГОСТов через стандартный интерфейс OpenSSL.

Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments8

Искусственный интеллект и Почему мой компьютер меня не понимает?

Reading time5 min
Views153K


Гектор Левекwiki утверждает, что его компьютер тупой. И ваш тоже. Siri и голосовой поиск Google умеют понимать заготовленные предложения. Например «Какие фильмы будут показывать неподалёку в 7 часов?» Но что насчёт вопроса «Может ли аллигатор пробежать стометровку с барьерами?» Такой вопрос никто раньше не задавал. Но любой взрослый может найти ответ на него (Нет. Аллигаторы не могут участвовать в беге с барьерами). Но если вы попытаетесь ввести этот вопрос в Google, то получите тонны информации о спортивной команде по лёгкой атлетике Florida Gators. Другие поисковые системы, такие как Wolfram Alpha, тоже не способны найти ответ на поставленный вопрос. Watson, компьютерная система выигравшая викторину «Jeopardy!», вряд ли покажет себя лучше.
Читать дальше →
Total votes 94: ↑87 and ↓7+80
Comments146

BOOTSTRA.386: тема для Bootstrap в духе 1980-х

Reading time1 min
Views109K
Оказывается, некоторые темы для Bootstrap — это маленькие произведения искусства. В рамках надвигающейся пятницы хотелось бы рассказать об одной из таких тем.

Крис МакКензи — явно один из тех, кто скучает по старым добрым временам DOS, EGA/VGA и Turbo Vision, иначе он вряд ли бы решился сделать что-то подобное. Так что если вы успели устать от засилья плоского дизайна, то добро пожаловать в мир BOOTSTRA.386!

Осторожно: будьте готовы к острому приступу ностальгии. Единственное, чего не хватает для полного погружения — так это навигации с клавиатуры, ну и курсора в виде прямоугольного блока.

image

Читать дальше →
Total votes 201: ↑192 and ↓9+183
Comments45

Самый большой тест Тьюринга

Reading time5 min
Views262K
23 июня 2012 года Алану Тьюрингу исполнилось бы 100 лет. И хотя эта дата осталось незамеченной в России (и на Хабре), ее широко отмечали в зарубежном научном сообществе. 2012 год бы провозглашен годом Алана Тьюринга. В праздновании юбилея приняли участие многочисленные университеты, научные лаборатории, ассоциации, коммерческие компании. Он включил в себя лекции, конференции, выставки, фильмы, книги, написание стихов, посвященных Тьюрингу, учреждение стипендий, а так же различные соревнование. Одно из соревнований особенно привлекло мое внимание: Turing100 — очень масштабный тест Тьюринга. Это было самое большое соревнование среди примерно 150 тестов Тьюринга, проведенных к сегодняшнему дню. Обычно в тесте Тьюринга участвуют четыре системы и четверо судей. В соревновании Turing100 приняли участие пять чат-ботов, 30 судей и 25 скрытых человек.

image
Автор изображения — Harjit Mehroke

Читать дальше →
Total votes 90: ↑86 and ↓4+82
Comments110

Легкий способ научиться слепому десятипальцевому набору

Reading time3 min
Views1.2M
Традиционно рекомендации по обучению десятипальцевой печати сводятся к двум советам:
  • тратить нервы на клавиатурные тренажеры вроде пресловутого «Соло на клавиатуре»;
  • заклеить подписи на клавишах.

Научиться печатать на клавиатуре вслепую при помощи этих способов — издевательство над собой. Каждый, кто пробовал «Соло», хотя бы раз в ярости бил по клавиатуре кулаком, и практически никто не дошел до конца. А кто пробовал заклеивать надписи на клавишах, вскоре отрывал наклейки обратно, потому что без навыка и без подписей печатать невозможно, а жить дальше как-то надо.

Что если я скажу вам, что есть абсурдно простой, состоящий из одного пункта способ научиться слепой печати без этих дурацких органичений?
 

Читать дальше →
Total votes 88: ↑76 and ↓12+64
Comments232

Как не стать спамером со своей уютной рассылочкой

Reading time1 min
Views67K
image
Пользователь когда-то подписался на рассылку, но уже забыл когда, и главное зачем. Теперь ежедневно к нему падает спам, а по собственному опыту он знает, для того чтобы отписаться нужно зайти по ссылке свой профиль, найти и снять там какую-то галку а главное, помнить свой логин и пароль на давно забытом им сайте.
Его действия? «В спам!»

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

И вот, с десяток таких «отписок» и гугл будет удобно отсортировывать ваши рассылки в папочку Спам (584), у ВСЕХ ваших подписчиков.

Однако многие из нас уже успели заметить: некоторые письма в Gmail при попытке отметить их «В спам!» САМИ предлагают отписаться от рассылки в один клик.

Эта фича была введена google более года назад, но лишь единицы рассылок научились ей пользоваться. И не удивительно. В рекомендациях по осуществлению массовых рассылок, лишь косвенно упоминается о том, что Вам нужно сделать.
А сделать нужно не многое.
Читать дальше →
Total votes 238: ↑230 and ↓8+222
Comments60

Жизнь разработчика (в картинках)

Reading time1 min
Views65K
Взято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.

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



Когда проджект-менеджер входит в офис



Читать дальше →
Total votes 884: ↑700 and ↓184+516
Comments132

Свежий взгляд на Rust

Reading time6 min
Views29K
Я программирую на Rust уже достаточно давно, но на самом деле это не имеет большого значения. Rust настолько динамичен, что стоит отвлечься на пару месяцев, и придётся писать уже на фактически другом языке. Однако одна вещь остаётся неизменной: вектор развития. С каждым обновлением, каждой модификацией язык становится всё лучше и лучше.

Изменениям всё еще не видно конца, но даже сейчас язык уже кажется более стабильным, чем несколько месяцев назад, и начинают появляться некоторые устойчивые шаблоны проектирования API. Я подумал, что настало время исследовать всё это поглубже и решил переписать мою библиотеку для redis.
Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments78

И еще раз о GIL в Python

Reading time9 min
Views37K

Предисловие


Область, в которой мне повезло работать, называется вычислительная электрофизиология сердца. Физиология сердечной деятельности определяется электрическими процессами, происходящими на уровне отдельных клеток миокарда. Эти электрические процессы создают электрическое поле, которое достаточно легко измерить. Более того оно очень неплохо описывается в рамках математических моделей электростатики. Тут и возникает уникальная возможность строго математически описать работу сердца, а значит — и усовершенствовать методы лечения многих сердечных заболеваний.

За время работы в этой области у меня накопился некоторый опыт использования различных вычислительных технологий. На некоторые вопросы, которые могут быть интересны не только мне, я постараюсь отвечать в рамках этой публикации.
Читать дальше →
Total votes 71: ↑71 and ↓0+71
Comments47

Python-digest #35. Новости, интересные проекты, статьи и интервью [27 июля 2014 — 03 августа 2014]

Reading time4 min
Views14K

Дайджест был опубликован ранее, но определенным причинам был исключен с хабра, сейчас же было принято решение вернуть его обратно.
Очередной выпуск новостей из мира Python.
За иллюстрацию к посту, как и раньше, благодарим owlman75, а так же alrusdi за идею дайджестов и за то, что я по прежнему могу публиковать эти дайджесты для вас.
В этом выпуске у нас вот такие интересные новости собрались: свеженькие уязвимости в django, в релизах второй релиз кандидат Django 1.7, APScheduler 3.0, Pylint 1.3 / Astroid 1.2, django-extensions 1.3.9, boto 2.32.0 и еще много интересных библиотек и статей для изучения.
Перейти к дайджесту
Total votes 39: ↑37 and ↓2+35
Comments19

PyCon Russia 2014 — два дня python-счастья

Reading time5 min
Views16K
2-3 июня в Екатеринбурге прошла вторая международная конференция python-разработчиков PyCon Russia 2014. Участники съехались из 23 городов России и мира.

IMG_0636.jpg
Участники PyConRu 2014

Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments8

Sentry — мониторинг ошибок в Django

Reading time2 min
Views44K
Как Вы мониторите ошибки в своем Django проекте?

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

Таким же вариантом пользовались и мы, пока не открыли для себя Sentry.
image
Читать дальше →
Total votes 58: ↑53 and ↓5+48
Comments24

Наш опыт работы с Django, или 10 полезных модулей, облегчающих жизнь

Reading time4 min
Views38K
Бесценный опыт работы с Django, или Django для блондинок, брюнеток и всех-всех-всехПоследние 15 недель мы активно работали над проектом «Стиллион», первым нашим мейнстрим-проектом, написанным на Django. Был приобретен интересный опыт, которым мы хотели бы поделиться с сообществом.
Статья, прежде всего, будет интересна новичкам в Django.
За катом список полезных плагинов, которые мы использовали, и ещё немного клёвых фич
Total votes 108: ↑100 and ↓8+92
Comments59

Долой оковы MongoDB

Reading time6 min
Views29K
Многие из нас в свое время бросились с энтузиазмом осваивать MongoDB, действительно красота — удобный JSON формат, гибкая схема (точнее полное ее отсутствие), от установки системы до первого использования проходят буквально минуты. Но через некоторое время, уже когда Mongo надежно «зашита» в наш проект наступает разочарование. Простейшие запросы требуют постоянного тыкания в документацию, чуть более сложные способны убить почти целый день рабочего времени, а уж если понадобится join разных коллекций — то увы…

И вот уже кто-то возвращается к Постгресу с его частичной поддержкой JSON…

Но, к счастью, уже куется, уже спешит к нам полноценная замена Mongo, полноценная полу-структурированная Big Data СУБД AsterixDB. Этот проект возглавляет профессор UCI Michael Carey, ученик легендарного пионера СУБД Майкла Стоунбрейкера.

Проект стартовал просто как исследовательское начинание в области Big Data и изначально ориентировался на создание общего стэка для MapReduce и SQL. Но, буквально несколько лет назад, было принято решение построить Big Data JSON СУБД. По словам Майкла Кери, «AsterixDB is Mongo done right.» В чем же основные фишки AsterixDB?
Читать дальше →
Total votes 81: ↑65 and ↓16+49
Comments87

Интересные приемы программирования на Bash

Reading time6 min
Views130K
Эти приемы были описаны во внутреннем проекте компании Google «Testing on the Toilet» (Тестируем в туалете — распространение листовок в туалетах, что бы напоминать разработчикам о тестах).
В данной статье они были пересмотрены и дополнены.
Читать дальше →
Total votes 181: ↑175 and ↓6+169
Comments67

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity