Skip to content
automation test framework,support python >= 3.5
Python HTML Other
Branch: master
Clone or download
tsbxmw Merge pull request #169 from hautof/dev-3.0.0
add more infos to report of api cases
Latest commit 0633275 May 29, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Mar 20, 2019
docs add --filter-case -fc support to filter cases by name Apr 12, 2019
haf rewrite api case's report to show more infos May 29, 2019
publish add exe build support; add new locker & singleton Mar 15, 2019
testcases change runner to async mode Mar 4, 2019
.gitignore update readme.md, add releasenot.md Nov 20, 2018
.travis.yml remove repeat test on travis to make build pass Apr 15, 2019
CNAME add travis support and so on Nov 15, 2018
Jenkinsfile add -llog -nout test Apr 15, 2019
LICENSE
ReadMe.md update readme Apr 19, 2019
_config.yml update config.setup.yml file Dec 3, 2018
setup.cfg add cfg to build wheel Oct 23, 2018
setup.py add requires module progress Apr 4, 2019
travis_test.py complete framework structure with BaseManager : bus/loader/recorder/r… Nov 16, 2018

ReadMe.md

HAF

The high automation framework. 

Build Status Documentation Status PyPI GitHub release

all

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

1 using init to init workspace

    python -m haf init

or

    git clone https://github.com/tsbxmw/haf-sample

2 run it in dir haf-sample

run api case

    python -m haf run -c=config.json

run web ui case

    python -m haf run -c=config-web.json

3 find the report at the data dir

using chrome or other browsers to open the html file

Others

quick start haf-sample pypi read the doc
start haf-sample pypi doc

Plugins

id plugin name version git hub repo
1 haf api server PyPI haf webserver
2 haf sql publish PyPI haf sqlpublish

How to run your define cases

Other running locally

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
  • delete config->run->sql_publish if you don't have an haf-publish
    {
      "config":{
        "name": "test",
        "debug" : false,
        "bus_server_port": 8801,
        "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",
            "report_template": "base",
            "report_export_path": "email"
          },
          "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 or using default cases

  • create xlsx/json/yml/py file with template in testcases/
  • using haf-sample case template

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

when running the api cases

report

when running the app cases

  • change the config.json's "report" to add report_template
    "run": {
        "type": "app"  # change type to app

        "report": {
            "report_template": "base_app",  # change report_template to base_app
            "report_path": "./data/report.html"
        }
    }

report-app

when runnng the web ui cases

  • change the config.json's "report" to add report_template
    "run": {
        "type": "web"  # change type to web

        "report": {
            "report_template": "base_web",  # change report_template to base_web
            "report_path": "./data/report.html"
        }
    }

report-app

haf samples

https://github.com/hautof/haf-sample

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"
    }

sql

now hafweb support

    tsbx# pip install hafweb -U
    python -m hafweb -ss=root:root@localhost:3306@haf_publish -p=8081

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
    http://localhost:8888/report-app

FrameWork

Design

map

Doc

doc url

read the doc

wiki home

Quick Start

Release Note

release note

new features

  • now support app-ui/web-ui cases and generate report

  • support mysql result publish

  • 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

You can’t perform that action at this time.