1.问题引言
目前大大小小的公司都在做自己的自动化测试平台,尤其是接口自动化测试平台,因为接口格式比较固定,所以比较容易实现。当然,大体思路就是在线(web)版的 postman,或者是在线版的 HttpRunner(通过内嵌编辑器只支持 yaml/json)。 这些方案的思路就是告诉你不用写代码。 创建一条接口用例就是填写个 url ,选个请求方法(GET/POST),然后再填写一些参数,保存!看一条用例就完成了。 简单的接口确实如此,当我们真的拿这些平台开始大规模管理接口项目用例的时候,情况可能并不是特别美好!
- 接口依赖,A 接口的依赖 B 接口的返回值,B 接口又依赖 C 接口的返回值。
- 需要查询数据库,查询数据库验证结果,查询数据库初始化数据。
- 数据驱动问题,单接口或场景(多)接口流程都一样,数据不一样。
- 接口加密,生成随机数据。
- ....
别急,你说的这些问题平台都有方案的,你看!我们有
前置脚本
,
前置接口
,
前置SQL
,
后置..
,我们还提供了 hook,你只要这样
{{n}}
就可以引用变量了,是不是很强大!? 你还可以在这里 写 py 脚本,是不是很厉害!? 我一度怀疑,都要这些多操作配置步骤了,还是平台宣称简单易用吗?都要在平台上写
py 脚本
了,还是平台宣称的不用写代码,降低使用门槛吗? 我一开始是框架派的,就是 unittest/pytest + requests 来写接口自动化;后来,大家都在玩平台,于是我们也开始转向平台,可是我自己做的平台,最满意的是领导和我了,领导说这平台好,用例统计方便,执行结果在线查看... 我也觉得好,毕竟,谁能说自己孩子丑呢? 可以,使用平台的业务测试他们觉得不太好-- 这种场景暂不支持啊;这个功能还没做,这里怎么又出 bug 了;配置这么麻烦,还不如写代码方便。 于是,出现了 平台派 和 框架派。
平台派观点:- 门槛更低:通过 UI 交互就可以完成用例的创建、编辑、执行。
- 任务管理:例如:定时任务,可以更好的管理任务的执行。
- 监控统计:例如:比较方便统计历史数据,用例/任务数量,每天/月/年执行情况等。
- ..
框架派优势:- 功能强大:通过代码的方式维护自然是更强大的,可以随意使用编程语言的特性完成工作,例如 封装、继承、if 判断,for 循环 等。
- 方便扩展:扩展用例的功能非常方便,例如,实现数据库操作,只需要安装 pymysql 库即可。
- ...
2.seldom-platform 平台
seldom-platform 是不一样的测试平台,他基于 seldom 框架提供一种新的方案。充分的发挥了平台和框架各自的优势。用一句说明:
seldom-platform 测试平台基于 seldom 框架实现自动化测试管理,结束平台与框架之争。
seldom-platform /seldom 充分利用平台和框架各自的优势,来完成自动化测试工作。 通过下面两张图更快的认识 seldom-platform/seldom:
seldom 自动化测试框架
seldom-platform 自动化测试平台 通过 seldom 框架编写的用例,可以通过 seldom-platform 进行解析展示、执行、查看结果、创建任务等。
seldomQA 开源项目目标:seldomQA 相关项目:
- seldom 框架:https://github.com/SeldomQA/seldom
- seldom-platform 平台:https://github.com/SeldomQA/seldom-platform
- poium 库: https://github.com/SeldomQA/poium
- XTestRunner 库: https://github.com/SeldomQA/XTestRunner
3.功能介绍
接下来介绍 seldom-platform 平台的使用。
3.1 项目管理
项目是整个平台的开始,平台提供的大部分功能都是围绕着项目展开的。
创建/编辑项目:
seldom-platfrom 创建项目的核心拉取一个 git 项目到本地。
选项说明:- 名称: 随便起一个项目名字。
- git 地址:一个用 git 管理的自动化项目的地址。
- 测试目录:自动化项目的 测试用例目录。
参考自动化项目:https://github.com/defnngj/seldom-api-testing
- 如果是新创建的项目,你可以选择 克隆(git clone )
- 如果是已克隆的项目,你可以选择 拉取(git pull)
3.2 环境管理
环境管理 与 seldom 框架的参数有关。
参数说明:- 名称:给环境起个名字
- base_url: 接口自动化参数,指定 接口的基本地址。
- browser: Web UI 自动化参数,指定运行的浏览器。
- env: 数据驱动使用参数,指定读取哪个环境的数据驱动文件。
3.3 团队管理
创建任务时需要指定团队,功能简单,不做解释。
3.4 用例管理
用例管理主要用来同步用例,运行、查看结果等。
3.4.1 同步用例
点击 “同步” 按钮,同步用例。
同步用例步骤说明:- 拉取代码:相当于执行 git pull 命令。(如果没有项目,执行克隆 git clone)
- 查找用例:通过 seldom 提供 API 检索自动化项目中的用例,写入一张临时表。
- 同步结果:对比临时表与用例表中的用例,找出差异:新增/删除的用例。
- 合并:把临时表中的结果写入用例表。
说明:- 自动化项目中包含许多代码(数据驱动文件、报告、封装、page 层),同步只解析自动化项目中的用例。
- 数据驱动的用例可以解析为多条用例,也可以解析为一条用例。seldom 提供两种模式。
- 如果某用例无法解析,可能缺少依赖库。
3.4.2 用例展示
执行完同步就可以解析出用例了。
左侧树: 与测试化项目的测试用例目录一致,没有任何要求,目录如何创建,这里都可解析。
右侧表格:- 测试类:.py 文件中的测试类。
- 测试类描述:测试类的注解。
- 测试方法:.py 文件中的测试方法(默认数据驱动被解析成多条用例)。
- 测试方法描述:测试方法的注解。
- 状态:用例的执行状态。未执行/执行中/已执行
- 执行:执行按钮
3.4.3 运行&结果
平台除了解析展示用例,当然是可以运行和展示结果。 点击 “执行” 按钮,完成后,点击表格行,弹出执行结果:
3.5 任务管理
任务管理主要是管理多条用例的执行和结果展示。
3.5.1 创建&任务
点击 “创建” 或 “编辑” 按钮看到下面的列表。
选项说明:- 任务名称:随便输入一个名称。
- 运行环境:任务添加用例的执行环境。
- 团队:任务关联的团队。
- 选择用例:
- 目录树:通过目录树点击文件。
- 穿梭框:穿梭框显示添加的用例。
3.5.1 运行&报告&详情
- 点击 “运行” 按钮运行任务。
- 点击 “任务名称” 查看报告。
- 点击报告列表的数字按钮查看详情
- 查看报告详情
4.平台规划
这只是平台的第一个版本的功能,未来将会加入更多功能。
同时,这也是一篇招募帖,如果这个项目解决了你的痛点,看到了这个项目的价值,欢迎以任何方式参与进来~!
文章源自玩技e族-https://www.playezu.com/516057.html
未知地区 7F
适合自己团队的就是最好的。
另外再说一下:
seldom-platform/seldom 解决的不不单纯是接口自动化问题;可能文章大量提到了接口案例,误以为就是为了解决接口问题的;seldom 支持 web/app UI、接口,写什么用例都可以;多复杂的场景都可以;这个框架的优势; 并不影响 seldom-platform 对用例的解析和展示。 — 这是一整套 自动化的解决方案。
未知地区 6F
你只看我抛出的问题,没看看 seldom-platform/seldom 方案? 你说提到的问题是 seldom 框架中实现的,怎么实现取决于你的业务和方案; seldom-platform 只是用于展示、解析、和执行用例,并不限制你用例如何写。
未知地区 5F
自己搞的不稳定是一个很大问题。无法推广到整个研发团队。然后放弃了,跟领导说用鹅的 Apifox,配合 Jenkins,实在是润。然后整个研发团队用起来很爽,没有什么学习成本的东西才是好东西
未知地区 4F
那些前置处理脚本放在 case 层吗?比如鉴权、加密、各个项目不同规范的 header 组装等。
未知地区 3F
6666666666666666666
未知地区 2F
强
未知地区 1F
首先,感谢 @taylortaurus 发帖:
我来补充几点说明:
虽然图中的截图是 接口自动化项目。但理论上通过 seldom 编写的各种类型的测试都是支持的, Web/App UI 自动化测试也可以; 不过 App 测试环境相对复杂,比如 后端需要 启动 appium server 。
图中解析用例 不是单纯的 把目录下的文件/类/方法 解析出来,一个项目中 有各种.py 文件,比如 common/utils 放的公共模块, 甚至在测试类中也有 普通的 不以 test 开头的方法, seldom 可以做到只解析测试用例。
用例解析不依赖 seldom-platform ,这是 seldom 框架的能力; 比如,我们公司 后端用 go 调用 seldom 命令来解析和执行用例。
seldom-platform 是开源项目,有些人参与了走了,有些人贡献了想法,有些人贡献了代码,非常希望更多人参与贡献想法和代码; 你看不上 UI 可以自己 fork 分支,重写 前端/ 后端都是可以的。