举例:http://192.168.111.83:55999/demotest/logon.do
接口常见术语
IP(192.168.111.83):相当于具体地址,如国贸大厦
端口(55999):相当于详细到房间号,如3楼607,端口号和应用服务是一对一的关系
-暴露出来的端口号
-端口号默认80
接口:提供一方就是接口,提供服务的功能就是一个接口
如http://192.168.111.83:55999/demotest/logon.do就是一个登录接口
*内部接口:系统内部与内部模块之间的调用
如支付宝登录成功后跳到主页,登录接口(内部接口)
如京东宝贝详情和支付页面,都是两个不同的子系统
外部接口:完全不同公司不同系统之间的调用
如某电商平台调用支付宝支付,此时电商的支付接口就是外部接口
如短信/天气预报接口,微信提供微信支付的接口给外部用,此时微信测试工程师就要测自
己的接口是否能被正常调用
IP/端口/物理机的联系:
一个IP可以有多个端口(多个服务)
一个端口就是一个服务(软件),如tomcat服务
一个服务器(硬件物理机)可以有多个服务多个端口
Http请求
一个完整http请求包含了一个请求行、请求头、请求体(post才有)
请求行
包含了请求方式、资源名称、协议版本号
请求方式:客户端和服务器之间的请求的方式,最常用get和post ,还有put/delete(用的少)
get:从服务器获取数据
post:向服务器提交数据
get&post区别
1.get参数位置附在url中,post在请求体中
2.get可被缓存,post无法缓存
3.get参数有长度限制,而post无限制
4.业务角度:get静态页面多,post如提交表单等处理敏感数据
5.安全性:post安全性更高,get安全性低
请求头
描述了请求的客户端的环境信息,配置信息,cookie/token、文本压缩方式等,一般键值对方式呈现
Accept:text/html,image/*
text表示文本文件,html表示文本文件当中的一个类型
,还有js,prope…xml,css,txt 等等都算test的一种,Image
表示图片,/*表示所有类型图片,包括jpg等
Accept-language:zh-cn
浏览器自带的,可手动改
referer
来自哪个页面的,防盗链
其他常见参数
*token
*cookie
一个cookie可以同时带有有多个不同的参数,cookie刚开
始是从服务器放到浏览器,下次发送请求带上cookie
到请求头里面
-如果这个浏览器保存A,换一个浏览器cookie信息保存
的是B,AB值一般不相同,个人数据(如jsessionid)相同
而共性数据是相同的
*content-type
post请求时必须有,用来表明请求体什么类型格式进行编码的,国际已定好对照表
如下图所以,Content-Type说明此时请求体为键值对格式
content-length:请求字节长度
请求体
背景:参数放在请求头时有个数限制且安全性不高
三种格式:application/json application/x-www-form-urlencoded Application/xml
*json
一个json对象:{"":"", “”:""…} -最小单元:键值对
多个json对象即一个json数组:[{},{}…]
一个json数组又可被一个上层嵌套:{"":[]}…
json对象:{ “pName“:苹果,“price”:“128”,“origin”:”xinjiang”}
多个json: [ {“pName“:菠萝,“price”:“256”,“origin”:”gd”},
{“pName“:菠萝,“price”:“256”,“origin”:”gd”} ]
一个json数组被上一层嵌套:{ “fruit”:[{"":"",…},{"":"",…}]}
注意,测试无需关注json如何产生
urlencoded
具体格式和parmes一样(键值对)
xml
用的少
Http响应
状态行
通常为HTTP/1.1
状态码
响应行返回的三个数字的号码,告诉客户端请求成功与否,或者是否转发
举例: HTTP/1/1 200 OK
2XX:最常见的200,请求成功
注意:200只是通讯的成功,业务是否成功不一定
3XX:重定向,301/302
最常见302,暂时性重定向
304,之前响应参数:last_modified:AAA.AA.A ;
现在发送请求:if-modified-since: BBB.BB.B
4XX:客户端请求错误
最常见404:资源不在(服务器资源已移除)或者路径写错了(客户端操作问题)
400 bad request:接口测试如果API参数必须提供而未提供时(比较多见)
401:未登录情况下请求接口时出现,客户端需要鉴权登录(用的少)
403:没有权限访问一些资源,也需要授权才能访问
5XX:服务器错误
测试遇见5XX,基本可以直接提严重Bug了
502:nginx配置不对时出现
响应头
location
跳转地址,一般用于重定向(301/302)指向的地址,客户
端会根据这个返回地址请求对应地址
set-cookies
Server
服务器的型号
Content-Type:数据类型
… 常见响应头遇到使用时候再具体百度了解即可
Transfer-encoding
chunked 这个请求太大了,分块传输
cache-control
no-cache 完全不需要缓存,每次重新加
载页面(强制每次请求直接发送给源服务器,而不经
过本地缓存版本的校验)
private新打开的浏览器地址栏输入时第一次重新
加载(就是说浏览器刚打开时就用最新的,后续用缓
存即可),之后直接从缓存中读取
max-age=X X秒后缓存失效,由这个参数决定是否做
缓存!
expires
缓存过期时间,作用在再新打开的页面,和cache-control参
数共同完成缓存的控制
响应体
一般是json/xml格式,状态码200/204时通常不存在