Skip to main content

a python base auto testing framework that programming oriented with Structured Language.

Project description

https://www.testqa.cn/static/banner.png

☤ 说明

这是一款基于``pytest``封装,同时支持``关键字``和``BDD``,测试数据分离,面向编程,轻量级的,对上层自动化应用友好的基础测试框架。

其主要核心功能:

  • 支持关键字定义
  • 支持关键字组装
  • 测试数据透传

该框架的主要特点:

  • 基于``pytest``框架开发,支持原生插件
  • 同时具备``关键字``和``BDD``框架的特点
  • 无二次学习成本(Python|json)
  • 天然支持``测试数据分离``与传递
  • 对上层应用提供友好的封装接口
  • 支持脚本``Debug``调试
  • 代码量少(7个文件500行代码)

☤ 环境安装

pip install py-ops

或者使用下面命令安装最细版:

pip install git+https://github.com/five3/pyops.git

☤ 快速开始

使用该框架非常的方便,基本没有学习成本。首先新建一个目录作为自动化项目的根目录, 然后再新建一个名为```ah_ext``的python包目录,并在``__init__.py``文件中编写如下内容。

import logging
from pyops.decorator import (make_check, make_flow, alias)

logger = logging.getLogger()

def add(x, y):
    print('add')
    return x + y

@alias('调用add')
@make_flow
def call_add(data):
    """
        data: 即json配置文件中的case节点下对应data字典对象
    """
    data['actual'] = add(data['x'], data['y'])

@alias('检查add')
@make_check
def check_add(data):
    """
        data: 即json配置文件中的case节点下对应data字典对象
    """
    return data['actual'] == data['expect']

在该目录下新建一个``demo.json``文件,内容如下:

{
    "name": "TestDemo",
    "desc": ".....background......",
    "tag": "smoking_test",
    "setup_class": [],
    "teardown_class": [],
    "cases": {
        "test_add": {
            "desc": "",
            "tags": [],
            "setup": [],
            "teardown": [],
            "data": {
                "x": 2,
                "y": 3,
                "expect": 5
            },
            "flow": ["调用add"],
            "check": ["检查add"]
        }
    }
}

在项目根目录执行如下命令运行测试:

pyops run

该命令默认会执行当前目录先全部的``json用例``文件,如果你希望只执行部分的``json用例``,则可以指定特定的文件名:

pyops run demo.jsom demo2.json

另外,在执行完该命令后会在当前目录生成一个对应名称的py文件,如:demo.py。 这个执行测试流程中的产物,也是执行测试的真正入口点。 如果你希望单独生成一个py用例文件,可以使用下面的命令:

pyops make demo.json

☤ 框架设计结构

https://www.testqa.cn/static/banner.png

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for py-ops, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size py_ops-0.1.2-py3-none-any.whl (10.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size py-ops-0.1.2.tar.gz (9.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page