接口(API)基础
什么是接口
客户端和服务端之间会发生数据交换
客户端:前端, --网页,浏览器,app,手表--能够显示相关页面
服务端:后端,--提供客户端需要的数据--网页的内容,头像等,都是数据,从服务端传给客户端
服务端通过接口(api),把数据传送到客户端
在页面中点击之后,会发送很多请求,这些就是接口,每个接口都有响应的数据,如,请求头,响应头
数据里面包含了host名称 请求方法等
接口定义规则,可以在接口文档查看
-访问地址--接口地址
-请求方法--GET/POST
-请求参数--要访问该地址需要传递的参数
什么是接口测试
请求一个接口时,会得到响应数据,测试实际的响应数据,是否跟预期的响应数据相同
登录接口,需要输入用户名和密码,预期结果是登录成功
测试接口的返回数据是否和预期一致.可以通过浏览器,postman,Jmeter和soupUI等接口测试工具,也可以通过代码访问
HTTP协议
接口需要使用协议才能完成传输过程,最广泛使用的协议是HTTP协议,是用于传输HTML的应用层协议,遵循客户端--服务端模型(C/S软件架构)
用户通过客户端访问某个url地址,发送请求给服务器,服务器接收请求后,解析请求数据,给客户端返回响应数据
C/S软件架构
-Client(客户端)/Server(服务端), 与之相反的是P2P架构,每台电脑都是客户端和服务端
-Browser(浏览器)/Server(服务端),针对网页
http请求
URL--统一资源定位符,也被称为web地址
?后面是查询参数 ,GET方法需要输入
#后面是锚点, 在一个页面里点击之后会跳转到该页面的某个位置
用postman访问URL
响应结果
请求方法
-GET 请求指定的资源,使用GET的请求应该只用于获取数据
-POST 发送数据给服务器,创建或者更新资源 比如:注册app账号
-PUT 创建或者替换目标资源 比如:修改用户名
-PATCH,用于对资源进行部分修改
-DELETE,删除资源
具体来说,一个接口支持哪种请求方法,找后端开发工程师或者接口文档
GET请求和POST请求的区别
Get 请求参数:
-URL:可以传入参数 格式:?name=sf&pwd=fwe
-请求头(Headers):可以发送参数
-请求体(Body):不能发送参数
Post 请求参数:
-URL能传入参数 格式:?name=sf&pwd=fwe
-请求头(Headers)
-请求体(Body)
请求头
Content-Type:数据传输的格式--在请求体中传入,请求头中显示
-常用格式
JSON
在请求体以JSON格式传入参数,请求头会自动修改content-type的值
响应结果
Form表单
在请求体以form表单的形式传入参数,请求头content-type的值会自动修改
响应结果
Content-Type数据在postman中可以自动修改,在python中需要手动去定义
HTTP响应
响应状态码
-1** 信息,服务器收到请求,需要请求者继续执行操作
-2** 成功,操作被成功接收并处理
-3** 重定向,跳转网页
-4** 客户端错误,请求包含语法错误或者无法完成请求
-5** 服务器错误,服务器在处理请求的过程中发生错误
响应头
Set-Cookie
表示服务端返回给客户端一个Cookie信息,当客户端接收后,会直接把数据保存到浏览器本地,下次再访问服务器的时候,会把Cookie数据自动传入服务器
访问当前页面时候,服务端返回客户端的Cookie信息
所以有时候访问网页,会自动输入用户名和密码