Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

haf

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

haf

  • 2.9.7
  • PyPI
  • Socket score

Maintainers
1

HAF

支持多种测试的高可用测试框架

Build Status Documentation Status PyPI GitHub release

all

安装

使用 pip 直接安装

   tsbxmw@ps# pip install haf --upgrade

使用 git 下载源码安装

   tsbxmw@ps# git clone https://github.com/tsbxmw/haf
   tsbxmw@ps# cd haf
   tsbxmw@ps# python setup.py install

如何运行例子

1,使用 init 命令 或者 git 获取源码例子

    python -m haf init

或者

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

2, 例子提供了 apiweb-ui 的测试用例

运行 api 用例

    python -m haf run -c=config.json

运行 web ui 测试用例

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

3, 可以在 data 文件夹下找到 index.html,作为默认的 html 报告

使用 `chrome` 或者其他浏览器打开即可。

其他内容

快速开始例子pypi 主页文档主页
开始haf-samplepypidoc

插件

id插件名称插件版本github 主页
1haf api serverPyPIhaf webserver
2haf sql publishPyPIhaf sqlpublish

如何运行自定义的用例

可以本地运行所以的用例

所有的进程在本地模式下都是在本机存在的

  • --bus-server(-bs) 参数不适用时便是本地模式

修改 testcases 中的 config.json 文件,用来运行自己的用例

  • 修改 log_pathreport_pathcase_path 3 个字段为自己默认的地址,分别为 日志路径、报告路径、用例路径。
  • 可以删除 config->run->sql_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
          }
        }
      }
    }

可以使用 testcases 中提供的默认例子创建新的用例

  • 创建 xlsx/py/json/yaml 格式的用例
  • 也可以使用 haf-sample 中的例子

运行

使用 config 配置运行 测试
    python -m haf run -c=./testcases/config.json
使用 参数 运行测试
    python -m haf run -case=./testcases/test.xlsx,./testcases/test2.json -ld=./data -rh=true -rod=./data/report.html

测试报告

report

如何运行 app-ui 测试用例

  • 更改 config.json 中的 report 字段,增加 report_template 子字段, 使用 base_app 为模板
    "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

运行 web-ui 测试用例

  • 更改 config.json 中的 report 字段,增加 report_template 子字段, 使用 base_web 为模板
    "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 例子

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

其他的命令行参数

  • 使用多个 runner 增加运行速度, runner-count
    python -m haf run -rc=4
  • 启动 web-server,提供可视化过程,web-server
    python -m haf run -ws=true
  • 只启动 loader/runner/bus/recorder 中的某个
    # 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
  • 使用自定义的报告模板
    "report": {
        "report_template": "base_app"
    }
  • 使用插件将数据发送到 数据库
    "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

其他支持

    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

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc