Search
Write a publication
Pull to refresh
-3
0

User

Send message

Watir WebDriver как средство автоматизации тестирования

Reading time4 min
Views15K
Недавняя статья про WebDriver напомнила мне немного рассказать об используемом нами комплексе для автоматизации тестирования Web-приложений.

Итак, в основе тестов лежит лежит связка RSpec + Watir WebDriver (для Rails-приложений более уместно будет взглянуть в сторону Capybara). При поддержке Bundler и локальных WebDrivers осуществляется лёгкая инсталляция на рабочем месте тестировщика (установить Ruby 1.9, Rubygems, Bundler, и выполнить bundle install). Исходник Gemfile:

source :rubygems

gem "watir-webdriver", "~>0.6.1"
gem "rspec-core", "~> 2.0"
gem "rspec-expectations", "~> 2.0"
gem "rr", "~> 1.0"
gem "ci_reporter", "~> 1.7"


За счет гема ci_reporter осуществляется интеграция с Jenkins CI, а за счёт гема parallel_tests и Selenium Grid распараллеливание тестов (на сегодня parallel tests пока не используются в production).

Вот пример теста:

describe "FirstSite" do
  before(:all) do
    site! "first"
  end

  # returns true on success; otherwise false.
  def login_as(data)
    browser.rel_goto "/"
    browser.title.should include 'example.com'
    browser.text_field(:id => 'login').set data[:login]
    browser.text_field(:id => 'password').set data[:password]
    submit_button = browser.button(:id => 'submit')
    submit_button.click
    browser.url =~ %r{/welcome$}
  end

  def logout
    browser.rel_goto "/"
    browser.button(:id => 'logout').click
  end

  describe :login do
    auth = fixture :auth

    describe :successful do
      after(:each) do
        logout
      end

      auth.keys.select { |key| key.kind_of?(Symbol) }.each do |key|
        next  if key == :wrong

        it "Logging in as #{key} should be OK" do
          login_as(auth[key]).should be_true
        end
      end
    end

    describe :wrong do
      it "Logging in with wrong credentials should fail" do
        login_as(auth[:wrong]).should_not be_true
      end
    end
  end
end



Тестируемые сайты и способ тестирования определяются в настройках.
Читать дальше →

Критика современных систем управления проектами

Reading time6 min
Views33K
Когда я писал статью об управлении проектами с помощью MS Project, меня не покидало устойчивое ощущение, что я пишу что-то неправильное. «Ну не может такого быть,» — думал я, «чтобы такие простые вещи так сложно делались в программе, являющейся одним из самых распространенных инструментов для управления проектами.» Я проверял себя, раз за разом оценивал актуальность своих потребностей, изучал другие программные решения. И все равно приходил к неутешительному выводу: *у меня, как руководителя проекта, существуют потребности, которые то ли забыты, то ли сознательно игнорируются разработчиками*. Несмотря на впечатляющий список возможностей современных систем управления проектами, есть задачи, которые я просто не могу решить без помощи вспомогательных средств в силу естественных ограничений человеческого мышления.

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

Шейн Питман, лидер варез-группы Razor 1911: жизнь после тюрьмы

Reading time8 min
Views76K

Недавно пользователь LeeMiller упоминал о том, как я, изучая варезную сцену, наткнулся на историю Шейна Питмана, который под ником Pitbull был лидером Razor 1911 до операции ФБР «Buccaneer» в 2001г, когда он был арестован и после года следствия приговорен к 18 месяцам тюрьмы. На тот момент ему был 31 год, он был женат и имел 2 детей.

В начале 2005г, находясь на испытательном сроке, Шейн начал тему на вебсайте Neowin, в которой рассказал о своем послетюремном опыте, в надежде найти работу. Тема стала очень популярна, и Шейн с удовольствием отвечал на множество вопросов, которые ему задавали. Один из пользователей отобрал наиболее интересные из них.

Под катом — перевод половины из этих вопросов, которые касаются тех времен, когда Шейн был одним из самых известных пиратов мира, как его поймали, и что он об этом думает. Всё остальное: о том, что было в тюрьме, что он чувствовал когда вышел и т.д. я опускаю, так как к теме не относится.

