HAF - AutoMation Test Framework
haf
The http api auto test framework.
new features
-
support mysql result publish
-
support http-api & app ui & python cases
-
based on local test runners
-
support xlsx,json,yml,py cases
-
report generate with html-template
-
multi-processes on different machines
-
multi-runners
-
web-server support restful api based on flask
-
only mode : loader/runner/recorder/webserver/bus/logger support
How to get it
using pip to get it
tsbxmw@ps# pip install haf --upgrade
using git tool to get it
tsbxmw@ps# git clone https://github.com/tsbxmw/haf
tsbxmw@ps# cd haf
tsbxmw@ps# python setup.py install
How to run
local bus mode, using local bus to run all cases
- local bus is without –bus-server(-bs) args, when running the program, the bus would be created
modify the config.json in testcases
- change the log_path and report_path and case_path to your own path
{
"config":{
"name": "test",
"run": {
"sql_publish": {
"id": 1,
"sql_name": "upload",
"publish": true,
"host": "192.168.0.200",
"port": 3306,
"username": "root",
"password": "root",
"database": "haf_publish",
"protocol": "mysql"
},
"log": {
"log_path": "./data"
},
"bus": {
"only": false,
"host": "",
"port": "",
"auth_key": ""
},
"report": {
"report_path": "./data/report.html"
},
"case": [
{
"case_path": "./testcases/test.xlsx"
},
{
"case_path": "./testcases/test2.json"
},
{
"case_path": "./testcases/test1.xlsx"
},
{
"case_path": "./testcases/test3.yml"
}
],
"runner":{
"only": false,
"count": 4
},
"loader": {
"only": false
},
"recorder": {
"only": false
},
"web_server": {
"host": "",
"port": "",
"run": true
}
}
}
}
create testcase
- create xlsx/json/yml/py file with template in testcases/
run
- run with config
python -m haf run -c=./testcases/config.json
- run with args
python -m haf run -case=./testcases/test.xlsx,./testcases/test2.json -ld=./data -rh=true -rod=./data/report.html
other run args
- run with multi-runners (4 runners)
python -m haf run -rc=4
- run with web server
python -m haf run -ws=true
- run with only-mode
# only loader
python -m haf run -ol=true
# only bus
python -m haf run -ob=true
# only runner
python -m haf run -or=true
# only recorder
python -m haf run -ore=true
- run with third report template
"report": {
"report_template": "base_app"
}
- run with mysql publish
"sql_publish": {
"id": 1,
"sql_name": "upload",
"publish": true,
"host": "192.168.0.200",
"port": 3306,
"username": "root",
"password": "root",
"database": "haf_publish",
"protocol": "mysql"
}
web api server suport
- get loader infos
http://localhost:8888/loader
- get runner infos
http://localhost:8888/runner
- get result infos
http://localhost:8888/result
- get report infos
http://localhost:8888/report