出品 | 51Testing软件测试网
5.9 做 接口测试 需要 掌握的知识做接口测试需要掌握的知识如下:
系统及内部各个组件之间的业务逻辑;
接口的I/O(输入与输出);
协议的基本内容,包括通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;
常用的接口测试工具,如JMeter、LoadRunner、Postman、SoapUI、QTP(UFT)、Python Requests等。
数据库基础操作命令(检查数据入库、提取测试数据等)。
常见的字符类型,如char、varchar、text、int、float、datatime、string等。
1.如何学习这些知识
关于系统间业务交互逻辑,建议通过需求文档、流程图、思维导图、沟通等渠道学习。
关于协议,建议学习《图解HTTP》(ISBN是978-7-115-35153-1)这本书,内容生动,相对容易入门。
关于接口测试工具建议通过网络学习这些工具或者选择合适的书。
关于数据库操作命令建议学习与数据库相关的书。
关于字符类型建议通过网络或相关书学习。
2.如何获取接口相关信息
一般的项目开发人员或者对应的技术负责人员会编写接口文档,文档中会注明接口相关的地址、参数类型、方法、输入、输出等信息。如果没有接口文档,则只能靠抓包工具慢慢地去探索,然后自己写出一份接口文档。
3.接口文档的要素
封面:封面最好是本公司规定的封面,有徽标、标题、版本号、公司名称及文档产生日期等。
修订历史:用表格形式表示较好,表格内容包括版本、修订说明、修订日期、修订人、审核时间及审核人等。
接口信息:包括接口调用方式、常用的GET/POST方式、接口地址。
功能描述:简洁、清晰地描述接口功能,如接口获取的信息包括哪些内容。
接口参数说明:每个参数都要和实际中调用的一样,包括大小写;参数应该言简意赅。
说明部分:说明参数值需要如何提供,并详细说明参数是怎么生成的,例如,时间戳是哪个时间段的,参数是否必填。关于返回值的说明如下。
最好有一个返回值模板,并说明每个返回值的意义。
提供一个真实的调用接口、真实的返回值。
调用限制和安全性:采用加密方式,保证接口调用的安全性。
文档维护:在维护文档的时候,如有修改一定要写上修改日期、修改人。另外,对文档大的修改要有版本号变更信息。
下面列出一些接口测试必备的知识点。
1.GET请求和POST请求的区别
(1)GET使用URL或Cookie传递参数,而POST将数据放在Body中。
(2)GET的URL有长度的限制,而POST的数据可以非常大。
(3)POST比GET安全,因为数据在地址栏上不可见。
(4)一般GET请求用来获取数据,POST请求用来发送数据。
2.HTTP状态码
[2**]:表示这个请求发送成功,最常见的是200,表示这个请求成功了,服务器也返回了数值。
[3**]:代表重定向,最常见的是302,表示把这个请求重定向到其他地方。
[4**]:代表客户端发送的请求有语法错误。例如,401表示访问的页面没有授权,403表示没有权限访问这个页面,404表示没有这个页面。
[5**]:代表服务器有异常、例如,500表示服务器内部异常,504表示服务器端超时,因此没有返回结果。
3.怎么测试WebService接口
通过WebService的地址或者WSDL文件,直接在SoapUI中导入WebService地址,就可以看到WebService的所有接口。在调用接口时直接输入参数,运行后即可得到返回结果。
4.Cookie与Session的区别
(1)Cookie数据存放在客户的浏览器上,Session数据存放在服务器上。
(2)Cookie中的数据不安全,用户可以分析存放在本地的Cookie并进行Cookie欺骗攻击,所以出于安全性考虑应当使用Session。
(3)Session会在一定时间内保存在服务器上。用户访问量增多会降低服务器的性能,考虑到服务器的性能,应当使用Cookie。
(4)单个Cookie保存的数据不能超过4KB,很多浏览器限制一个站点最多保存20个Cookie。
(5)建议将登录信息等重要信息存放在Session中,而将其他信息可以放在Cookie中。
5.10 本章小结
和复杂的UI自动化测试相比,接口测试技术并不难,学习一些工具或者学习第6章将要讲到的Python Requests包即可快速掌握。接口测试比较难的部分是对各种专业知识的理解,就像性能测试一样,使用测试工具编写一些性能测试脚本其实很简单,但是比较难的是性能分析。
... ...扫码/点击,查看独家连载
读者交流QQ群:470983754
戳