开源测试工具 流马 自动化测试平台开源啦

Chras · 2022年05月04日 · 最后由 ZYH 回复于 2023年01月15日 · 7463 次阅读

前言

为什么起这个名字呢?作者发现目前好像大部分自动化项目都喜欢起英文名,但作者是个喜欢传统文化的人,所以要整个中文名。流马,顾名思义,取自诸葛孔明的木牛流马,自动化测试的究极目标就是降本增效,取此名倒也贴切。

流马项目主要为了帮助中小企业快速搭建自动化测试体系,用一套平台解决 API/WEB/APP 测试 (目前已发布版本还没有 APP 还在疯狂打码中)。低代码设计主要是为了帮助那些了解自动化测试,但是代码能力又不足的同学。当然如果代码能力很好,也可以使用平台做一些底层工作,比如说平台支持自定义函数和自定义操作控件,如何把自动化一些公共部分提取出来并封装成组件,也很考验测开的能力。

这个项目最早作者曾在上家公司做过类似的,当前版本属于重新设计开发后的优化版。之前的版本曾服务于千人研发团队,近两百测试同学。曾经一个多月写了近万条自动化测试用例,在主流程测试以及部署验证测试等方面发挥了重要作用。另外不少用户属于外包同学,在使用平台前没做过自动化测试,简单培训即可上手。

本平台没有用到什么高深的技术,毕竟自动化测试越简单越好,平台化的目的主要还是为了便于管理和集成。简而言之,就是花最小的代价实现最有价值的事情。

平台架构

平台分为两大块,管理平台和测试引擎。之所以将测试引擎独立出来,出于以下三点考虑:

一是执行资源问题,如果测试管理和执行不分家,用户量上来后不可避免的执行等待和拥堵。
二是破除网络限制,比如说待测服务有多套环境,每套网络不同,又不方便开代理,自动化测试无法执行。这种情况在做 SaaS 交付的公司很常见。
三是方便执行调试,测试引擎本地启动,和传统框架一样,可以打断点,可以实时看日志,可以 print,方便那些习惯 debug 的同学使用。

管理平台又分为前后端代码,前端 vue+elementUI,后端 java+springboot,都是常用技术。本项目除了 mysql,没再使用任何中间件,学习和部署成本都比较低。

搭建开发环境

环境依赖:nodejs14、java1.8、mysql8.0、python3.6

前端代码:

第一步:前端代码根目录执行:npm install 安装依赖
第二步:启动前端服务:npm run dev
启动成功后浏览器默认打开登录页,则启动成功。

后端代码

java 代码建议使用 IDEA,先进行 maven 进行安装依赖,随后进行配置
第一步: 新建数据库名: liuma,配置 application.properties 数据库连接
第二步: 配置阿里云邮件和七牛云存储相关信息 (可以先跳过 不影响启动 但无法发送邮件和保存截图 具体配置参考部署文档)
第三步: 启动 LiuMaApplication 文件
首次启动会初始化数据表和基础数据,启动成功后,可以使用 demo/123456 预置账号验证是否可以登录。

引擎代码

第一步:引擎代码根目录执行:pip3 install -r requirements.txt
第二步:将平台引擎管理处的测试引擎 code/secret 填写在 config.ini 文件对应处
第三步:将后端服务地址 url 填写在 config.ini 文件对应处
第四步:启动引擎 python3 startup.py
第五步:平台引擎管理查看自己的引擎 显示在线 证明启动成功

关于部署

平台设计一切从简,部署配置要求不高,一台 2C4G 即可。数据库、前后端服务都在一台机器上搞定绰绰有余。
具体部署文档参考:部署文档

关于维护

作者会定期维护更新功能和 BUG,目前还只是基础版,还有很多功能仍在打码中。也欢迎大家在 GitHub 上给作者提意见,也欢迎有兴趣的同学加入维护。

项目地址

项目源码:GitHub 地址
官网地址:流马官网
演示平台:demo 地址
使用手册:使用手册

公众号

关注微信公众号【流马测试】,作者定期更新相关文章。也可通过公众号添加作者微信或者加入技术群里一起讨论。

最佳回复

应其他同学需要,源码上传了 gitee 仓库:Gitee 地址

共收到 17 条回复 时间 点赞

自动化测试平台。。隔几天就会有造一个,看都看腻了

看着头疼
apipost 用着不香吗?

槽神 回复

引擎是 Python 写的,上面有写,管理平台和引擎两块,管理平台包括前后端,后端不等于引擎,注意审题

xuxu 回复

您说得对,我闲着无聊在造轮子呢

Chras 回复

造轮子挺好的,不知道我用 c++ 造轮子写了个压力测试工具会不会被不理解,过几天我也发出来大家玩玩

作者做的很棒,有没有考虑把接口和 web ui 结合起来做用例执行。

有没有 docker 镜像,搞个 dockerfile 文件呗。大佬

已经成功使用 docker 搭建起来了

Chras #11 · 2022年05月12日 Author
741148263 回复

厉害厉害。我懒得弄容器化部署,前后端不太需要,引擎倒是需要但是因为 WEB 测试依赖 Chrome,镜像太大了,实在懒得弄。

应其他同学需要,源码上传了 gitee 仓库:Gitee 地址

初步体验了一下在线的平台,觉得挺不错的,作者很赞👍

楼主一个人做的吗?太强了吧。我现在用的是 metersphere,和楼主的其实很相似,但要复杂些,核心用的 jmeter,所以能力很强,当然 bug 也不少。我想问下楼主,当时为什么没用用现成的测试平台,而是独立开发,有什么毕竟有优势的地方吗?

Chras #15 · 2022年06月02日 Author
阿根 回复

你都说了呀,复杂 bug 多。另外,我还是倾向于自动化测试平台就做自动化测试,周边功能不用做那么多。还有一点我当时做的时候 ms 是没有 WEB 和 APP 测试的

请教下 UI 自动化用例是如何调试的?是在用户本地运行么?还是在服务器上?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册