摘要: 背景:最近需要扩展一下nosetest框架插件,项目团队已有自造多个插件而且效果还不错。燃鹅,并没有去深究源码和插件调用和设计实现。于是,下断点 跟踪nosetests框架源码。开局一只狗,断断续续花了近一周时间才还原出插件的调用逻辑,惊呼大神的脑洞清奇,设计模式方面完全不拘一格。基于插件的 实现模 阅读全文
posted @ 2021-03-02 13:45 O万山 阅读(168) 评论(0) 推荐(0) 编辑
摘要: VI.测试用例模块case.py TestCase也是个神奇的类, 或者说是个蝙蝠类.既是哺乳动物又是鸟类 5.1 长得就是一只鸟 class TestCase(object): def __init__(self, methodName="runTest"): pass def addCleanu 阅读全文
posted @ 2021-02-10 12:22 O万山 阅读(115) 评论(0) 推荐(0) 编辑
摘要: V.测试套模块suite.py 测试套模设计的比较尴尬, 按照名称应该是测试套件的组织,应该只有一个协议或者范式声明. 然鹅, 他和 用例模块case.py也身兼用例组织和用例驱动执行的功能. 甚至, suite范式声明的码量很少. 大部分工作是测试 执行. 基类BaseTestSuite功能很单一 阅读全文
posted @ 2021-02-10 10:51 O万山 阅读(119) 评论(0) 推荐(0) 编辑
摘要: III.测试驱动模块runner.py runner模块主要功能是: *.初始化result将测试结果记录和处理转交给result模块;(详参后续result模块lifecycle) *.启动测试套运行, 将run动作传递给TestSuit模块的__call__函数; *.统计result结果, 向 阅读全文
posted @ 2021-02-09 17:44 O万山 阅读(117) 评论(0) 推荐(0) 编辑
摘要: I.unitest源码 unittest .. | __init__.py | __main__.py | case.py # 用例组织模块 | loader.py # 测试用例嗅探模块 | main.py # 脚本主入口 | result.py # 测试结果维护 | runner.py # 测试运 阅读全文
posted @ 2021-02-09 16:41 O万山 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 【引子】 项目从自研(造轮子)的测试框架切到nosetests, 起初的感觉只是解决了自制轮子基类全局变量管理和状态切换问题. 直到被fixture的抽象惊艳到了. 自制的轮子是假设所有用例之间独立, 用例内部负责测试场景构造,测试点,战场打扫和异常处理,如下. 1 class TestCase(o 阅读全文
posted @ 2021-02-09 14:51 O万山 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 【问题背景】: Jenkins job过多导致pipline过多无法维护, 考虑实现归一化版本控制. 分离job配置数据和jenkins流程, 把pipline主逻辑流程代码化, 使得修改维护简单&同时避免误修改导致的无意义工作. 具体方案: 1.抽离数据, 将配置数据集中存放在$JENKINS_H 阅读全文
posted @ 2021-02-01 11:54 O万山 阅读(1154) 评论(0) 推荐(0) 编辑
摘要: 一. 部署Jenkins服务 * 容器仓库https://hub.docker.com/u/jenkins查找jenkins, 依照说明pull最新的lts版本 docker pull jenkins/jenkins:lts * 启动容器,指定到端口宿主机9090, 打开页面根据提示.按照默认方案初 阅读全文
posted @ 2021-01-26 16:47 O万山 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1.部署docker环境 2.开启docker远程调用 3.配置Jenkins任务 https://blog.csdn.net/qq_31977125/article/details/82999872 4.部署Jenkins客户端:用官方Jenkins/ssh-slave镜像 4.1 apt-get 阅读全文
posted @ 2020-09-27 23:22 O万山 阅读(191) 评论(0) 推荐(0) 编辑