专栏首页TestQApy-ops面向编程的关键字测试框架

py-ops面向编程的关键字测试框架

说明

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

其主要核心功能:

1.支持关键字定义2.支持关键字组装3.测试数据透传

该框架的主要特点:

1.基于pytest框架开发,支持原生插件2.同时具备关键字BDD框架的特点3.无二次学习成本(Python|json)4.天然支持测试数据分离与传递5.对上层应用提供友好的封装接口6.支持脚本Debug调试7.代码量少(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

框架设计结构

本文分享自微信公众号 - TestQA(testqna),作者:five3

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python-Jenkins基本认识

    在按下提交按钮后后端开始执行发布程序(jenkins),执行完成之后(成功/失败)返回如下结果

    菲宇
  • 【重磅】TensorFlow 1.0 官方正式发布,重大更新及5大亮点

    【新智元导读】昨天凌晨谷歌正式发布了TensorFlow1.0版,改进了库中的机器学习功能,发布了XLA的实验版本,对Python和Java用户开放,提升了de...

    新智元
  • 技术中台之DevOps自动化测试实践

    Devops作为技术中台的重要组成部分之一,其下“自动化测试”功能也是不可或缺的一环,如何结合DevOps自身提供的自动化测试功能,做好DevOps的接口自动化...

    yuanyi928
  • 上手必备!不可错过的TensorFlow、PyTorch和Keras样例资源

    TensorFlow、Keras和PyTorch是目前深度学习的主要框架,也是入门深度学习必须掌握的三大框架,但是官方文档相对内容较多,初学者往往无从下手。本人...

    AI科技大本营
  • httpclient爬虫爬取汉字拼音等信息

    下面是使用httpclient爬虫爬取某个网站的汉字相关信息的实践代码,中间遇到了一些字符格式的问题。之前被同事见过用html解析类来抓取页面信息,而不是像我现...

    FunTester
  • 无服务器化的微服务持续交付

    前言 我在刚进入 ThoughtWorks 的时候就做微服务,当时不知道什么叫做微服务,只是我们通过一个小的技术应用替换原先的大应用的一个部分,当时只是做一个解...

    DevOps时代
  • Linux ADF(Atomic Display Framework)浅析---概述

    因为工作关系,最近有涉及到ADF(Atomic Display Framework)相关的内容,部分内容来自互联网

    233333
  • #DevOps的前世今生# 3. DevOps 的目标和核心前言

    在#DevOps的前世今生# 2. Dev和Ops矛盾缘何而来 ?一文中,通过Dev和Ops的历史发展总结出了Dev和Ops矛盾的历史渊源,以及 Dev 和 O...

    顾宇
  • DevOps前世今生 | 3. DevOps的目标和手段

    ? 一、前言 在《DevOps的前世今生 | 2. Dev 和 Ops 矛盾缘何而来 ?》一文中,通过 Dev 和 Ops 的历史发展总结出了 Dev 和 O...

    DevOps时代

扫码关注云+社区

领取腾讯云代金券