背景
工作中遇到一些类似责任链试的全链路测试场景,总是得临时写一些测试脚本,刚好觉得这种场景和「junit」的代码编写类似,于是考虑用「python」开发支持下
细节说明
主体代码
代码量很小,直接贴出来:
1 | import sys |
其实就是利用装饰器,黑盒处理了自动化测试的流程
用法
引入两个主题代码的两个「func」,「test」类似「junit」的注释,「start」为执行入口
此外可以简单对「func」添加下接口说明,便于理解接口功能,在自动化测试时方便快速定位
from auto_test import test
from auto_test import start
def autotest_0():
print("process about login")
def autotest_1():
print("process about create")
return True
def autotest_2():
print("process about config")
return False
def autotest_3():
print("process about destroy")
start(__name__)
查看执行结果:
--------------------------------------------------------------------------------
start testing, api: autotest_0
detail message: login
====================body start====================
process about login
====================body end====================
run cost: 0.000025s
warn: api autotest_0 with no return, you may need to check.
--------------------------------------------------------------------------------
start testing, api: autotest_1
detail message: create instance
====================body start====================
process about create
====================body end====================
run cost: 0.000022s
info: api autotest_1 run success!
--------------------------------------------------------------------------------
start testing, api: autotest_2
detail message: config
====================body start====================
process about config
====================body end====================
run cost: 0.000020s
error: api autotest_2 run failed!
按照接口顺序额打印出了各个接口的信息,执行耗时以及接口的输出
整个测试链路仅执行prefix为「autotest」的「func」,执行顺序按照subfix的编号,当且仅当该「func」执行不抛异常且执行结果不为「false」时才会继续流转
再针对具体的工作场景,沉淀一些「tools」,「utils」包,后面就交给他人填充「case」就好了,干净整洁