接口就是一个方法,是提供系统与系统间,程序与程序间的交互的一个功能
这是最常见的一种,没有固定的风格,一般就是以两种方式为主(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请求来实现
叫做状态转移接口,是一种设计风格,在使用上和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请求实现
基于http协议的soap接口,通过部署service系统之后,可以导出一个xml的文件(包括接口及接口的所有参数),基于这个文件进行接口用例的设计和执行了。常用的工具soapui。
对接口方法所提供的功能,安全,性能等的测试过程,就是接口测试,是一个独立的测试类型
减少测试用例的数量
提升测试执行的效率
接口自动化稳定性更好,相比于功能测试
独立的测试类型,包括接口的功能,安全,性能测试等
可以发现前端页面不能发现的问题
检查系统对异常处理的能力
通过接口测试,可以保证后端接口的功能,安全性和性能满足需求
接口更容易实现自动化,接口完成后,出现问题,大部分都在前端
1.数据库层面的
设计数据库时候,设计不合理,导致调用数据库错误
网络问题,代码加载不出来,等性能相关的bug,建议提出一些优化类型的bug
界面显示问题,前端的bug
对于数据或者逻辑上的问题,则需要检查接口进行数据的抓包 ,进行分析
请求未返回的数据,可能为client(客户端)请求数据错误,可能是server端(服务器端)处理错误
请求返回错误数据,就是server端处理错误。
一)出现文本的问题基本都是html的bug
二)出现样式的问题基本都是CSS的bug
三)出现交互类的问题基本都是Javascript的bug
一台服务器可以部署多个应用:
cd usr/local/测试服务器名称/logs//查看先进入到服务器的logs目录下
tail -f catalina.out//监视catalina.out 文件的尾部内容(默认10行)
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):
https://fanyi-api.baidu.com/api/trans/vip/translate?q=apple&from=auto&to=zh&appid=20190630000313415&salt=888888&sign=a9adc2d687fbacecc3b5059b9ccedc95
检查结果是否符合预期即可。