В конце привожу также его (Шейна) слова, как бы подводящие итог всей ветки вопросов.
Читать дальше →

Блокировки в InnoDB (шпаргалка)

Reading time2 min
Views18K
Решил разобраться в вопросе блокировок в InnoDB. Получилась такая вот краткая шпаргалка. Может кому пригодится. Буду благодарен сообществу за найденные неточности

И так, в пределах одной транзакции, после…
Читать дальше →

Файлообменный сервис Некака

Reading time3 min
Views20K
Здравствуйте, хабрдрузья!
С тех пор, как Некака впервые появилась на страницах этого ресурса в виде бесплатного скрипта xtrafile, прошел почти год, и мы хотим показать вам текущие результаты.
Основная цель проекта — сделать самый удобный в мире файловый сервис, а цель этого поста — получить фидбек от хабркомьюнити, на верном ли мы пути.
Файловый сервис должен включать в себя функционал бекапа, удобного шаринга файлов между устройствами и людьми (как в Dropbox), one click no registration sharing (как в usendit, rapidshare etc.), не иметь ограничений на массовое скачивание (в отличие от Dropbox) и не иметь рекламы (в отличие от rapidshare & Co).
Читать дальше →

Amazon Glacier: хранилище данных по $0,01 за 1 ГБ в месяц

Reading time1 min
Views34K
Сегодня начал работу новый проект Amazon Glacier: долговременное хранилище в облаке по невысокой цене $0,01 за 1 ГБ в месяц. Идеально подходит для хранения бэкапов и больших архивов, к которым не нужен частый доступ. Извлечение данных из Glacier занимает от 3,5 до 4,5 часов.

Как везде в AWS, пользователь оплачивает только тот объём ресурсов, которые реально использует, никакой абонентской платы. Загрузка и извлечение архивов, мониторинг статуса возможны через Amazon Glacier APIs. Все файлы автоматически шифруются AES 256 и дублируются в разных дата-центрах, прежде чем APIs возвращают ответ SUCCESS.
Читать дальше →

Переводим Chrome extension на manifest_version 2

Reading time6 min
Views24K
Владельцам расширений (а также приложений) для Хрома уже пора бы задуматься над поддержкой второй версии манифеста.
Если кто не в курсе, то не так давно были объявлены новые изменения и нововведения в разработку расширений для браузера.
Далее будет выборочный перевод двух страниц и мой способ использования шаблонизатора изнутри песочницы.
Читать дальше →

Амазон анонсировал дешевое хранилище под бекапы

Reading time1 min
Views3.3K

И назвал его Amazon Glacier.
А теперь немного вкусного:
1) Стоимость 1 цент за гигабайт.
2) Только секьюрная передача данных по ssl.
3) Надежность, она же доступность 99.999999999%, что выше чем у s3.
4) Расширяемость, можете хранить сколько хотите данных если у вас есть на это деньги.
5) Простота использования.
6) Поддержка передачи данных из некоторых сервисов амазона, к примеру с s3(я там храню бекапы и думаю перенести их на новое хранилище, думаю это будет очень легко).

Ещё инфа aws.amazon.com/glacier

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

Сбор статистики загрузки веб-страниц

Reading time3 min
Views7.2K
Хотел бы поделитья с сообществом полезным инструментом для фронт-разработчиков, в основном. Инструмент достаточно сыроват, нуждается в развитии. Попросту говоря, это банальный говнокод, который решает поставленную задачу. Для рефакторинга мне не хватает компетенции.

Какую задачу решаем?


Скрипт позвляет собрать статистику по «полной» загрузке страницы на стороне браузера. Это не равняется времени выдачи страницы сервером, очевидно. Под полной загрузкой я подразумеваю загрузку всех ресурсов страницы (картинки, стили, скрипты) и выполнение браузерного события onload. Как все знают, это время можно посмотреть в firebug. Но очевидно, что для адекватной оценки нужно собрать статистику, т.е. открыть страницу и запомнить время ее полной загрузки не один и не два раза. На основе сотни запусков уже можно говорить о среднем времени полной загрузки, и это будет хорошей метрикой, в моем понимании.
Читать дальше →

Мониторинг производительности PHP-кода с помощью Pinba

