Skip to main content

TaskTower (任务塔)一个任务执行与状态监控装载器

Project description

TaskTower

简介

任务塔:一个任务执行与状态监控装载器,也可用于自动化用例执行。


对于一个项目,抽象分为项目层(ProjectLayer)、模块分类层(FeatureLayer)、用例函数层(CaseLayer)、步骤层(StepLayer)四个层级, 形成一个树形结构,通过ProjectLayer.run()执行整个测试用例项目。

注意:本库初衷是为了能实时查看用例执行状态,并且尽可能不侵入原脚本,所以将自动化测试的层级抽象类化装载,而并非要求重写脚本。

  • 适用于长时间执行的自动化用例项目,可提供实时状态查询。
  • 也可用于长时间运行的任务监控。

最低侵入性使用要求:用例函数在执行通过时必须返回0(默认0,可修改代表这个成功的返回值),其他无返回、任何返回、任何异常都视为用例失败。

安装

  1. 打包为 .whl 文件

    pip install wheel setuptools
    python setup.py bdist_wheel
    
  2. 通过 .whl 文件安装

    pip install dist/TaskTower-1.0-py3-none-any.whl
    

用法示例

from pathlib import Path
from TaskTower import ProjectLayer, FeatureLayer, CaseLayer, BaseCase, baseConfig

baseConfig.successFlag = 0  # 设置用例执行成功标志,默认为0


projectLayer = ProjectLayer(Path('.'))  # 用例项目初始化,设置项目根目录
featureLayer = FeatureLayer('feature1', projectLayer)  # 模块分类初始化,设置模块分类名称、所属项目。这个名称可以是子目录名
# 以上两行代码的含义是:有一个当前目录的项目,项目下有个 feature1 模块分类


def beforeCase(func):
    """示例装饰器"""
    def wrapper(*args, **kwargs):
        projectLayer.dtLog.info('beforeCase'.center(60, '-'))
        return func(*args, **kwargs)
    return wrapper


# ############# 方式一:耦合性较低,定义执行函数即可,仅返回0代表成功 ###########
@beforeCase
def case_001():
    """TestCase: case_001, 测试用例001"""
    projectLayer.dtLog.info("开始测试步骤***1")
    projectLayer.dtLog.info("开始测试步骤***2")
    return 0


# ############# 方式二:耦合性非常高,继承BaseCase(也可自行重写此类)后,在init中定义用例属性和步骤属性,在run方法中串联步骤逻辑 ###########
class Case(BaseCase):
    # 用例基本属性
    case_num = 'case_001'
    case_title = '测试用例001'
    case_tag = ('abc',)

    def init(self):
        # 定义用例属性、步骤属性
        self.caseLayer = CaseLayer(self.run, featureLayer=featureLayer)
        self.step1 = self.addStepLayer("step1: 测试步骤1", lambda x: projectLayer.dtLog.info(f'开始测试步骤***{x}'))
        self.step2 = self.addStepLayer('step2: 测试步骤2', lambda x: projectLayer.dtLog.info(f'开始测试步骤***{x}'))

    @beforeCase
    def run(self):
        # 串联执行步骤
        self.step1.runStep(1)
        self.step2.runStep(2)
        return 0


if __name__ == '__main__':
    CaseLayer(case_001, featureLayer=featureLayer)  # ####### 取消注释后则是方式一
    # featureLayer.addCaseLayer(Case().caseLayer)  # ####### 取消注释后则是方式二

    projectLayer.dtLog.info('=' * 80)
    ok, no = projectLayer.run()
    projectLayer.dtLog.info('=' * 80)
    projectLayer.dtLog.info(f'通过用例数:{ok},不通过用例数:{no}')

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

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

Source Distribution

TaskTower-1.0.tar.gz (27.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

TaskTower-1.0-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file TaskTower-1.0.tar.gz.

File metadata

  • Download URL: TaskTower-1.0.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for TaskTower-1.0.tar.gz
Algorithm Hash digest
SHA256 245b81b98e36d6f1457c984ba62f87e5d1473b4c62323b32c19fa45ca5b3b401
MD5 f36717dc23debe0b1d756861fc4f4a51
BLAKE2b-256 294358802e264c2a66d0a06f48a5eb954ffd63fbc3af6f6158b70ee1abf72b8b

See more details on using hashes here.

File details

Details for the file TaskTower-1.0-py3-none-any.whl.

File metadata

  • Download URL: TaskTower-1.0-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for TaskTower-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 087268e6e3f1e24fb7d76db6e9ad485c47239a22cf38983a7fc9e0b8136822fa
MD5 b7f4957acee418d01ca8fe9ad04bbe7e
BLAKE2b-256 50d571b9fd6841bf1d113e4d6d4a3172fe74670217c55a43af59cb5f181aaab7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page