Wiki内検索
最近更新したページ
最新コメント
PostgreSQL導入メモ by awesome things!
システム開発_memo by awesome things!
Oracle_memo by stunning seo guys
Oracle データファイル by awesome things!
Oracle グループ関数 by awesome things!
Oracle SQL Plus by stunning seo guys
Oracle ロックとラッチ by tips about seo
Oracle DBA用語集 by watch for this
Oracle SGA by check this out
Menu
ここは自由に編集できるエリアです。
タグ

Python:twillを使ったWebアプリケーションのテスト

twillによるWebサイトのテスティング


twillはコマンドラインからWebをブラウズして,フォームやクッキーを見ることができる.
また,Webサイトのテスティングの自動化やPythonからのAPIもサポートしている.

twill-sh を使う


twillを使ったWebサイトのテスティングでもっとも簡単な方法はひとつかふたつのスクリプトを用意し,以下のようにtwill-shを実行することである.

> twill-sh [ -u initial_url ] script(s)

twillはコマンドライン,cron,自作の関数やunit testプログラムから実行できる.
twil-shは与えられたスクリプトをコマンドラインインタフェース上で一度実行し,失敗したスクリプトの数を返す.exit statusが0であれば,失敗した数が0ということになる.

  • u フラグは初期URL(initial url)の指定.twill-shを引数なしで実行し"go (initial url)"と実行するのと等価である.

サンプルスクリプト


slashdot.jpに自動的にログインしてみるスクリプト.スクリプトに使えるリファレンスは http://twill.idyll.org/commands.html 参照のこと.(いずれ日本語でまとめる予定)

  • 以下の内容のファイルをsample_script.twillに保存する.

# slashdot.jpをブラウズ
go http://slashdot.jp/
# slashdot.jpのformタグの内容一覧
showforms
# Form#2 unickname の値をuser_nameにセット
fv 2 unickname user_name
# Form#2 upasswd の値をuser_nameにセット
fv 2 upasswd password
# nameがuserloginのsubmitを使ってPOST
submit userlogin
  • 実行はシェルから.次のように実行.

> twill-sh sample_script.twill
  • 出力はこんな感じ.(一部が文字化けしているけれど,それはターミナル設定の問題なのでまた後日.)

> twill-sh sample_script.twill
>> EXECUTING FILE sample_script.twill
==> at http://slashdot.jp/~~
Form #1
## ## Name Type_ ID Value__
1 phrase text (None)
2 1 None submit (None) ????´?


Form #2
## ## Name Type_ ID Value__
1 unickname text (None)
2 returnto hidden (None) http://slashdot.jp
3 op hidden (None) userlogin
4 upasswd password (None)
5 login_temp checkbox (None) [] of ['yes']
6 1 userlogin submit (None) ?????°??????


Form #3
## ## Name Type_ ID Value__
1 unickname text (None)
2 returnto hidden (None) //slashdot.jp/
3 op hidden (None) userlogin
4 upasswd password (None)
5 login_temp checkbox (None) [] of ['yes']
6 1 userlogin submit (None) ?????°??????


Form #4
## ## Name Type_ ID Value__
1 qid hidden (None) 306
2 section hidden (None) mainpage
3 aid radio (None) [] of ['1', '2', '3', '4', '5', '6', ...
4 1 None submit (None) ?????¨


Form #5
## ## Name Type_ ID Value__
1 query text (None)
2 1 None submit (None) ????´?

Note: submit is using submit button: name="userlogin", value="?????°??????"
--
1 of 1 files SUCCEEDED.

ストレステスト


twill-forkスクリプトでストレステストを実行できる.

> twill-fork -n <number to execute> -p <number of processes> script [ scripts... ]

  • 例は以下のとおり.
> twill-fork -n 500 -p 10 test-script

この例では10個のプロセスでそれぞれ500回テストを実行する.この例では10個のプロセスでそれぞれ500回テストを実行する.twill-forkはすべてのスクリプトの実行時間を記録し,サマリを最後に出力する.
2007年02月12日(月) 13:01:07 Modified by dodobon




スマートフォン版で見る