接口就是一个方法,是提供系统与系统间,程序与程序间的交互的一个功能
接口的划分
1.API接口:
最长见的一种接口,webdriver api appium jdk
2.GUI接口:
通过图形的操作来获取响应应用数据的接口
3.公共api接口
一个api接口被大量的其他应用所调用,这时候可以将其部署韦一个独立的接口系统,功能上提供对应的接口数据,这个接口就是公共api接口。
接口测试的类型划分
1.http接口
这是最常见的一种,没有固定的风格,一般就是以两种方式为主(get、post请求方式)。
get:从服务器端获取数据
post:对服务器端数据进行增删改
比如有一个接口,是学生信息管理的接口:
http://10.12.22.12:80/student/index.html?a=select
— 就可以get请求来实现
http://10.12.22.12:80/student/index.html?a=submit
— 就是以post请求来实现
2、Restful接口(风格)– 和http一样
叫做状态转移接口,是一种设计风格,在使用上和http区别不大,但是要以不同的方法以动词的形式来表示接口,以名词表示路径,以动词表示请求的功能。
比如有一个接口,是学生信息管理的接口,:
http://10.12.22.12:80/student/information/selectInfo
–可以用get请求实现
http://10.12.22.12:80/student/information/updateInfo –可以用put请求实现
http://10.12.22.12:80/student/information/deleteInfo –可以用delete请求实现
http://10.12.22.12:80/student/information/insertInfo –可以用post请求实现
3.Soapservice接口
基于http协议的soap接口,通过部署service系统之后,可以导出一个xml的文件(包括接口及接口的所有参数),基于这个文件进行接口用例的设计和执行了。常用的工具soapui。
三、接口测试
对接口方法所提供的功能,安全,性能等的测试过程,就是接口测试,是一个独立的测试类型
1.做接口测试的必要性:
减少测试用例的数量
提升测试执行的效率
接口自动化稳定性更好,相比于功能测试
独立的测试类型,包括接口的功能,安全,性能测试等
2.通过接口实现前后端分离式开发
3.接口测试的好处:
可以发现前端页面不能发现的问题
检查系统对异常处理的能力
通过接口测试,可以保证后端接口的功能,安全性和性能满足需求
接口更容易实现自动化,接口完成后,出现问题,大部分都在前端
如何区分是前端bug还是后端bug
出现bug的原因分为3类
1.数据库层面的
设计数据库时候,设计不合理,导致调用数据库错误
2.网络层面的
网络问题,代码加载不出来,等性能相关的bug,建议提出一些优化类型的bug
3.代码层面的
界面显示问题,前端的bug
对于数据或者逻辑上的问题,则需要检查接口进行数据的抓包 ,进行分析
请求未返回的数据,可能为client(客户端)请求数据错误,可能是server端(服务器端)处理错误
请求返回错误数据,就是server端处理错误。
前端bug主要分为3个类别:HTML,CSS,Javascript 三类问题:
一)出现文本的问题基本都是html的bug
二)出现样式的问题基本都是CSS的bug
三)出现交互类的问题基本都是Javascript的bug
如何查看日志(tail -f)?
一台服务器可以部署多个应用:
cd usr/local/测试服务器名称/logs//查看先进入到服务器的logs目录下
tail -f catalina.out//监视catalina.out 文件的尾部内容(默认10行)
三)判断是否为Javascript处产生的缺陷
a) 最直接的判断方法,刷新页面,出现滞后显示的一些模块基本都为脚本的输出块。该部分的一些问题可以参照兼容型 bug 中类别的 脚本兼容型bug。
b) 有产生交互类的问题,大多数都可以定位到是属于javascript产生的问题,该部分大多不会报错
c) 有如下错误提示类的都属于javascript的bug:
页面左下方有出现javascript的错误提示;
有弹出错误信息提示的bug;
浏览器返回的一些错误弹出框。
接口测试的类型
接口测试是一个完整的测试体系,包括下面的集中测试类型
功能测试:包括场景(业务),边界值测试,参数组合测试等
性能测试:响应时间,并发,服务器利用率,吞吐量
安全性:sql注入,敏感信息加密等
怎样展开接口测试
接口测试就是模拟浏览器打包http请求的过程。需要把打包的http的信息提取出来(http请求的报文)
!接口的URL地址
!请求方式(get post put head delete等)
!参数
!头部字段
打包好发送请求,发送该请求即可获取响应结果
关于接口文档的阅读
接口的功能表述,接口实现的功能
请求的url地址(必要)
请求方式:get:从服务器端获取数据 post :对服务器数据进行增删改查
请求的头部
请求的参数
请求的数据
将这些数据组合情况打包好,进行访问
2、百度通用翻译
接口的URL地址:https://fanyi-api.baidu.com/api/trans/vip/translate
请求方法:get
参数:
q:要查询的字符串,比如apple,要求是utf-8
from:原语言,可以是auto,或则指定为en、zh、jp、kor、yue
to:目标语言,不可以是auto,必须指定翻译为什么语言,为en、zh、jp、kor、yue
appid:你的开发者账号,APP ID:20190630000313415,密钥:IL7VipagQVFGKlo8XMIr
salt:随机数,888888
sign:签名,主要是鉴权,appid+q+salt+密钥组成的一个字符串,并对这个字符串进行md5加密
20190630000313415apple888888IL7VipagQVFGKlo8XMIr
md5加密获取32小写的加密字符串:a9adc2d687fbacecc3b5059b9ccedc95
拼接http请求(get):
检查结果是否符合预期即可。