测试平台基本上属于刚需的测试工具。
现在开源世界也有一些可以直接拿来部署的工具,比如Metersphere。
如果开发资源有限,但是又想快速建一个平台,那么 Metersphere 可以是一个选择。某些知名的公司都在用,据我所知,比如跨境电商公司。
更常见于一些中小企业平台。
Metersphere可以提供什么东西?
最显著的一个是用例管理。这个工具可以支持传统的文档,也能搞思维图,在线编辑也可以。多数团队迫切想要测试平台的时候,往往最大的苦就是测试用例管理总是不够灵便,要么使用在线文档,要么使用 FTP 服务器文件共享,要么就是更加原始,各自放在自己的电脑上,需要共享的时候再盘里找出来聊天工具一传。
其次,想搞自动化和CI。
自动化和CI,一般可以用Gitlab和Jenkins做,如果想平台化,通常还是因为想用自动化测试用例能够共享,并且方便管理,试想,你的自动化用例放在代码仓库上,要拿出某个用例来执行一般不是那么方便的,Metersphere声称可以做持续集成和API测试。
这个工具未来可能会进化到比较灵活的状况,可以适用于大部分场景。
当然,我们说,不,我想自己定制,我对这个工具还是不满意,想自己搞一套。
那么你要做些什么呢?
首先基本的东西,包含以下的东西
- 测试用例管理。这是比较重要的一个
- 工具集成。这个是什么意思?团队好几个牛人平时沉淀了一些测试脚本,比如造数据,批处理之类的,当组内需要共享的时候,怎么办,传来传去,然后本地执行,要么就把脚本挂在某台云服务器上,要用的时候跑过去,cd到那个目录,执行它,总之,不是不行,但略显麻烦,还容易丢失,有人离开之后,突然大家就忘记这个工具在哪里了。解决方法就是平台化,最好能够集成到测试平台上,让大家很方便使用,维护也更明确
- 接口测试。这个我觉得不一定要有,但是如果公司的API就是比较特别,也可以做进去
- 持续集成和持续部署。这个基本上一定要考虑,为什么呢?测试平台的作用不仅仅是用来挂测试用例文件,更多时候,是得在上面做事情的,那么不可避免会涉及一些测试计划的工作流,那么关于测试执行的整个流——测试设计,环境准备,测试执行,测试报告这一条线路需要能在测试平台对接起来。不一定是一个串流,但是,必须提供能力可以把工作流里的内容进行嵌入。
知道了以上这些东西,再考虑技术选型。
必须要数据库——MongoDB和MySQL 我觉得都是可以选,不会有太多本质的限制
必需要的中间件——Redis和消息中间件,用kafka 或者redis+celery,如果目标用户就是几百人(有几百人用其实已经非常多了,大部分场景就是十几个人使用的,几个人用的情况也有,求一个便利性)消息中间件用来干嘛的,主要是异步任务管理,比如执行一个计划,可能要跑几分钟半小时什么的,任务脚本执行可能是在远离服务器的地方,所以就得拜托消息中间件了
必须要的Web页面——前端丑一点没关系,但是肯定是要的,不管出于操作便利还是给领导看到有个东西
必须要的Webserver——用Django和SpringBoot都可以,Python技术栈无脑选Django,当应用有数据库的时候,不用想太多,上Django一般不会有什么问题。如果是Java技术栈,用SpringBoot,其它技术栈我不太熟悉,C++基本上就别考虑,哪怕很熟
如果有API测试功能和持续集成,还得有个测试引擎的东西,即怎么收集测试用例,怎么驱动执行,这是测试框架都有的,你也可以直接继承一些成熟的工具进去,比如pytest或者Jmeter ,Metersphere就用的 Jmeter做它的测试引擎。
以上是粗略的准备和认知。
动手做每个面都是细节。对于初始版本,一般不要做的太细太面面俱到,应该快速把能用的版本产出,然后持续迭代,和做很多工具是一样的路数。
如果开发技术到位,一般来说,不会存在特别多的技术攻坚,本质是一个业务熟悉度的任务。