a python base auto testing framework that programming oriented with Structured Language.
Project description
☤ 说明
这是一款基于``pytest``封装,同时支持``关键字``和``BDD``,测试数据分离,面向编程,轻量级的,对上层自动化应用友好的基础测试框架。
其主要核心功能:
支持关键字定义
支持关键字组装
测试数据透传
该框架的主要特点:
基于``pytest``框架开发,支持原生插件
同时具备``关键字``和``BDD``框架的特点
无二次学习成本(Python|json)
天然支持``测试数据分离``与传递
对上层应用提供友好的封装接口
支持脚本``Debug``调试
代码量少(7个文件500行代码)
☤ 环境安装
pip install py-ops
或者使用下面命令安装最新版:
pip install git+https://github.com/five3/pyops.git
☤ 快速开始
使用该框架非常的方便,基本没有学习成本。安装完成之后,在任意目录执行如下命令创建一个测试项目:
pyops startproject test1
命令执行完成之后,会在当前目录创建一个[test1]目录,具体的目录结构如下:
|- test1
|-- ah_ext
|-- __init__.py
|-- demo.json
接着在测试项目根目录(test1)执行如下命令运行测试:
pyops run
该命令默认会执行当前目录先全部的json用例文件,如果你希望只执行部分的json用例,则可以指定特定的文件名:
pyops run demo.jsom demo2.json
在执行完run命令后会在当前目录生成多个文件,具体的文件如下:
|- test1
|-- ah_ext
|-- __init__.py
|-- demo.json
|-- demo.py
|-- pytest.ini
|-- report.html
|-- std.log
其中demo.py是由json文件生成的同名用例文件,这个是执行测试流程中的产物,也是执行测试的真正入口点。 report.html是测试报告,std.log则是测试的详细日志,pytest.ini自动生成的pytest配置文件。
如果你希望单独生成一个py用例文件,可以使用下面的命令:
pyops make demo.json
json文件中还可以对case配置disable字段,为true时则不会执行,不填时默认为false。 如果希望强制运行disable为true的用例,可以使用forcerun命令。
pyops forcerun
当然,你也可以通过原生的pytest命令来执行,前提是已经通过make、run命令生成了py文件。比如:
pytest demo.py::test_cls_name::test_case_name -s -v --force_run --pytest_report report.html
其中-s、-v是pytest原生的参数,–force_run是pyops插件参数,–pytest_report则是PyTestReport插件参数。
☤ 框架设计结构
☤ 自动生成用例说明
自动生成的demo.json测试用例内容如下:
{
"name": "TestDemo",
"desc": ".....background......",
"tag": "smoking_test",
"setup_class": [],
"teardown_class": [],
"setup": [],
"teardown": [],
"cases": {
"test_add": {
"desc": "",
"tags": [],
"data": {
"x": 2,
"y": 3,
"expect": 5
},
"flow": ["调用add"],
"check": ["检查add"]
}
}
}
自动生成的``ah_ext.__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']
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file py-ops-0.1.3.tar.gz
.
File metadata
- Download URL: py-ops-0.1.3.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
f442de4c618133616181af686869fc643a4eec1eba9d471673925bfc1298cd48
|
|
MD5 |
f256ca5d9a9d59eb26d3b0022aa71778
|
|
BLAKE2b-256 |
3c8bcd2ce2315af9f41d040c618804313127dec93d84b94e59b1211fbbc0269d
|
File details
Details for the file py_ops-0.1.3-py3.7.egg
.
File metadata
- Download URL: py_ops-0.1.3-py3.7.egg
- Upload date:
- Size: 22.7 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
aa10df560d7cc6139795730a9986bc5983153a26dc8ef8bbd072f0e27f29cba1
|
|
MD5 |
5b8fd8c14234bee125a2ee786331e788
|
|
BLAKE2b-256 |
da75ad4edd9ec137c330517bfa8ead351c134b2b61a4ff68a17d866f5d5fbd7c
|
File details
Details for the file py_ops-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: py_ops-0.1.3-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
6594eb61823cc35e03acbd0f2ff68bb5fdbe2a2e55af3e9a20df3c53cc36a3a2
|
|
MD5 |
56b1fb7405bce51ea246cd0977ebaeaf
|
|
BLAKE2b-256 |
bb4c2a83aa00efe27f78ecdf1f2e18992bee88c660575d4fe3f6c482a9817f98
|