前 言
本书的原型是我整理一份Django学习文档,从事软件测试工作的这六、七年来,一直有整理学习资料的习惯,这种学习理解再输出的方式对我非常受用,博客和文档是我主要的输出形式,这些输出同时也帮助到许多软件测试人员。
说回到接口测试的话题上来,根据分层自动化测试的思想,上层为UI层,关于UI层的自动化测试我们已经很熟悉了,许多技术和工具都围绕这一层来设计的,我们要想做自动化,首先想到和尝试去做的也是一层的自动化实现;底层为单元测试,对于单元级别的自动化测试来说,虽然大多数测试人员并没有真正做过,但我们知道,它一般使用单元测试框架,通过一段代码去测试另一段代码;而接口测试刚好处于中间层,不太好理解,也不太好解释,因为在实际开发的项目中只有程序目录/文件、类、方法、函数这些,然而并没有一个叫“接口”的东西。但是,它又太非常重要!在项目开发过程中,它是一个出现频率极高的词,时间挂在开发人员嘴边。
什么是接口呢?如何对接口进行测试呢?我曾经也有很长一段时间对接口测试并不理解。为什么没有一本讲接口测试的书呢?相比于性能测试和UI自动化测试每年都会出版好几本的节奏,你几乎找不到一本专门介绍接口测试的书。现在看来可能是因为它太简单了吧!简单到没什么可讲的,甚至接口测试比功能测试还要简单得多。但是想要真的做好接口测试又很难,你需要读懂接口代码的处理逻辑,这就要求你必须具备一定的开发基础,对许多测试人员来已经形成了门槛。
如果要写一本关于接口测试的书,一种讨巧的做法就是把目前主流的接口测试工具都介绍一遍,然而,我并不认为把这些工具都学好就可以做好接口测试了,举个简单的例子,我的接口使用了加密,例如,用时间戳+密钥生成AES加密字符串,再将字符串生成base64字符串做为接口参数传输,这其实是一种常见的加密策略,而我所了解的大多接口工具都无法做到对这种加密接口的测试,原因是加密算法和加密策略是多样。但是,站在开发的角度上看接口测试就很简单了,开发怎么调用,测试也就怎么调用呗!只不过测试的目的是要验证传各种参数的情况下,接口是否可以正常的处理并返回相应的结果。
所以,我选择另一种需要很高学习成本的方法来讲接口测试,从Web接口开发讲起,理解了接口是如何开发的,接口的测试自然就变得非常简单了。你会看到本书前几章就是在讲Web开发以及Web接口开发,你可能会怀疑自己是不是买错书了,明明是要学习接口测试的,怎么都是开发的技术。其实,如果你只是想学习Web开发的话,那么本书也是一本不错的入门教程。
本书分为15个章节,虽然整本书不到300页,但确实包涵许多干货,这也是我在写作时对自己的要求,不要讲解太基础的东西,不要讲太多无聊的概念。第1章是Python基础,第2~5章是Web开发,第6章单元测试,第7~10章主要讲接口的概念、开发与测试。第11章接口的安全机制,第12~13章Web Service技术,第14~15项目的部署与性能测试。所以,你看到它并不是一本单纯面向测试同学的书,同样适合开发的小伙伴阅读。
到了感觉部分,首先,感谢测试经理唐亮在我们尝试新技术时的支持,还有开发组的同事,蓝仕坤、陈晓发在技术上给了我很大帮助。其次,感谢接口自动化测试群里的小伙伴,他们给我这本书提了很多建议,包括本书的名字,也是在群里投票的结果。感谢我的妻子,她默默的容忍着我每天晚睡的坏习惯,感谢她一直以来的包容与理解。最后,感谢编辑安娜,没有她这本书也不会出版,我们合作一直很愉快。
由于作者水平有限,本书错漏缺点在所难免,希望读者批评指正。
2017年1月13号凌晨
虫师