如何做好接口测试?
1. 首先,什么是接口?
接口无非有两种,一种是内部接口,一种调用对外包装的接口
内部接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,例如下订单,首先你需要登录,然后调用下订单接口,两个模块有交互那么相互之间的调用,就属于内部接口
对外包装的接口:例如A部门做一个买车服务,它卖两种车一是二手,二是新车,那么它要卖二手车,是不是直接可以调用二手车部门共享的数据进行包装,从而是不是达到数据的共享等等,就不一一举例子.
2. 常用接口采用方式:
1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;
2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和
post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;
3. https并非是应用层的一种新协议,只是http通信接口部分用SSL(Secure socket Layer)和TLS(Transport Layer Security)协议代替而已
那么上述1,2,3
webService:返回的格式xml还需要解析麻烦,而且速度可能有降低(目前开发平台等都使用的http(get/post实现的)
http协议时超文本传输协议(不安全)
https是安全的超文本传输协议,是安全版的http协议,使用安全套接字层(SSL)进行信息交换。
https协议主要针对解决http协议以下不足:
1.通信使用明文(不加密),内容可能会被窃听
2.不验证通信方身份,应此可能遭遇伪装
3.无法证明报文的完整性(即准确性),所以可能已遭篡改
综上所述:目前我们看到的接口测试.,相信大家用的https、http多一些
4. 前端和后端
前端:app,网页统称前端(展示-负责貌美如花)
后端: 后台提供数据,校验,下订单等等处理(负责挣钱养家)
5. 接口测试概念
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等(通俗来说就是,检查业务逻辑是否满足业务需求,校验字段是否正常你实际结果是否满足预期)
6. 接口的组成:
a、接口说明
b、调用url
c、请求方法(get\post)
d、请求参数、参数类型、请求参数说明
e、返回参数说明
7. 为什么要做接口测试,接口测试的目标
接口其实app和前端交互用的,所以好多人问,为啥做功能测试还要测接口,目标是啥不是多此一举吗?首先我告诉大家,这种想法是错误的
那么举一个例子:
例如一个登陆接口,例如产品上规定用户名6-10个字符数字下划线,但后端没做判断。但我们业务人员测试肯定验证,但只是前端做了校验,后端压根就忘了这个小需求.那么后果来了如果一个懂的直接抓包去篡改你的接口,然后绕过校验,通过sql注入直接随意登录。如果你这是一个下单业务,是不是给公司造成了很大损失
所以此时此刻接口测试目标来了:
1.可能发现客户端没有发现的bug(那么也叫隐藏bug)
2.及早爆出风险(保证质量正常上线)
3.接口稳定了,前端随便改
4.最重要检查系统安全性,稳定性
8.常常有人问我怎么测
1.无非就两种get/post工具postman/httprequest等
2.状态吗你至少了解
例如:200(成功)/300(重定向别的地方)/400(请求语法错误)/500(服务器异常)
怎么测:
A. 用例设计(根据业务逻辑来设计用例,登录5次,需要2分钟后再登录删除关注的车,列表少一条数据)
B. 参数组合(传入不同值)
C. 接口安全(绕过验证/绕过身份验证/参数是否加密等)
D. 异常验证(输入异常参数边界值)
8. 用什么工具测
功能:Postman/HTTPrequest/jemter
自动化:restassured/python httprequest