Zaffy は yaml フォーマットでテストシナリオを記述できる機能テストツールです。 Web や Database、ファイルシステムなどの外部システムに対する入力とその応答検証を共通の形式で記述することができます。 種々の機能を組み合わせた自動化ツールとして使うことも可能です。
詳しくはこちら http://tomoemon.github.com/zaffy/
-
python 2.7, 3.4, 3.5 (highly recommend to use miniconda) miniconda http://conda.pydata.org/miniconda.html
# install miniconda before git clone https://github.com/tomoemon/zaffy.git cd zaffy conda env create -f environment.yml
$ source activate zaffy
$ (zaffy) bin/zaffy docs/sample_scenario/httpTest.yml
# using config file: zaffy.yml
1..1
ok 1 - HTTP テスト
1 test succeeded (1.00 sec elapsed)
Zaffy normally outputs TAP (Test Anything Protocol) format results. If you don't want to run zaffy on your shell, you can directly run the python.
$ {MINICONDA_INSTALL_PATH}/envs/zaffy/python lib/zaffy.py docs/sample_scenario/httpTest.yml
- HTTP テスト
- action: http.get
url: http://yahoo.co.jp/
params:
hoge: 10
fuga: piyo
assert:
- out.status == 200
- out.content|length > 1000
- action: http.post
url: http://localhost:8000/
params:
pagesize: <<last.out.content|length>>
- SQL テスト
- action: sql.select
driver: mysql
host: localhost
db: user_db
user: root
password: hogehoge
sql: select * from user where user_id=1;
assert:
- >
out.rows[0] ==
[1, "nanoha", "2012-04-10 15:57:26"|todate, "2012-04-10 15:57:26"|todate]
# preset 機能を使うことで接続情報などを省略したシンプルな記述が可能
- action: sql.update
sql: insert into user (user_id, name) values (10, "hoge")
- SHELL テスト
- action: shell
cmd: wc -l output.txt
assert:
- out.returncode == 0
- out.stdout.strip() == "50 output.txt"