Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 1492 сообщений
Cообщения с меткой

автоматизация - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

О том как я помечал пороги Хабра, Майла, ОнлиОфиса и прихожую В Кругу Друзей

Понедельник, 20 Июня 2016 г. 14:12 (ссылка)





Здравствуйте, товарищи! В опубликованных вчера предыдущих двух материалах: на Гиктаймсе и на Хабре — я рассказал о том, что такое технокоммунизм и своё видение того, как нужно к нему двигаться не политическими битвами, а развитием технологий, общественными проектами и т.д., за счёт создания всемирной автоматизированной системы «Технокоммунизм», которую нужно начинать внедрять с того места где сейчас находятся люди, а именно с полезных интернет-сервисов. Как и ожидалось, кроме нашедшихся сторонников, некоторые товарищи выразили своё непонимание того, о чём я говорю. Поэтому, теперь моя задача планомерно, серией статей, раскрывать различные вопросы более подробно, но самое главное — осуществлять реальное движение по реализации всего озвученного.



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



Начну с «помечания». На заглавной картинке изображён лев, который как раз этим занимается с сосредоточенно-довольной мордой, поскольку моя фамилия Левадный, я решил провести вот такую хулиганскую ассоциацию. История того, как я стал использовать такой термин, вот такая. До того как я бросил почти всё и начал заниматься в основном общественной деятельностью, и до того как я продался крупным компаниям, в Омске у меня была небольшая ИТ-компания. Небольшая, но во многом крутая. Офис в центре города с душевыми, кухней и местами отдыха, крупные (по местным меркам) клиенты и всё-такое. Это был мой третий бизнес, первые два были неудачными. Почему был этот удачный? Потому, что я научился не сидеть и не ждать пока кто-то ко мне придёт и скажет что-то вроде: «Мы принесли вам деньги, возьмите их и ничего не делайте». Я перестал быть социопатом (не сразу и не полностью конечно) и начал бывать в разных местах, рассказывать о себе и о друзьях, о своей компании, знакомиться с людьми. В общем налаживать те самые деловые контакты ну и просто новые социальные связи.



Термин, этот, в голове у меня появился когда мы шли с другом-коллегой по улице со стоянки к офису, шли немного с другой стороны здания, не где обычно, я вижу вывеска с названием компании и говорю, давай по пути сейчас зайдём со словами: «УРААА, свершилось!!!». А когда они офигевшие на нас буду смотреть, мы скажем: «А знаете ли вы, что наша прекрасная компания занимающаяся техподдержкой и вообще комплексной автоматизацией, теперь находится с вами прямо в одном здании?». Друг говорит, что может не будет пугать людей, я ему говорю, что да давай зайдём, вроде как территорию пометим, скажем, что мы теперь тут. Даже если сразу с нами договор не заключат, то потом вспомнят. Вот так и возник у меня этот термин. В общем зашли, дверь не туда как-то пытались открыть, когда зашли на нас уже все пялились, поэтому кричать уже не надо было. Я рассказал, что мы ИТ-компания и мы тут в здании. Они сказали, что-то типа, что на ловца и зверь бежит, у них был мальчик, которых их админил, теперь ушел работать в какую-то компанию, им как раз мы и нужны. Вот так оно происходит.







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



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









Хорошо было бы, если бы ты такой понял, что у тебя есть гениальная идея, пришёл сразу в самую крупную компанию по близости, заходишь внутрь и говоришь охране, что у тебя гениальная идея. Охранник поднимает руку, но не для того, чтобы дать тебе по физиономии, а даёт тебе карточку-ключ от всех дверей и говорит, что вам нужно к самому главном директору, он на 16-ом этаже, вы пока поднимайтесь к нему, а я предупрежу его телохранителей, что у вас гениальная идея, чтобы они вас пропустили. Вы такой поднимаетесь на 16-й этаж, видите там большую дверь рядом с которой стоят телохранители, вы подходите к ней и хотите открыть её с ноги, но не успеваете, потому что телохранители её вам услужливо открывают. Вы такой говорите им, типа вы что, решили помешать внедрению моей гениальной идеи? Они со страхом в глазах отрицательно машут головами, тогда закройте дверь — говорите вы им. Они закрывают и вы, как и было запланировано, открываете с ноги дверь самого главного директора, заходите в его приёмную. Там сидит красивая секретарша и от громкого стука из своего помещения выглядывает, тот самый, главный директор, вы ему говорите: «У меня гениальная идея». Директор практически со слезами на глазах произносит: «Ну вот и дождались… я сейчас позвоню, отменю встречу с мэром нашего города, скажу, что не до него сейчас, а вы пока располагайтесь». А секретарша такая говорит: «Похоже меняется руководство компании, я тогда пока быстро схожу кружевное нижнее бельё одену». «Не надо, вы нужны мне как профессионал своего дела» — шутите вы ей, а жестом показываете чтобы она не забыла ещё и в душ забежать. Тут прибегает самый главный директор, со взглядом любящей собаки и открытом ртом смотри на вас… Но пока в этом мире всё не так.



Любое не публичное общение, даже если не оговаривается, что это некий интим, всё равно таким образом воспринимается, поэтому людям как-то не приятно, что они разговаривали или переписывались с одним человеком, а он это вываливает на общее обозрение, поэтому я очень кратко, не называя имена директоров или других сотрудников компаний, напишу что и как было.



1. Сначала обратился в Хабр



Первым этапом, среди таких зверей как Хабрахабр, Гиктайм и тогда ещё и Мегамозг (помните о нём?), можно было завести ещё одну неведому зверушку Технокоммунизм, перенести туда некоторые существующие хабы и создать новые. Последующими этапами создать функционал управления общественными проектами, базовый функционал социальной сети и так далее, постепенно всё это расширяя.



На первое письмо не ответили, на второе ответили почти дословно, немного утрировано повторю: «Когда мы отвечаем, то мы отвечаем, а когда не отвечаем, то не отвечаем». Потом подавал заявку на корпоративный блог для стартапа, ответили, что пока не видят функционала, только статьи про космос. Сейчас, я кстати, снова подал заявку, функционала теперь стало побольше, посмотрим результат.



Внутри компании я бы развивал идею сделать её народным предприятием, чтобы все сотрудники были владельцами, безусловно, уважая заслуги отца-основателя и соотцов-дооснователей.



2. Маил.Ру Групп



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



Там базовая идея была в том, чтобы портал Mail.ru, вместе с соц. сетью и всем остальным можно было бы использовать в двух функционально-интерфейсных средах. Или как обычно, или нажимаешь на логотип Технокоммунизма и там всё по другому выглядит, нет новостей про всякий шоубиз, в соц.сети появляется новый функционал и т.д.



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



