seldom-platform一款优秀的测试平台框架

random
random
订阅者
10532
文章
0
粉丝
测试交流7583字数 1911阅读6分22秒阅读模式

1.问题引言

目前大大小小的公司都在做自己的自动化测试平台,尤其是接口自动化测试平台,因为接口格式比较固定,所以比较容易实现。当然,大体思路就是在线(web)版的 postman,或者是在线版的 HttpRunner(通过内嵌编辑器只支持 yaml/json)。 这些方案的思路就是告诉你不用写代码。 创建一条接口用例就是填写个 url ,选个请求方法(GET/POST),然后再填写一些参数,保存!看一条用例就完成了。 简单的接口确实如此,当我们真的拿这些平台开始大规模管理接口项目用例的时候,情况可能并不是特别美好!
  1. 接口依赖,A 接口的依赖 B 接口的返回值,B 接口又依赖 C 接口的返回值。
  2. 需要查询数据库,查询数据库验证结果,查询数据库初始化数据。
  3. 数据驱动问题,单接口或场景(多)接口流程都一样,数据不一样。
  4. 接口加密,生成随机数据。
  5. ....
别急,你说的这些问题平台都有方案的,你看!我们有前置脚本前置接口前置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-platform一款优秀的测试平台框架插图
seldom 自动化测试框架
seldom-platform一款优秀的测试平台框架插图1
seldom-platform 自动化测试平台 通过 seldom 框架编写的用例,可以通过 seldom-platform 进行解析展示、执行、查看结果、创建任务等。 seldomQA 开源项目目标:
seldom-platform一款优秀的测试平台框架插图2
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-platform一款优秀的测试平台框架插图3
创建/编辑项目:
seldom-platform一款优秀的测试平台框架插图4
seldom-platfrom 创建项目的核心拉取一个 git 项目到本地。 选项说明:
  • 名称: 随便起一个项目名字。
  • git 地址:一个用 git 管理的自动化项目的地址。
  • 测试目录:自动化项目的 测试用例目录。
参考自动化项目:https://github.com/defnngj/seldom-api-testing
seldom-platform一款优秀的测试平台框架插图5
  • 如果是新创建的项目,你可以选择 克隆(git clone )
  • 如果是已克隆的项目,你可以选择 拉取(git pull)

3.2 环境管理

环境管理 与 seldom 框架的参数有关。
seldom-platform一款优秀的测试平台框架插图6
参数说明:
  • 名称:给环境起个名字
  • base_url: 接口自动化参数,指定 接口的基本地址。
  • browser: Web UI 自动化参数,指定运行的浏览器。
  • env: 数据驱动使用参数,指定读取哪个环境的数据驱动文件。

3.3 团队管理

创建任务时需要指定团队,功能简单,不做解释。
seldom-platform一款优秀的测试平台框架插图7

3.4 用例管理

用例管理主要用来同步用例,运行、查看结果等。
seldom-platform一款优秀的测试平台框架插图8

3.4.1 同步用例

点击 “同步” 按钮,同步用例。
seldom-platform一款优秀的测试平台框架插图9
同步用例步骤说明:
  1. 拉取代码:相当于执行 git pull 命令。(如果没有项目,执行克隆 git clone)
  2. 查找用例:通过 seldom 提供 API 检索自动化项目中的用例,写入一张临时表。
  3. 同步结果:对比临时表与用例表中的用例,找出差异:新增/删除的用例。
  4. 合并:把临时表中的结果写入用例表。
说明:
  1. 自动化项目中包含许多代码(数据驱动文件、报告、封装、page 层),同步只解析自动化项目中的用例。
  2. 数据驱动的用例可以解析为多条用例,也可以解析为一条用例。seldom 提供两种模式。
  3. 如果某用例无法解析,可能缺少依赖库。

3.4.2 用例展示

执行完同步就可以解析出用例了。
seldom-platform一款优秀的测试平台框架插图10
左侧树: 与测试化项目的测试用例目录一致,没有任何要求,目录如何创建,这里都可解析。 右侧表格:
  • 测试类:.py 文件中的测试类。
  • 测试类描述:测试类的注解。
  • 测试方法:.py 文件中的测试方法(默认数据驱动被解析成多条用例)。
  • 测试方法描述:测试方法的注解。
  • 状态:用例的执行状态。未执行/执行中/已执行
  • 执行:执行按钮