Reading time15 min
Views42K
Давайте представим себе типичный, набирающий популярность стартап, использующий, например, PHP или Python. Сначала все находится на одном сервере — PHP (или Python), Apache, MySQL. Затем вы выносите MySQL на отдельный сервер, устанавливаете nginx для раздачи контента, возможно, добавляете memcached для кеширования и еще несколько серверов приложений…

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

Чтобы получить ответы на эти вопросы, в Badoo был разработан сервиc мониторинга и статистики в реальном времени — Pinba. В данной статье мы расскажем о нашем опыте использования его для мониторинга и профайлинга нашей системы.
Читать дальше →

Несколько интересных приемов и особенностей работы с MySQL

Reading time3 min
Views88K
Я думаю, что в процессе изучения той или иной СУБД каждый из вас не раз изобретал велосипеды для решения своих задач, не зная о существовании той или иной функции или приема, которые бы могли в разы ускорить выполнение запросов и уменьшить объем кода. В данной статье я хочу поделиться с вами своим опытом работы с очень «добрым» и «отзывчивым» MySQL, часто позволяющему программисту делать вещи, которые другие СУБД переварить бы не смогли. Материал будет полезен скорее тем, кто только решил углубиться в чудесный мир запросов, но возможно и опытные программисты найдут тут что-то интересное.
Читать дальше →

Восстановление расфокусированных и смазанных изображений. Практика

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

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

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →

Простой сервер задач с очередью в MySQL (без проблем с блокировками)

Reading time2 min
Views11K
Почти в каждом более менее динамическом проекте бывает возникает необходимость выполнять очереди задач в фоне (отправка email, обновления кеша, реиндексация поиска и т.д.). Job сервера (Gearman и т.п.) хороши, но для большинства простых задач они избыточны. Классическая реализация очередей в MySQL (при помощи SELECT … LOCK FOR UPDATE) при росте нагрузки со временем начинает приводить к проблемам с блокировкой. Потому, как это обычно бывает, пришлось написать свой «велосипед» для работы с фоновыми задачами, который бы «точно работал» и был предельно прост.
Читать дальше →

Плагин, конвертирующий стили фотошопа в код css

Reading time1 min
Views39K
Неужели у кого-то было время этим запариться!

css3ps.com

Работает как вебсервис, от того время ожидания результата работы 30 секунд.

1) Качаем плагин под нужную версию фотошопа, открываем через windows->extensions->css3ps;
2) рисуем шейп, накладываем стили, отправляем на сервер через расширение;
3) ждем 30 секунд, смотрим на результат.

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



Все работает) Фантастика.

Система управления проектами вроде Jira, только чтобы «облачная» и до 5 пользователей бесплатно

Reading time1 min
Views48K

Коллеги, на правах публикации в хабе компании, разрешите поделиться новостью, к которой мы шли примерно год. Мы официально выпустили бесплатную версию TargetProcess в «облаке» aka SaaS aka On-Demand.

TargetProcess – система управления проектами с фокусом на методологии Agile (XP, Scrum, Kanban). Систему начали разрабатывать в 2004 году четыре белорусских программиста. Теперь ей пользуется больше тысячи компаний по всему миру (Orange, Sony, Intel, Microsoft, Paralles, Kaplan и др.). Основные преимущества: скорость, гибкая настройка и удобство использования.

Дальше я расскажу, как она наша система может вам пригодиться.
Читать дальше →

Sypex Geo — быстрое определение города по IP

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

И вот несколько месяцев спустя, проект начинавшийся, как «for fun» перерос в самостоятельный проект.
Открыт отдельный сайт посвященный проекту Sypex Geo, на котором можно скачать свежие версии API и баз данных, а также ознакомиться с документацией.

Для желающих скорее протестировать правильность определения города по IP — вот ссылка на демо-страницу. А под хабракатом, я опишу некоторые технические подробности и приведу результаты небольшого тестирования.
Читать дальше →

Как решить проблему 10 000 соединений?

Reading time1 min
Views28K


Способы решения этой проблемы, поднятой еще в 2001 году программистом Дэном Кегелем, рассматриваются в девятой лекции курса «Сетевое программирование в UNIX», подготовленного специалистами SkyDNS и компании «Айдеко». За подробностями – добро пожаловать под кат.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity