我有个困惑,想知道大厂成熟的接口自动化测试方案一般都是咋做的呢?我用python实现了一套测试接口的工程,可以在提测的时候实现接口用例的自动化测试,测试用例要自己设计的,比较依赖于规范的接口文档,但是组长总是说和大厂的方案差别很大,推了些流量回放的资料给我……所以要怎样做才是接口自动化的正确打开方式呢?
还有想提前知道下咱们的课程里关于接口测试自动化用的是什么方案
常见的做法
- 流量回放:这个并不好,tcpcopy、gor、diffy都做到一部分了,适合粗放型的回归
- 基于插桩去拦截线上服务的接口请求,jvm-repeater、去哪儿的qunit,需要解决mock
- 基于swagger yapi、 har去自动生成用例,这个很多工具都有实现,比如HttpRunner
- 核心测试用例总归还是要维护的,所以需要自己定制框架与维护业务模型
- 接口测试用例与持续集成与持续交付devops的结合
课程都有提到,但是只有部分重要工具的实战。一些偏门的工具比如gor diffy tcpcopy没做实战,qunit等工具貌似还没开源,不讲。剩下的应该都有讲解的
1 个赞
这个应该也的用标准的swagger,自己定义文档规范不太靠谱,最好使用标准,swagger可以从代码中反向生成文档的。
1 个赞
感谢思寒大大回复。
现公司用的Rap2来维护项目接口,我也基于这个平台,通过对外开放的api获取接口信息用python来实现自动化设计测试用例,但团队的开发和组长就反馈说这种接口自动化太依赖文档或仓库的维护了;
后面我写了个python脚本通过har文件生成用例,想着在前后端联调阶段来生成测试用例,但har能模拟的场景毕竟有限,还是要自己补充很多入参场景的;
所以如何能在项目迭代频繁的情况下优雅的实现测试左移就成了问题
- 目标
在开发编码设计阶段能同步产出接口测试用例,提测后自动触发接口测试,接收测试报告 - 问题
- 使用python来测接口只能在开发基本完成代码编写后才能介入,是不是只能用与开发相同的技术栈的方案,比如java,才能更早的介入测试;
- 接口的测试数据依赖业务中定义的状态怎么解决,比如不同业务状态接口有不同响应结果;
- 接口与接口间存在依赖,如A接口必须在B接口调用以后才能正常响应;
后面两个问题现在的解决方案是定期备份测试标准库(用的mysql)但会有比较大的维护工作量
我感觉我有好多问题,期待学完课程后能有进步,来高效的解决这些问题
1 个赞
我前面提到的swagger,可以自动从研发的代码中提取文档,也可以用来自动生成用例的。你可以先自动生成文档,再用python转用例。跟研发相同语言,肯定优势大。所以学院的定向班教的是java。也是基于这个考虑,但是不代表python就搞不定。
典型的上下文依赖吧,这个到时候课程到了你就知道了。
这也是正常的接口测试用例会遇到的,单个api就能测试的,还是非常少的。
总之听课吧,到时候问就好了