为什么起这个名字呢?作者发现目前好像大部分自动化项目都喜欢起英文名,但作者是个喜欢传统文化的人,所以要整个中文名。流马,顾名思义,取自诸葛孔明的木牛流马,自动化测试的究极目标就是降本增效,取此名倒也贴切。
流马项目主要为了帮助中小企业快速搭建自动化测试体系,用一套平台解决 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 地址
使用手册:使用手册
关注微信公众号【流马测试】,作者定期更新相关文章。也可通过公众号添加作者微信或者加入技术群里一起讨论。
@zsd 后台是 springboot,引擎是 python
这是 java 还是 python
@EthanW 域名由单独的环境管理来维护,比如你接口维护了域名标识 APP,只需要在不同的环境下维护 APP 对应的域名,执行时再选择具体的环境,对自动绑定该环境下的域名。当然如果你不想用标识来识别域名也可以,常见的做法是根据路由来绑定,比如说接口地址是/api/test,环境下维护/api 这个路由对应的域名是 A,执行时也能绑定该域名。
您好,我操作演示项目发现,域名是放在 “接口管理” 的 “域名标志” 下的,比如我域名标志选择了 APP,那么就把我这个接口和一个域名绑定了
这种情况下,我如果想要灵活的对一个接口进行内网、线上的测试,我理解就要新建两个同样的接口对应两个 “域名标志” 了;
请问如上这种场景有更好的解决方式吗?
@Molya 已经在计划中了 后续会做这个功能
接口和元素管理支持导入就好了,初始化工作量有点大