很多团队想开展接口测试、接口自动化,但是不知道怎么样进行前期准备。
有时候你在面试的时候面试官也会问这种类型的问题。
那么如果一个没做接口测试的团队,突然决定要开展接口测试,那么要做些什么准备呢?
1. 接口文档
要做接口测试肯定必须要有一个关于当前系统中主要接口的文档(越全面越好)。
有人说,不是可以抓包么?当然可以抓包,但是你抓包能把整个系统需要测试的接口都捕获到了?就算可以,这个成本也太具体了吧!相当于给你一个数据库,有100多张表,要你去猜这些表和表中字段的意思。
有接口文档,才有指导性的文档,也许这个文档并不全面,但是至少有主要接口的描述、参数、响应等。这样测试才能有一定的目的性,再配合抓包工具,也能够开展起来。但是完全没有,只能呵呵了。
当然一般团队中都会有接口文档,因为这个文档主要供前后端开发进行协作的,不只是用于接口测试。一般团队会使用 swagger 等自动文档生成工具,或者使用小幺鸡、showdoc 等接口文档管理工具。
如果没有,可以尝试搭建一个 showdoc 之类的,简单易用,但是需要简单学学 markdown 语法。
2. 数据库设计文档
接口测试过程中,经常需要到数据库中判断接口对数据的操作结果。
那么一份数据库设计文档是必不可少的,没有那就是上面说的,上百个表,要自己去猜表的用途和字段的含义。这过于具体了。
3. 团队配合
获取开发团队的配合是必不可少的,因为接口文档一般不会细致到每个参数、每个响应字段都有详细的说明。
这种时候就需要和开发人员多去沟通,理清待测接口每个参数和响应字段的含义,这样才能达到测试效果。
4. 工具选择
“欲善其事必先利其器”, 选择合适的接口测试工具比不可少。
目前常用的接口测试工具有:
- Postman
- Jmeter
- Robot Framework
语言框架:
- Python + requests + unittest ( pytest )
- JAVA + HttpClient + TestNG(没用过...)
辅助工具:
- 抓包工具: Fiddler, Charles
- 数据库辅助工具:Xmysql, Newman (Postman 辅助工具)
具体选择工具还是自己用语言搭建框架,根据团队的实际情况来。
使用工具呢,
- Postman 入门容易,几个小时就可以掌握,但是无法连接数据库硬伤,需要辅助 xmysql 才行;
- Jmeter 功能强大,但是学习成本相对较高,最大的好处是接口的功能和性能都可以测试;
- Robot Framework 通用性很强,功能可以达到语言框架的灵活性,但是用例可读性有点不太好。
语言框架就不用说了,想怎么玩就怎么玩,有什么需要一行代码不能实现的就多写几行。
刚开始做,建议使用 Postman,如果接口的功能和性能都要考虑,可以选择 Jmeter。如果团队成员普遍代码能力强,那也可以选择直接上语言框架。
工具只是辅助,更重要的是接口分析与用例设计。