3.4.3 运行&结果

平台除了解析展示用例,当然是可以运行和展示结果。 点击 “执行” 按钮,完成后,点击表格行,弹出执行结果:
seldom-platform一款优秀的测试平台框架插图11
seldom-platform一款优秀的测试平台框架插图12

3.5 任务管理

任务管理主要是管理多条用例的执行和结果展示。
seldom-platform一款优秀的测试平台框架插图13

3.5.1 创建&任务

点击 “创建” 或 “编辑” 按钮看到下面的列表。
seldom-platform一款优秀的测试平台框架插图14
选项说明:
  • 任务名称:随便输入一个名称。
  • 运行环境:任务添加用例的执行环境。
  • 团队:任务关联的团队。
  • 选择用例:
    • 目录树:通过目录树点击文件。
    • 穿梭框:穿梭框显示添加的用例。

3.5.1 运行&报告&详情

  1. 点击 “运行” 按钮运行任务。
  2. 点击 “任务名称” 查看报告。
seldom-platform一款优秀的测试平台框架插图15
  1. 点击报告列表的数字按钮查看详情
seldom-platform一款优秀的测试平台框架插图16
  1. 查看报告详情
seldom-platform一款优秀的测试平台框架插图17

4.平台规划

这只是平台的第一个版本的功能,未来将会加入更多功能。
  • 定时任务
  • 统计面板
  • 更多...
同时,这也是一篇招募帖,如果这个项目解决了你的痛点,看到了这个项目的价值,欢迎以任何方式参与进来~!文章源自玩技e族-https://www.playezu.com/516057.html
 
评论  7  访客  7
    • 虫师
      虫师 9

      适合自己团队的就是最好的。

      另外再说一下:
      seldom-platform/seldom 解决的不不单纯是接口自动化问题;可能文章大量提到了接口案例,误以为就是为了解决接口问题的;seldom 支持 web/app UI、接口,写什么用例都可以;多复杂的场景都可以;这个框架的优势; 并不影响 seldom-platform 对用例的解析和展示。 — 这是一整套 自动化的解决方案。

      • 虫师
        虫师 9

        你只看我抛出的问题,没看看 seldom-platform/seldom 方案? 你说提到的问题是 seldom 框架中实现的,怎么实现取决于你的业务和方案; seldom-platform 只是用于展示、解析、和执行用例,并不限制你用例如何写。

        • 唱跳rap篮球
          唱跳rap篮球 9

          自己搞的不稳定是一个很大问题。无法推广到整个研发团队。然后放弃了,跟领导说用鹅的 Apifox,配合 Jenkins,实在是润。然后整个研发团队用起来很爽,没有什么学习成本的东西才是好东西

          • jinglebell
            jinglebell 9

            那些前置处理脚本放在 case 层吗?比如鉴权、加密、各个项目不同规范的 header 组装等。

            • cobb
              cobb 9

              6666666666666666666

              • Lovetest
                Lovetest 9

                • 虫师
                  虫师 9

                  首先,感谢 @taylortaurus 发帖:

                  我来补充几点说明:

                  虽然图中的截图是 接口自动化项目。但理论上通过 seldom 编写的各种类型的测试都是支持的, Web/App UI 自动化测试也可以; 不过 App 测试环境相对复杂,比如 后端需要 启动 appium server 。
                  图中解析用例 不是单纯的 把目录下的文件/类/方法 解析出来,一个项目中 有各种.py 文件,比如 common/utils 放的公共模块, 甚至在测试类中也有 普通的 不以 test 开头的方法, seldom 可以做到只解析测试用例。
                  用例解析不依赖 seldom-platform ,这是 seldom 框架的能力; 比如,我们公司 后端用 go 调用 seldom 命令来解析和执行用例。
                  seldom-platform 是开源项目,有些人参与了走了,有些人贡献了想法,有些人贡献了代码,非常希望更多人参与贡献想法和代码; 你看不上 UI 可以自己 fork 分支,重写 前端/ 后端都是可以的。

                匿名

                发表评论

                匿名网友
                :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
                确定

                拖动滑块以完成验证