Metadata-Version: 2.1
Name: py-ops
Version: 0.1.2
Summary: a python base auto testing framework that programming oriented with Structured Language.
Home-page: https://github.com/five3/pyops.git
Author: Xiaowu Chen
Author-email: five3@163.com
License: MIT V3
Keywords: python unit testing,auto testing,keyword base framework,BDD testing
Platform: any
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Framework :: Pytest
Requires-Dist: pytest (>=5.0.1)
Requires-Dist: pytestreport (>=0.1.9.3)
Requires-Dist: Jinja2 (>=2.10.1)

py-ops: 一款面向编程的Python关键字测试框架™
============================================

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

☤ 说明
------

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

其主要核心功能：

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

该框架的主要特点：

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


☤ 环境安装
----------

.. code:: bash

    pip install py-ops


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

.. code:: bash

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


☤ 快速开始
----------

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

.. code:: python

    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``文件，内容如下：

.. code:: 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"]
            }
        }
    }


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

.. code:: bash

    pyops run

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

.. code:: bash

    pyops run demo.jsom demo2.json

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

.. code:: bash

    pyops make demo.json


☤ 框架设计结构
--------------
.. image:: https://www.testqa.cn/static/banner.png

