接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
接口测试的概念:
接口包括程序内部的接口,指的是方法(函数)与方法之间,模块与模块之间的交互。
接口类型
-
Web接口测试,
-
应用程序接口(API, application programming interface)测试,
-
数据库测试。
webService接口 ,它遵循soap协议通过http协议传输数据,请求报文和返回报文都是xml格式的,soap协议其实就是http协议+xml数据格式,这种接口目前不是太常用了,这种接口可以使用jmeter、postman等进行测试,
还有就是目前最常用的 http或者https接口了,它遵循的是http或者https协议,通过路径来区分调用的方法,请求报文都是key(键)-value(值)形式的,返回报文一般都是json串,有get和post等请求方式,测试使用的工具有postman、jmeter等。
软件测试过程中为什么要做接口测试呢?
-
后台是否对提交的数据进行了校验
-
发现很多在页面上操作发现不了的bug
-
检查系统的异常处理能力,例如传递错误的参数或参数值,应该返回提示信息,而不是500状态码
-
检查系统的安全性(请求及响应的关键敏感数据是否进行了加密)、稳定性(通过接口可以测试服务器的性能)
接口测试流程首先要有:接口文档,理解接口以及参数含义;然后根据接口文档编写接口测试用例;写完接口测试用例之后在接口测试工具中执行。
接口文档中主要的内容包括主机路径 公共参数 接口名称 接口路径 请求方式 请求头参数 请求参数 请求示例 返回结果示例等。
接口测试用例
主要包括id 所属模块 接口名称 接口地址 请求方式 header 是否依赖 请求参数 预期结果 实际结果
设计思路我们通常会考虑下边这些:
1.通过性验证
2.参数组合判断
3.参数异常验证
4.接口安全
1.通过性验证:
首先我们要确保这个接口功能是正常的,就是正常的通过性测试,按照接口文档上的ip地址,路径,参数,请求头,正常传入,判断是否可以返回正确的结果。
2.参数组合判断:
当然接口中存在多个参数时,需要对参数进行组合填写,判断后台响应是否正确。
3.参数异常验证
当然除了参数组合情况,还要考虑异常验证,就是不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验,包括一些不合法参数值。常校验的问题是:必传非必传、参数类型、入参长度,看后台是否提示错误
比如 必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,页码超出最大页码,或者0,-1
4.接口安全:
接口安全这块儿的用例呢,主要就是关键信息,敏感数据是否进行了加密, 比如登陆的接口,用户名和密码以及返回的敏感数据是不是加密,如果不加密的话,别人拦截到请求,就能获取到个人敏感信息了,当然加密方式,也需要做测试,判断当前加密方式,是否合理,是否不容易被破解掉。
接口测试
设计完用例就要进行接口测试了
测试工具 接口测试常见的工具有很多,像是postman,jmeter,loadrunner
postman简单使用,如果在postman中发送接口请求,需要设置请求方式,请求路径,请求头,请求参数这些。
postman中接口请求方式有很多,常用的就是get post put delete这些,有的人在使用post方式的时候经常出现报文格式的问题,其实这个也不难,只要了解了post常见报文格式的作用就不会出错了。
post有四种请求报文格式,分别是form-data 可以上传键值对文本数据及文件数据,,,常用在图文混传,例如评论; x-www-form-urlencoded 只是键值对,文本格式的数据,自动会添加Content-Type请求头,来指定请求参数的类型; raw 传递任意格式的文本数据 ,像text,json,xml,js,html,,,也会自动添加content-type请求头;还有 binary 只能上传二进制文件,具体使用哪种报文格式是由后台人员再写代码的时候确定的,一般用form-data和x-www这种比较多。
当然postman还有特有的功能,比如可以创建项目,分模块保存接口请求,还可以添加断言,在批量执行测试用例的时候自动判断接口是否通过。
总结
鉴于篇幅所限,无法给大家一一详细说明,只是说了个大概。接口测试是所有测试人必学必会必精的,如果你缺少系统性的接口测试资料的话,也可以评论区留言|“666”获取哦