BDD(振る舞い型駆動開発)ツールであるbehaveを使ってサーバテストはできないものか

BDD(Behavior-driven development)と言う開発スタイルがある。

振る舞いを先に定義して、そのテストコードを書き、実装を行うことで、意図した振る舞いをする実装である正当性を検証できるもの、と言うのが雑な理解。

そのための、と言うわけではないが、BDDツールとしてpythonでは behave と言うものがある。(他にもLettuceとかFreshenとか色々あるようだね)

behave: http://pythonhosted.org/behave/

今回は behave をサーバーの動作確認ツールとして使えないかな、と思ったあたりで、簡単な利用方法を見ていく。

Ruby界隈ではCucumber辺りがその発祥なんだろうか、残念ながら僕はRuby界隈における歴史については詳しくないので、知っている人に聞いてくれ。

more…

WordpressやめてPelicanに移行したいんだけど障害を乗り越える元気がない。

Wordpressでblog書くの自体はそう悪いことでもないんだけど、調べながらだと間違えてタブ閉じちゃうし、画像管理めんどくさいし、何においてもDBがホストのIPとか覚えちゃってて引っ越しがクソ面倒。

なのでWordpressさんも割といい線行ってたけど、やっぱり今一つだなぁ、と思ってPelicanについて調べている。

PelicanはPython製の静的HTML生成によるblogツールだよ。

more…

pypackerがあればpython3でもpcapと仲良くできるかもしれない

以前、python + dpktによるpcap解析の手法 その1 その2 を書いた。

しかし、dpktはPython2系でしか動かないライブラリで、今後はPython3も視野に入れていくべきではないか?という気持ちがあったので、時折思い出したようにネットを徘徊していた。

すると、dpktをPython3用に書き直したpypackerと言うライブラリが登場したことを知りました。(Gentoo Portage Overlays - net-analyzer/pypackerのお陰で)

これです : https://github.com/mike01/pypacker

で、 前回のあれこれ と同じことをするpypacker_tutorialを書いてみたので、Bitbucketに置いておきました。

中身の説明を含めた利用例とかは別途なんか考えましょうねぇ。

https://bitbucket.org/ainoniwa/pypacker_tutorial/src

※ちなみに、このpypackerはWindows非サポートの代わりに、Linux環境ではキャプチャもできるようになったので、慣れればかなり色んな事が出来ると思うよ。ただ僕はwindowsで使うんだけど。

お し ま い

more…

またしても、彼はwindowsでwinpcapをpythonから叩く道へ引き返す。

あらすじ

( ゚д゚)/ 3行で分かるlibpcapのpythonラッパーたち

あーしちゃん「あーしwindowsなんだけど」

そこでおじさんは考えた。ctypesしよう、と。

今日紹介するのは winpcapy http://code.google.com/p/winpcapy/ だよ

コイツはpythonから超簡単にwinpcap経由でデバイスを叩けるナイスなラッパーさ。

インストール? C:\python27\Lib\site-packages\ に置くだけだよ。

やっぱりさぁ、windowsでpythonでwinpcap使いたいとか言い始めるとさ、やれコンパイルしろとか色々うるさいわけじゃん。

俺はもっと環境負担の少ない、手軽な感じで救われたいんだよ。

Visual Studio …

more…

python + dpkt で pcap解析 - 2.パケット生成と保存

前回(python + dpkt -> pcap解析 – 1.読み込みから解析開始まで) に引き続き、dpktの使い方を見ていく。

次はこの辺りか。

  • パケットの生成と保存
  • 読み込んだパケットをフロー分類して別のファイルに保存

既に解析ではないね...うん...

ソース見れば分かる人はBitbucketへどうぞ。

まず「パケット生成と保存」をしてみる。

パケット生成の基本は、 dpktのフロントページ に書いてある通りだ。

今回は、SYN Flood辺りを想定して、SYNパケットを沢山作ってそれをpcapファイルに出力してみる。

ステップは簡単だ。

  • Step.1 : dpkt(とsocket)のimport
  • Step.2 : Ethernet, IPv4, TCPの各ヘッダをオブジェクトとして生成
  • Step.3 : pcap(libpcap)形式でファイルを開く
  • Step.4 : 送信元アドレスを増加させながらpcapファイルに書き込む
# -*- coding: utf-8 …
more…

python + dpkt で pcap解析 - 1.読み込みから解析開始まで

以前から小規模ではあるが、pythonでパケット分析をするためのモジュールdpkt(http://code.google.com/p/dpkt/)を使用している。

元々dokuwikiの方には少しだけ書いているのだが、整理がてらblogにも書いてみる。

まずはこの2つ。

  • *.pcapファイルの読み込み
  • 読み込んだバイナリデータの簡単な解析

ソース見れば分かる人はBitbucketへどうぞ。

windows、Linuxのいずれも使い方は変わらないはずだ。

手元の環境は windows XP/7 + Python 2.7.3 だが、好きにすればいいだろう。

dpkt自体は、

easy_install dpkt

でインストールする方法と、

http://code.google.com/p/dpkt/ からダウンロードしてきて

python setup.py config
python setup.py …
more…