3. ОнлиОфис



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



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



4. В конечном итоге были «в Кругу Друзей»



Помните о такой соц. сети? Это, которая бывшая odnoklassniki.KM.ru. Которая соц. сеть от портала «Кирилл и Мефодий». Помните их диски с энциклопедиями? Вот с ними я продвинулся дальше всех, им понравилось, но сказали, что их компанию сейчас захватывают рейдеры, поэтому сейчас все силы уходят на то, чтобы биться с ними. Там можно было бы внедрить всё то, что я в Майле предлагал.



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



Результат



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



Так же, появились различные другие наработки. Вот для примера первые листы нашего бизнес-плана адаптированного для Mail.Ru Group. Сейчас там уже многое что нужно дорабатывать и помните, что это экспериментальный бизнес-план нашего совершенно невероятного не совсем стандартного проекта. Конечно, не нужно забывать главное правило бизнеспланостроения: хороший бизнес-план не тот, который красивше выглядит, а тот, который поддержали инвесторы. На первом листе тут замазан квадратиками блок информации, это связано с тем, что информация не актуальна, а второй блок замазан, потому что я не хочу чтобы мне по ночам звонили и дышали в трубку.



Рекомендую всем к прочтению, особенно раздел «Лучший маркетинг для „Технокоммунизма“» (третий и четвёртый лист). Все картинки с листами бизнес-плана кликабельны.



Лист 0 (заглавный)

image



Лист 1 (оглавление-резюме)

image



Лист 2 (краткое описание проекта, концепция и история — начало)

image



Лист 3 (краткое описание проекта — окончание, никакого нытья, лучший маркетинг — начало)

image



Лист 4 (лучший маркетинг — окончание, что нам стало понятно? — начало)

image




Помните те времена, когда всякие большие энциклопедии и игры были на 4 и даже на 8 дисках?




























Проголосовало 3 человека. Воздержался 1 человек.





Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.


Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/298344/

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Опыт автоматизации тестирования серверного REST API с помощью Jmeter

Суббота, 18 Июня 2016 г. 21:58 (ссылка)

В данной статье речь пойдёт об опыте автоматизации функционального и нагрузочного тестирования API протокола RTLSCP. Серверная часть системы локального позиционирования RealTrac состоит из основного (core) сервера, который связывается с устройствами по протоколу INCP (InterNanoCom Protocol) и сервера приложений (appserver). Сервер приложений общается с внешними клиентами и основным сервером по протоколу RTLSCP (Real Track Location System Communication Protocol). Клиенты также могут напрямую обращаться к основному серверу по RTLSCP.



RTLSCP реализует архитектуру REST и позволяет в запросах и ответах передавать данные в форматах JSON, KML и PNG. Причем общение по нему может происходить как по HTTP/HTTPS, так и по WS/WSS (Websocket). Этот протокол обеспечивает внешнего клиента обширным функционалом:




  • получение различной информации об устройствах — локация, статусы, состояние и т. д.;

  • передача управляющих команд на сервер — изменение параметров устройств, настроек сервера, отправка оповещений на устройства, загрузка карты и т. д.;

  • получение отчетов по устройствам, статуса работы системы от Quality of Service.

  • множество других полезных функций.



Важно, что протокол, со стороны сервера приложений обрастает дополнительным клиент-специфик функционалом от проекта к проекту. Как же это всё тестировать? Вручную получается долго и муторно, тестировщик скорее возненавидит весь мир пока пройдётся по всем командам спецификации RTLSCP API более чем в 120 страниц. Очевидно, этот процесс необходимо автоматизировать.



Тестирование системы проводится под Linux. Изначально мы пытались написать автотесты “на коленке“. Перепробовали несколько вариантов. Генерация запросов со случайными данными и отправка их на вход утилиты для нагрузочного тестирования Siege. В этом случае мы получаем только нагрузочное тестирование без возможности анализа содержимого ответа от сервера. Реализация автотестов на Python и простая отправка запросов через urllib. Тут всё веселее с анализом ответа, но получается громоздкий код, в который сложно вникать стороннему человеку и долго модифицировать.



Решением всех наших проблем стал неожиданно найденный Jmeter от Apache. Хоть на первый взгляд его графический интерфейс вызывает страх у обывателя, на деле этот инструмент помог найти большое количество багов и сэкономить много времени на тестировании RTLSCP API.



Рис. 1. Графический интерфейс Jmeter.



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



Об инструменте уже существует некоторое количество статей (стоит обратить внимание на эту) на хабре, поэтому расписывать все его функции подробно не будем. Остановимся лишь на самых интересных моментах, которые запомнились за время использования Jmeter.



Автоматизация проверки сервиса авторизации и разграничений прав доступа для разных пользователей прошла на ура. Без каких-либо сложностей в несколько десятков кликов получилось организовать создание аккаунтов и назначение им прав доступа к случайным ресурсам.





Рис. 2. Так выглядит реализация проверки создания аккаунтов.



С помощью BeanShell PostProcessor (Post тут означает, что скрипт запускается после выполнения запроса) обрабатываем ответ на запрос всех доступных в системе ресурсов. Получаем их количество и генерируем случайные Id ресурсов для последующего присвоения созданным аккаунтам прав доступа к ним. Это осуществляется следующим кодом на BeanShell:

import java.util.regex.*;
import java.util.*;
import java.util.Random;

String response = prev.getResponseDataAsString();
Pattern pattern = Pattern.compile("id");
Matcher matcher = pattern.matcher(response);
int count = 0;
while (matcher.find())
count++;
Random rd=new Random();
Set resSet = new HashSet();
while (resSet.size()<4)
resSet.add(rd.nextInt(count));
int i=1;
Iterator iterator = resSet.iterator();
while (iterator.hasNext()) {
vars.put("resForCombo"+i,iterator.next().toString());
i++;
}




Затем из ответа на запрос информации о ресурсе по его Id получаем его URL с помощью Regular Expression Extractor:





Рис. 3. Использование Regular Expression Extractor.



Тут всё очевидно, в переменную res1Addr помещается содержимое ответа, вырезанное по регулярному выражени. В конце проводим проверку всех созданных аккаунтов и их права доступа к ресурсам. Кстати, обработка Cookies для авторизации в Jmeter реализуется простым добавлением элемента HTTP Cookie Manager.



Элементы типа check AUTH_ACCOUNT_ADDED_INTO_GROUP на рисунке 2 нужны для проверки того, что каждое действие пользователя, совершенное над аккаунтами записалось в соответствующее событие в истории событий (Получаемой также через RTLSCP).



Во время разработки автотестов был крайне полезен встроенный генератор случайных чисел. В любом месте в Jmeter можно использовать эту функцию. Разыграть число в заданном диапазоне:



${__Random(300,180000)}




Или сгенерировать строку определенного размера и случайного содержания:



${__RandomString(${__Random(3,30)},ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789,)}




Понравилось, что в Jmeter любое действие можно реализовать как в коде BeanShell, так и с помощью встроенных инструментов. К примеру, получить количество доступных в системе ресурсов (выше мы это делаем через BeanShell PostProcessor ) можно реализовав Regular Expression Extractor, в котором в поле Match No. следует просто указать -1. В этом случае создаётся переменная {Reference Name}_matchNr, содержащая количество найденных в ответе по регулярному выражения строк. Так и ответ на любой запрос можно анализировать в коде BeanShell и выставлять флаги статуса выполнения элемента:



//Get response
response = prev.getResponseDataAsString();
//Check login
if (!response.contains("\"login\":\"${ulogin_g1}\"")) {
log.error("### login NOK!");
Failure= true;
//Check timestamp
} else if(!response.contains("\"create_ts\":${createTS_g1}")) {
log.error("### create_ts NOK!");
Failure= true;




Возможность комментирования каждого элемента делает автотест читабельным и позволяет ссылаться на тикет в багтрекере, например, Redmine:





Рис. 4. Комментирование элементов.



Отключение ресурсоемких проверок и добавление в Thread Group автотеста пользователей в поле Number of Treads (users) превращает наш функциональный автотест в нагрузочный. Теперь проект запускается одновременно из указанного количества потоков и нагружает сервер.





Рис. 5 Нагрузочное тестирование.



Результаты выполнения автотеста можно получить в любом удобном виде, как просмотреть в графической оболочке через View Results Tree, так и файлами логов с различными настройками:





Рис. 6 Получение результатов.



Также стоит отметить возможность в режиме реального времени отправлять результаты или любую другую информацию о статусе автотеста в различные сервисы (JDBC, JMS, Webservice). Например, на Graphite с последующим отображением в Grafana:





Рис. 7 Отправка результатов.



Естественно, у Jmeter существует некоторое количество отрицательных свойств. Например, не всегда удобный графический интерфейс и баги в нём. Но в нашей ситуации, когда срочно (и самое важное, бесплатно) требуется покрыть автоматическими тестами большое количество функций общения клиентов с сервером через протокол, Jmeter оказался незаменимым инструментом тестировщика.
Original source: habrahabr.ru.

https://habrahabr.ru/post/303584/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Опыт автоматизации тестирования серверного REST API с помощью Jmeter

Суббота, 18 Июня 2016 г. 21:58 (ссылка)

В данной статье речь пойдёт об опыте автоматизации функционального и нагрузочного тестирования API протокола RTLSCP. Серверная часть системы локального позиционирования RealTrac состоит из основного (core) сервера, который связывается с устройствами по протоколу INCP (InterNanoCom Protocol) и сервера приложений (appserver). Сервер приложений общается с внешними клиентами и основным сервером по протоколу RTLSCP (Real Track Location System Communication Protocol). Клиенты также могут напрямую обращаться к основному серверу по RTLSCP.



RTLSCP реализует архитектуру REST и позволяет в запросах и ответах передавать данные в форматах JSON, KML и PNG. Причем общение по нему может происходить как по HTTP/HTTPS, так и по WS/WSS (Websocket). Этот протокол обеспечивает внешнего клиента обширным функционалом:




  • получение различной информации об устройствах — локация, статусы, состояние и т. д.;

  • передача управляющих команд на сервер — изменение параметров устройств, настроек сервера, отправка оповещений на устройства, загрузка карты и т. д.;

  • получение отчетов по устройствам, статуса работы системы от Quality of Service.

  • множество других полезных функций.



Важно, что протокол, со стороны сервера приложений обрастает дополнительным клиент-специфик функционалом от проекта к проекту. Как же это всё тестировать? Вручную получается долго и муторно, тестировщик скорее возненавидит весь мир пока пройдётся по всем командам спецификации RTLSCP API более чем в 120 страниц. Очевидно, этот процесс необходимо автоматизировать.



Тестирование системы проводится под Linux. Изначально мы пытались написать автотесты “на коленке“. Перепробовали несколько вариантов. Генерация запросов со случайными данными и отправка их на вход утилиты для нагрузочного тестирования Siege. В этом случае мы получаем только нагрузочное тестирование без возможности анализа содержимого ответа от сервера. Реализация автотестов на Python и простая отправка запросов через urllib. Тут всё веселее с анализом ответа, но получается громоздкий код, в который сложно вникать стороннему человеку и долго модифицировать.



Решением всех наших проблем стал неожиданно найденный Jmeter от Apache. Хоть на первый взгляд его графический интерфейс вызывает страх у обывателя, на деле этот инструмент помог найти большое количество багов и сэкономить много времени на тестировании RTLSCP API.



Рис. 1. Графический интерфейс Jmeter.



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



Об инструменте уже существует некоторое количество статей (стоит обратить внимание на эту) на хабре, поэтому расписывать все его функции подробно не будем. Остановимся лишь на самых интересных моментах, которые запомнились за время использования Jmeter.



Автоматизация проверки сервиса авторизации и разграничений прав доступа для разных пользователей прошла на ура. Без каких-либо сложностей в несколько десятков кликов получилось организовать создание аккаунтов и назначение им прав доступа к случайным ресурсам.



image

Рис. 2. Так выглядит реализация проверки создания аккаунтов.



С помощью BeanShell PostProcessor (Post тут означает, что скрипт запускается после выполнения запроса) обрабатываем ответ на запрос всех доступных в системе ресурсов. Получаем их количество и генерируем случайные Id ресурсов для последующего присвоения созданным аккаунтам прав доступа к ним. Это осуществляется следующим кодом на BeanShell:

import java.util.regex.*;
import java.util.*;
import java.util.Random;

String response = prev.getResponseDataAsString();
Pattern pattern = Pattern.compile("id");
Matcher matcher = pattern.matcher(response);
int count = 0;
while (matcher.find())
count++;
Random rd=new Random();
Set resSet = new HashSet();
while (resSet.size()<4)
resSet.add(rd.nextInt(count));
int i=1;
Iterator iterator = resSet.iterator();
while (iterator.hasNext()) {
vars.put("resForCombo"+i,iterator.next().toString());
i++;
}




Затем из ответа на запрос информации о ресурсе по его Id получаем его URL с помощью Regular Expression Extractor:



image

Рис. 3. Использование Regular Expression Extractor.



Тут всё очевидно, в переменную res1Addr помещается содержимое ответа, вырезанное по регулярному выражени. В конце проводим проверку всех созданных аккаунтов и их права доступа к ресурсам. Кстати, обработка Cookies для авторизации в Jmeter реализуется простым добавлением элемента HTTP Cookie Manager.



Элементы типа check AUTH_ACCOUNT_ADDED_INTO_GROUP на рисунке 2 нужны для проверки того, что каждое действие пользователя, совершенное над аккаунтами записалось в соответствующее событие в истории событий (Получаемой также через RTLSCP).



Во время разработки автотестов был крайне полезен встроенный генератор случайных чисел. В любом месте в Jmeter можно использовать эту функцию. Разыграть число в заданном диапазоне:



${__Random(300,180000)}




Или сгенерировать строку определенного размера и случайного содержания:



${__RandomString(${__Random(3,30)},ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789,)}




Понравилось, что в Jmeter любое действие можно реализовать как в коде BeanShell, так и с помощью встроенных инструментов. К примеру, получить количество доступных в системе ресурсов (выше мы это делаем через BeanShell PostProcessor ) можно реализовав Regular Expression Extractor, в котором в поле Match No. следует просто указать -1. В этом случае создаётся переменная {Reference Name}_matchNr, содержащая количество найденных в ответе по регулярному выражения строк. Так и ответ на любой запрос можно анализировать в коде BeanShell и выставлять флаги статуса выполнения элемента:



//Get response
response = prev.getResponseDataAsString();
//Check login
if (!response.contains("\"login\":\"${ulogin_g1}\"")) {
log.error("### login NOK!");
Failure= true;
//Check timestamp
} else if(!response.contains("\"create_ts\":${createTS_g1}")) {
log.error("### create_ts NOK!");
Failure= true;




Возможность комментирования каждого элемента делает автотест читабельным и позволяет ссылаться на тикет в багтрекере, например, Redmine:



image

Рис. 4. Комментирование элементов.



Отключение ресурсоемких проверок и добавление в Thread Group автотеста пользователей в поле Number of Treads (users) превращает наш функциональный автотест в нагрузочный. Теперь проект запускается одновременно из указанного количества потоков и нагружает сервер.



image

Рис. 5 Нагрузочное тестирование.



Результаты выполнения автотеста можно получить в любом удобном виде, как просмотреть в графической оболочке через View Results Tree, так и файлами логов с различными настройками:



image image

Рис. 6 Получение результатов.



Также стоит отметить возможность в режиме реального времени отправлять результаты или любую другую информацию о статусе автотеста в различные сервисы (JDBC, JMS, Webservice). Например, на Graphite с последующим отображением в Grafana:



image

Рис. 7 Отправка результатов.



Естественно, у Jmeter существует некоторое количество отрицательных свойств. Например, не всегда удобный графический интерфейс и баги в нём. Но в нашей ситуации, когда срочно (и самое важное, бесплатно) требуется покрыть автоматическими тестами большое количество функций общения клиентов с сервером через протокол, Jmeter оказался незаменимым инструментом тестировщика.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/303584/

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Автоматизируем покупку Ж/Д билетов Укрзалізниці

Понедельник, 13 Июня 2016 г. 22:32 (ссылка)

Привет! Наверное, каждый из нас когда-то сталкивался с ситуацией, когда нужно срочно куда-то уехать, но все Ж/Д билеты уже раскуплены. В этой статье я расскажу о том, как я писал Telegram бота для отслеживания и покупки освободившихся билетов Укрзалізниці.



Как это работает



Для покупки железнодорожных билетов в Украине компания Укрзалізниця запустила ресурс http://booking.uz.gov.ua/. Ресурс удобен тем, что не нужно посещать кассы, чтобы забрать сам билет. Достаточно показать проводнику QR код с посадочного талона на экране смартфона либо распечатав на принтере.



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



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



В качестве интерфейса был выбран Telegram так как это новая платформа для меня и я хотел с ней немного разобраться. В качестве бонуса сразу получаем уведомления на мобильный, не задумываясь о push нотификациях или email'ах.

В качестве языка программирования был выбран Python.



Интерфейс



И всё же, как это работает с точки зрения пользователя?

Бот распознает следующие команды:




  • /help — вернёт список поддерживаемых команд

  • /trains 2016-06-12 Kyiv Lviv — вернёт список поездов из Киева во Львов, отправляющихся 12 июня 2016 года

  • /scan Ivanov Ivan 2016-06-12 Kyiv Lviv 743K — запустит мониторинг билетов на поезд 743К Киев-Львов. Возвращает ID данного сканирования

  • /status_1234 — вернет состояние сканирования с ID 1234

  • /abort_1234 — остановит сканирование с ID 1234



В случае успешного резервирования билета пользователь получит сообщение, содержащее Session ID. Этот ID затем необходимо вручную прописать в cookie браузера и завершить покупку билета.



UZ API



Для начала давайте разберёмся с форматом API, используемым порталом. Это не составляет большого труда, достаточно просто открыть консоль разработчика в браузере и посмотреть какие запросы выполняет скрипт на странице поиска билетов.



В API используются только POST запросы. Для защиты от использования API сторонними разработчиками почти во всех вызовах в тело включается токен. Без токена можно производить только поиск станций.



Стоит также отметить, некоторые нюансы работы с датами. Во-первых, формат даты меняется в зависимости от текущей локали API. Например, для локали en формат будет mm.dd.yyyy. Тогда как для ua и ru это будет привычный нам dd.mm.yyyy. Во-вторых, для некоторых запросов дата представляется в виде timestamp, однако он зависит от состояния летнего/зимнего времени. Потому я решил не заморачиваться с сериализацией/десериализацией данных штампов, а использовать их в том виде, в котором API возвращает их.



Получение токена



Покопавшись в подключаемых сайтом скриптах, можно с легкостью обнаружить такой кусок:



var ajax = $v.ajax(url).header({
'GV-Ajax': 1,
'GV-Referer': encodeURI(GV.site.htcur_url + GV.site.requestUri),
'GV-Screen': screen.width + 'x' + screen.height,
'GV-Token': localStorage.getItem('gv-token') || ''
});


Здесь мы видим, что при вызовах в API токен считывается из localStorage браузера. Осталось найти где он туда записывается.



Эта часть была самой интересной, потому как простым поиском по html и js этого найти не удалось. Потратив несколько часов в гугле, я наткнулся на статью, в которой автор решает такой же вопрос с мониторингом билетов на сайте УЗ. Итак, в статье подробно описано, что токен генерируется обфусцированным с помощью JJEncode кодом. За несколько минут находим реализацию деобфускатора на питоне, который и будет использоваться в дальнейшем.



Краткий API reference



Для вызова методов API, необходимо включать следующие заголовки:



GV-Ajax: 1
GV-Referer: http://booking.uz.gov.ua/en/
GV-Token:


Поиск станций



Например, для формирования подсказок автодополнения станций выполняется запрос с пустым телом по адресу http://booking.uz.gov.ua/en/purchase/station/ky/, где ky — это то, что пользователь вводит в текстовое поле выбора станции.



В ответ сервер отправляет примерно такой JSON:



{
"value": [
{
"title": "Kyiv",
"station_id": "2200001"
},
{
"title": "Kyivska Rusanivka",
"station_id": "2201180"
},
{
"title": "Kyj",
"station_id": "2031278"
},
{
"title": "Kykshor",
"station_id": "2011189"
}
],
"error": null,
"data": {
"req_text": [
"ky",
"лн"
]
},
"captcha": null
}


Поиск поездов



Для поиска поездов необходимо выполнить запрос на http://booking.uz.gov.ua/en/purchase/search/ с таким телом:



station_id_from=2200001  # ID станции отправления
station_id_till=2218000 # ID станции назначения
date_dep=06.12.2016 # дата отправления в формате mm.dd.yyyy
time_dep=00:00
time_dep_till=
another_ec=0
search=


В ответ мы получим список поездов, следующих по указанному маршруту. Так же, в ответ будет включена информация о количестве свободных мест в вагонах каждого типа (Люкс, Купе, Плацкарт, и т. д.):



{
"value": [
{
"num": "743Л",
"model": 1,
"category": 1,
"travel_time": "5:01",
"from": {
"station_id": 2200001,
"station": "Darnytsya",
"date": 1465741200,
"src_date": "2016-06-12 17:20:00"
},
"till": {
"station_id": 2218000,
"station": "Lviv",
"date": 1465759260,
"src_date": "2016-06-12 22:21:00"
},
"types": [
{
"title": "Seating first class",
"letter": "С1",
"places": 117
},
{
"title": "Seating second class",
"letter": "С2",
"places": 176
}
],
"reserve_error": "reserve_24h"
},
{
"num": "091К",
"model": 0,
"category": 0,
"travel_time": "7:25",
"from": {
"station_id": 2200001,
"station": "Kyiv-Pasazhyrsky",
"date": 1465760460,
"src_date": "2016-06-12 22:41:00"
},
"till": {
"station_id": 2218000,
"station": "Lviv",
"date": 1465787160,
"src_date": "2016-06-13 06:06:00"
},
"types": [
{
"title": "Suite / first-class sleeper",
"letter": "Л",
"places": 11
},
{
"title": "Coupe / coach with compartments",
"letter": "К",
"places": 50
}
],
"reserve_error": "reserve_24h"
}
],
"error": null,
"data": null,
"captcha": null
}


Просмотр вагонов



Просмотреть список вагонов и количество свободных мест можно выполнив запрос на http://booking.uz.gov.ua/en/purchase/coaches/ с таким телом:



station_id_from=2200001
station_id_till=2218000
date_dep=1462976400
train=743К # номер поезда
model=3 # модель поезда
coach_type=С2 # тип вагона (люкс, купе, и т. д.)
round_trip=0
another_ec=0


В ответ мы получим список вагонов данного типа с количеством свободных мест и ценой:



{
"coach_type_id": 10,
"coaches": [
{
"num": 1,
"type": "С",
"allow_bonus": false,
"places_cnt": 21,
"has_bedding": false,
"reserve_price": 1700,
"services": [],
"prices": {
"А": 35831
},
"coach_type_id": 10,
"coach_class": "2"
},
{
"num": 3,
"type": "С",
"allow_bonus": false,
"places_cnt": 21,
"has_bedding": false,
"reserve_price": 1700,
"services": [],
"prices": {
"А": 35831
},
"coach_type_id": 9,
"coach_class": "2"
}
],
"places_allowed": 8,
"places_max": 8
}


Просмотр свободных мест



Для просмотра свободных мест в выбранном вагоне необходимо выполнить запрос на http://booking.uz.gov.ua/en/purchase/coach/ с телом:



station_id_from=2200001
station_id_till=2218000
train=743К
coach_num=1
coach_class=2
coach_type_id=19
date_dep=1462976400
change_scheme=1


В ответ получаем список свободных мест:



{
"value": {
"places": {
"А": [
"8",
"12",
"16",
"18",
"22",
"27",
"28",
"32",
"33",
"34",
"36",
"37",
"38",
"39",
"42",
"43",
"47",
"48",
"49",
"55",
"56"
]
}
},
"error": null,
"data": null,
"captcha": null
}


Работа с корзиной



Для того, чтобы положить билет в корзину, тем самым зарезервировав его на 15 минут для оплаты, необходимо выполнить запрос на http://booking.uz.gov.ua/en/cart/add/ с телом:



code_station_from:2200007
code_station_to:2218000
train:743К
date:1463580000
round_trip:0
places[0][ord]:0
places[0][coach_num]:5
places[0][coach_class]:2
places[0][coach_type_id]:22
places[0][place_num]:37
places[0][firstname]:Name
places[0][lastname]:Surname
places[0][bedding]:0
places[0][child]:
places[0][stud]:
places[0][transp]:0
places[0][reserve]:0


Мониторинг



Итак, вот мы и добрались до самой интересной части, до мониторинга свободных билетов. Для решения этой задачи был реализован класс UZScanner, который имеет несколько методов:




  • добавить поезд для мониторинга

  • удалить поезд из мониторинга

  • запуск мониторинга

  • остановка мониторинга



Класс мониторинга реализован таким образом, чтобы к нему с легкостью можно было подключать любые пользовательские интерфейсы, например, любой другой, отличный от Telegram, бот или веб сайт.



Мониторинг является асинхронным процессом и выполняется как корутина. В случае успешного резервирования билета, мониторинг выполняет callback, информируя пользователя о результате. Для этого в конструктор класса передается callback-функция.



class UZScanner(object):

def __init__(self, success_cb, delay=60):
self.success_cb = success_cb

self.loop = asyncio.get_event_loop()
self.delay = delay
self.session = aiohttp.ClientSession()
self.client = UZClient(self.session)
self.__state = dict()
self.__running = False


Для того, чтобы вызывающий код различал для какого именно пользователя произошел callback, помимо данных о самом поезде также передаётся callback ID:



def add_item(self, success_cb_id, firstname, lastname, date,
source, destination, train_num, ct_letter=None):
scan_id = uuid4().hex
self.__state[scan_id] = dict(
success_cb_id=success_cb_id,
firstname=firstname,
lastname=lastname,
date=date,
source=source,
destination=destination,
train_num=train_num,
ct_letter=ct_letter,
lock=asyncio.Lock(),
attempts=0,
error=None)
return scan_id


Основная функция мониторинга является циклом, в котором для каждого поезда запускается функция проверки наличия мест.



async def run(self):
self.__running = True
while self.__running:
for scan_id, data in self.__state.items():
asyncio.ensure_future(self.scan(scan_id, data))
await reliable_async_sleep(self.delay)


Сама же функция мониторинга работает по такому алгоритму:




  • Получить список поездов на заданную дату по заданному маршруту

  • Проверить, есть ли нужный поезд

  • Для всех вагонов (либо только для указанного типа) проверить наличие мест

  • Попробовать зарезервировать первое найденное свободное место

  • В случае успеха, выполнить callback, удалить поезд из мониторинга



async def scan(self, scan_id, data):
if data['lock'].locked():
return

async with data['lock']:
data['attempts'] += 1

train = await self.client.fetch_train(
data['date'], data['source'], data['destination'], data['train_num'])
if train is None:
return self.handle_error(
scan_id, data, 'Train {} not found'.format(data['train_num']))

if data['ct_letter']:
coach_type = self.find_coach_type(train, data['ct_letter'])
if coach_type is None:
return self.handle_error(
scan_id, data, 'Coach type {} not found'.format(data['ct_letter']))
coach_types = [coach_type]
else:
coach_types = train.coach_types

session_id = await self.book(train, coach_types, data['firstname'], data['lastname'])
if session_id is None:
return self.handle_error(scan_id, data, 'No available seats')

await self.success_cb(data['success_cb_id'], session_id)
self.abort(scan_id)

@staticmethod
async def book(train, coach_types, firstname, lastname):
with UZClient() as client:
for coach_type in coach_types:
for coach in await client.list_coaches(train, coach_type):
try:
seats = await client.list_seats(train, coach)
except ResponseError:
continue
for seat in seats:
try:
await client.book_seat(train, coach, seat, firstname, lastname)
except ResponseError:
continue
return client.get_session_id()


Заключение



Мы разобрались с API, используемым порталом http://booking.uz.gov.ua и реализовали скрипт резервирования билета. Код доступен на GitHub. Docker image доступен на DockerHub. Также доступен Telegram бот @uz_ticket_bot


Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/303150/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Количество и качество: как развиваются таск-трекеры в условиях конкуренции

Среда, 08 Июня 2016 г. 18:02 (ссылка)

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



Особенности этой ниши таковы, что бесплатные таск-менеджеры вполне могут конкурировать с платными продуктами, крупные корпорации – с небольшими командами энтузиастов.



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



Корпорация Microsoft запускает новый сервис — Planner. Он станет непосредственным конкурентом популярного таск-менеджера Trello. Сравнивая внешний вид и принцип работы двух сервисов, можно найти много общего.



image

Planner



image

Trello



В Planner используется концепция «досок» (boards), каждая из которых предназначена для отдельного проекта. Внутри «досок» располагаются «карточки» (cards), у которых может быть дата выполнения, вложенные файлы, категории и обсуждения. «Карточки» могут быть организованы по колонкам-«корзинам» (buckets), которым можно присваивать нужный цвет и приоритет.



Основным отличием Planner от конкурентов стала интеграция с другими продуктами Microsoft. Например, обсуждения в сервисе будут доступны и в сервисе Outlook, а файлы из Word, Excel и PowerPoint можно быстро прикреплять к «карточкам». Microsoft обещает добавить Planner в пакеты приложений всех пользователей Office 365 в «ближайшие недели».



Trello



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



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



В Trello основной упор сделан на пачки карточек. Каждая пачка показывает состояние любого проекта. К примеру, если вы подбираете команду на работу, то в первой колонке будут карточки с резюме, во второй — сами кандидаты для собеседования, в третьей могут быть встречи, в четвертой — прошедшие события и встречи, а в пятой — результаты, как непосредственные кандидаты



За прошедший год Trello обзавелся поддержкой немецкого, французского, португальского языков. Вышли новые версии Trello Business Class и Trello Enterprise, а также приложение для Android. Изменились оповещения и система меток, которая используется для фильтрации.



image



Кроме того, у сервиса появились возможности создания закладок и перетаскивания адресов для создания карточек с Pinterest, Amazon, Airbnb, а также с компьютера.



За 2015 год некоторые другие таск-менеджеры тоже были доработаны.



Asana



В Asana самым громким событием за прошедший год стал редизайн сервиса. Основные изменения коснулись панелей навигации, цветовых решений и логотипа. Стали иначе выглядеть сведения о проектах и задачах и папка с входящими.



image



Появились новые способы ведения бесед и стало больше возможностей использования анимации.



JIRA



image



Вышла новая версия JIRA, в которой изменились приветственный гид, боковая панель и шаблон проекта, также появилась возможность аварийного восстановления.



Basecamp



3 ноября 2015 года Basecamp выпустил новую версию продукта Basecamp 3, да так быстро, что никаких интеграций с популярными сервисами сделать не успели. Теперь можно создавать неограниченное число проектов, архивировать диалоги и настраивать частоту отправки сообщений с Basecamp на почту, чтобы отдыхать по вечерам и выходным.



image



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



Служба поддержки, которой Basecamp может гордиться, к счастью, не претерпела изменений. Согласно опросу Basecamp, 93 человека из 100 считают ее замечательной.



Redmine



image



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



«Битрикс24»



image



«Битрикс24» за год пережил легкий редизайн сайта и обзавелся новой функциональностью. Так появились новые CRM-формы и обмен файлами, увеличились скорость работы и объем дискового пространства, появилась поддержка португальского и китайского языков.



«Мегаплан»



За прошедший год «Мегаплан» пережил полный редизайн. Из технических возможностей появились интеграция с почтой, подсчет стоимости валютных сделок и автосценарии, повышающие лояльность клиентов. Например, если у клиента день рождения, «Мегаплан» напомнит, что нужно отправить поздравление.



image



Разработчики обновили синхронизацию с «1С», добавили аренду номеров и поддержку внешних звонков и создали фильтры клиентской базы. В мобильном приложении появились полноценные карточки проектов и управление контактами. В режиме альфа-тестирования представлено приложение для Windows Phone.



Wunderlist



Облачный таск-менеджер, который оправдывает свой слоган «Доступен везде и в любое время».



Поддерживается большинством устройств, среди которых десктопные приложения для Windows и Mac OS, мобильные приложения для устройств на iOS, Android и Windows. Приложение доступно также на iPad, Android tablet, Kindle Fire, Apple Watch и даже Chromebook.



image



Продукт был создан в 2011 году немецкими разработчиками, а в 2015 году куплен компанией Microsoft. В 2014 году Wunderlist достиг результата в 10 миллионов пользователей, а в 2015 году — в 13 миллионов.



Рейтинг таск-менеджеров



Аналитическое агентство TAGLINE опубликовало свежий рейтинг сервисов для управления задачами, используемых в российских компаниях.







Возглавил рейтинг специализированных решений для управления задачами «Битрикс24», который использует 51% респондентов. На втором месте сервис Basecamp, который выбирают 27% опрошенных. Третьим по популярности стал Redmine с 25% голосов.











Рейтинги сервисов для автоматизации таск-трекинга проводятся TAGLINE в четвертый раз. Они сформированы на основе анкетирования 510+ digital-агентств и продакшнов с производством и/или клиентским офисом в России (проводилось с августа 2014 по апрель 2016 года).







Динамика приводится по сравнению с данными, полученными TAGLINE за период с мая 2013 по август 2014 года.



Мнения экспертов



По мнению Евгения Лобанова, исполнительного директора компании AGIMA, не обязательно тестировать таск-трекеры, чтобы определиться с выбором, так как разработчики систем дают подробное описание функционала, а интерфейс и механику взаимодействия можно посмотреть на видео:

«Если проект сложный в техническом плане, то нужно смотреть в сторону систем управления проектами, которые включают в себя баг-трекер и прочие возможности для разработчиков. Если же задача — оптимизировать и упростить коммуникацию и процесс организации работ над проектами, не требующими объемной и сложной разработки, то достаточно будет более простой системы».


Эксперты сходятся во мнении, что системы управления проектами являются необходимым условием для эффективного распределения времени сотрудников. Дмитрий Провоторов, исполнительный директор компании «Мануфактура», комментирует:

«В большинстве случаев формализованные процессы производства и заточенные под них системы управления проектами облегчают обучение новых сотрудников и их интеграцию в проекты, разработчикам помогают держать фокус, менеджерам — визуализировать ситуацию. На небольших проектах сроком реализации до 2 недель можно обходиться без системы управления проектами».


Главный редактор TAGLINE Алексей Раменский отмечает:
«Основной тренд — начало осознанного подхода компаний к системному управлению задачами, где таск-менеджер используется не как временная «погремушка», а как концептуальная платформа, чья логика отражается в процессах компании».


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



«Появляется все больше очень простых систем, не обремененных сложным функционалом, настройками и возможностями «допиливания». Такие системы подходят хорошо для какой-то одной конфигурации системы управления проектами и так же однозначно не подходят для всех остальных. Соответственно, и внедряются они очень легко и изящно», – поясняет Никита Михеенков, директор по развитию компании Nimax.



«Главная задача [таск-менеджера] – всегда видеть статус по проектам и не терять задачи в почте или в Skype. Так как мы веб-студия, мне нужен был функционал, заточенный под конкретные запросы», – рассказывает Евгений Кудрявченко, директор по работе с клиентами в Vintage Web Production.



Он выделяет необходимый и опциональный набор функций, которыми, по его мнению, должны обладать таск-менеджеры.



Необходимые функции:



• создавать проекты и задачи внутри проекта;

• назначать задачи конкретным людям;

• давать доступ клиентам, чтобы в больших проектах они видели статус и сами ставили задачи;

• диаграмма Ганта – с ее помощью визуально легче понимать, какие задачи в работе и какие выходят за рамки;

• учет времени и возможность выставленная счетов (хотя бы внутренних).



Желательно:



• русский и английский интерфейс;

• интеграция с Dropbox и Google Drive;

• возможность вести wiki по проекту.



«Мы сидим в одном офисе, поэтому чаты, групповые видео и звонки – не в приоритете. Сразу скажу – Redmine и dotProject я даже не рассматривал ввиду убогости и полного отсутствия юзабилити», – заявил он.



Евгений Кудрявченко и прочие эксперты высказали свое мнение еще о нескольких продуктах:


Basecamp (2-е место в рейтинге TAGLINE)

Дизайн и UX-сервиса на высоте, все понятно и приятно работать. Есть работа с клиентами, удобный календарь, легко создавать wiki. Важный плюс – можно настроить групповые отчеты на почту, чтобы не захламлять ящик отдельно оповещением о каждом действии.



Минус – нет задач, а только списки to-do и обсуждения, которые видят все, и на человека можно назначить только to-do. Еще нет учета времени и модуля счетов, и, что мне немаловажно, диаграммы Ганта.



Думаю, это отличное решение для небольших бизнесов, к тому же красивое. Но у веб-студии, где в проекте может участвовать 20 человек, такой таскменеджер быстро превратится в свалку.


Asana (8-е место в рейтинге TAGLINE)

Работает быстро, интерфейс компактный. Много горячих клавиш, что может заметно ускорить работу, если вы их, конечно, запомните. Задачи создаются как расширенные to-do, что тоже неплохо. Но тяжело следить за большим количеством проектов – чтобы найти задачи, нужно открывать каждый проект и просматривать его. К тому же, нет клиентского доступа и учета времени.



Функционал очень простой и больше напоминает расширенный Wunderlist. Думаю, это решение идеально для компаний, у которых миллион мелких задача, например, для ивент-агентств.


«Битрикс24» (1-е место в рейтинге TAGLINE)

Разумная стоимость, большой функционал, внутренний marketplace расширяет возможности. Но у нее сильно громоздкий дизайн, много лишнего, и сервис часто медленно работает. Сама система хороша, рекомендую попробовать небольшим компаниям или большим, но не IT.


Worksection (9-е место в рейтинге TAGLINE)

Открываешь систему и все сразу понятно, интерфейс простой и логичный. Есть учет времени и возможность выставления счетов. Очень удобная диаграмма Ганта. Легко создавать клиентский доступ. Удобно управлять задачами – сделать видимость для всех или расшарить только избранным. Кроме того, можно подключить свой FTP и хранить там все макеты и дизайны. Сразу видно, сервис делала толковая веб-студия для веб-студий.



Из минусов – интеграция только с Google Drive, но нет с Dropbox и другими сервисами. И нет wiki, но можно делать заметки через Google Docs, например.


Megaplan (5-е место в рейтинге TAGLINE)

Устарел, много лишнего функционала. Зато очень удобная рассылка.


«Раньше использовали «Мегаплан». Перешли, потому что не подходит для управления разработкой», добавляет Артем Поль, менеджер проекта

https://habrahabr.ru/post/302914/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Делаем собственный сервис по определению WHOIS любого домена

Четверг, 02 Июня 2016 г. 19:26 (ссылка)





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



Итак, давайте разберёмся как это работает.

Читать дальше →

https://habrahabr.ru/post/302494/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Что мешает развиваться автоматизации бизнес-процессов в онлайн-рекрутинге

Среда, 01 Июня 2016 г. 20:24 (ссылка)

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



Конечно же, можно рассматривать эту тенденции и с положительной стороны: мир действительно изменился, на многих рынках изменились правила игры. Всеобщая информатизация – явление глобальное и объективное, как ни крути. Чуть позже большинство рачительных людей просто заболели облачными технологиями.



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



Тем не менее, мнения о целесообразности внедрения высоких технологий до сих пор разнятся от рынка к рынку. Но когда эта волна докатилась до сферы рекрутинга, число сомневающихся увеличилось. И до сих пор у экспертов нет единого мнения по поводу того, насколько это было полезно, и каким может быть дальнейшее развитие этого направления. Читать дальше →

https://habrahabr.ru/post/302414/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Автоматизация при помощи бота или как из истерии по роботам сделать полезное решение

Пятница, 27 Мая 2016 г. 16:04 (ссылка)


За то долгое время, что мы не писали, произошло невероятное количество событий. Начнем с того, что в мире набирает обороты ажиотаж вокруг чат-ботов, про них говорят и пишут столько, что уже хочется установить информационный фильтр, и понятно почему. Шума много, но все больше вопросов из серии: «А где результат? Где кейсы?» Мы согласны с этими вопросами, поэтому добавим немного ответов.



image



Чат-боты в своей деятельности мы используем примерно 7 месяцев. Сначала мы использовали их для внутренней работы с магазинами-партнерами.

Например, когда приходит заказ, то магазину в телеграмм падает сообщение о том, что «Пришел заказ», магазин прямо в мессенджере может поменять статус заказа, узнать подробности о заказе и т.п. Дальше с помощью Телеграма мы автоматизировали процесс передачи заказа. Например, магазин не может выполнить заказ (нет в наличии цветов, курьеров и т.п.) мы можем в 1 клик отправить заказ всем магазинам Москвы, которые подключены к нашему каналу. Происходит своего рода тендер. Магазины торгуются за заказ в течение 7 минут. Обязательным условием является снижение цены. Торги происходят прямо в мессенджере. После завершения торгов заказ автоматически назначается победителю.

Сейчас мы открыли возможность создавать торги за заказ для клиентов. Любой человек может загрузить фотографию букета или просто текстовое описание композиции и отправить на торги магазинам.



image



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



Буквально недавно мы реализовали перенос бота для магазинов из Телеграма в Facebook.

Все же про Facebook знает больше людей, что про Телеграм. У многих уже есть мессенджер на телефоне и не нужно качать новое приложение. Мы уверены, что в будущем появится возможность создавать внутри мессенджера целые админки или веб сайты. Зачем ”пилить” свое приложение, если можно реализовать все на базе популярного? Быстро+удобно+дешево = профит!



image



Немного о чат-боте Facebook.



Плюсы:



— он более юзабельный, чем телеграмм, как по мне.



— аудитория — это очень большой плюс, все же 800 млн. человек дает почти в 2 раза больше преимущество.



— функционал даже в первой «сырой» версии гораздо более развернутый по своим задаткам, чем в телеграмм. Интересно, что будет в новой версии.



Минусы:



— отсутствие «заточенной» под ботов рекламы прямо в Фейсбук. Хотя почему бы не дать эту возможность уже на старте работы?



— непростая модерация чат-ботов в Фейсбук. Так, для понимания, чтобы создать чат-бота в Телеграмм нужно написать пару строк, и, вуаля, все готово, никакой модерации нет. А тут нужно пройти путь практически выкладки приложения для iOS. Хм, странно, но может быть в будущем себя оправдает. Возможно со временем что-то изменится и модерация будет быстрее. У нас она заняла 2 дня. И тестировалась она реальными людьми.



image



Если говорить про покупки прямо в мессенджере, то могу сказать, что люди пока очень неактивно там покупают и в этом я вижу несколько причин:



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



Так как мы в Flowwow фанаты UX и дизайна интерфейсов, то мы сразу решили подойти к этому с определенным подходом простоты и не привязывались к сайту-маркетплейсу. Если коротко, то в чат-боте не нужны 80 тыс. товаров. Нужно просто, быстро и удобно заказывать с самым интересным контентом для конкретного человека. Система сбора данных будет еще дорабатываться и за счет этого можно будет персонально показывать выдачу товаров каждому конкретному человеку. В мессенджер можно уже сегодня встраивать голосовое управление для занятых людей.

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



image



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



image



P.S. Автоматизируйте свои процессы — это сокращает косты и упрощает вам жизнь, чтобы направить ваши мысли и время на более глобальные вещи, чем объяснять человеку в сотый раз, что мы «система управления» или другой не понятный сервис для клиента.



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



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



P.S Если хотите заказать цветы через бота или просто протестить нашего бота для клиентов, можете перейти по этой ссылке: Перейти в мессенджер Фейсбука и написать: привет)



Если вы хотите присоединиться к нам и поучаствовать в нашей экспансии в другие страны, то велком, пишите мне:



https://www.facebook.com/makeev11



Я вам все расскажу!



image

https://habrahabr.ru/post/301996/

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

VirusTotal: проверяем файлы на вирусы в один клик

Вторник, 24 Мая 2016 г. 16:47 (ссылка)






Может быть множество причин, почему на том или ином компьютере вы не поставите антивирусное программное обеспечение: слабое железо или простое нежелание делить его с постоянно жрущим ресурсы антивирусом, уверенность в своих действиях на компьютере или дороговизна, особенно для серверных версий операционных систем. С последним, кстати, постоянно сталкиваются пользователи виртуальных серверов (так называемых VPS / VDS), конфигураций большинства которых едва хватает для нормальной работы современного браузера, а провайдер предоставляет исключительно серверную версию Windows.



Будучи одним из таких пользователей, где далеко не везде установлен полноценный антивирус, постоянно приходится залазить на онлайн ресурсы для проверки тех или иных файлов. Оптимизировать этот процесс я сегодня и решил.



Наиболее простым и популярным среди таких ресурсов (и приятный лично мне) является virustotal.com, у которого есть открытое API и использование его от вас ничего не требует, кроме регистрации на сайте.

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





Читать дальше →

https://habrahabr.ru/post/301638/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Demetrius

Автоматизация умственного труда

Воскресенье, 15 Мая 2016 г. 16:01 (ссылка)
etheroneph.com/cybernetics/...truda.html

Искусство и развитие личности - от философии и психологии до науки и авангарда.
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Demetrius

Мышление и кибернетика

Понедельник, 09 Мая 2016 г. 20:18 (ссылка)
etheroneph.com/cybernetics/...etika.html

Искусство и развитие личности - от философии и психологии до науки и авангарда.
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
stertenorva

Заметки фенолога, советника по маркетингу и смысл жизни автоматизации в непривычных сегментах

Пятница, 29 Апреля 2016 г. 16:39 (ссылка)

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

Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<автоматизация - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda