zoukankan      html  css  js  c++  java
  • 接口自动化01接口基础

    什么是接口?
    服务 接口-对外提供的服务 一个服务就是一个接口80%基于htp协议的(http我给服务器一个请求服务器给我一个返回)

    还有一部分测试内部平行接口rpc

    还有一种是websocket这种实际通讯聊天接口 ,机器人,推送消息

    为什么测试接口???
    1.效率高 接口比页面的效率高 ,因为页面经常变动
    2.修改变动小-维护量低
    3.提前联调
    开发开发好接口你可以提前测试-提前测试提高后续测试的效率
    4.安全性问题,ui测试无法发现的问题

    什么是三层架构???

    第一层用于处理用户交互

    展示用户页面内容

    接收用户的数据

    前端页面第一层  

    中间是服务层    厨师  服务层大部分给前端页面用的  

    第三层是数据层  仓库 

    前端的多种形式???????

    app web 小程序   差别就是传参和加密的方式,手机的app是没有cookie 参数会在接口里带 

    什么是微服务?????

    服务层,服务端多层多个服务器部署服务叫微服务
    把一类服务放到一起叫中台,前提是服务器和服务太多了

    大的饭店很多厨师,一部分负责切菜一部分负责改刀  中台(把一类服务变成集群)

    服务和服务之间的沟通是内部接口,接口不是给前端用的 

    内部接口测试-rpc接口,外部包裹http层

    http基础????????????
    首先他在第七层 网络应用层

    和性能测试有关http连接的基础是先建立TCP链接

    举个例子不管你浏览器还是手机,

    1.想要通讯,底层先建立tcp链接,就叫三次握手上层发http请求

    三次握手??????

    当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答:

    首先很多人会先讲下握手的过程:

    1、第一次握手:客户端给服务器发送一个 SYN 报文。

    2、第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文。

    3、第三次握手:客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文。

    4、服务器收到 ACK 报文之后,三次握手建立完成。

    作用是为了确认双方的接收与发送能力是否正常。

    这里我顺便解释一下为啥只有三次握手才能确认双方的接受与发送能力是否正常,而两次却不可以:

    第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
    第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
    第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。

    2.只有你请求它,他才会返回 基本组成是一个请求和一个响应

    http请求主要分为??????

    请求行

    主要是地址和方法类型 比如http:///方法类型分为get和post ,put,delete  get 查  post 增加 put改 delete 删除

    get请求和post请求区别???

    比较灵活也可以用get 去增加但是get设计初衷就是查询的

    get缺点地址栏长度限制(250)

    get参数是可见的,不太安全

    post有正文体,Post和get区别就是post有正文,get没有 

    post请求参数可以放到地址栏也可以放到正文里比较灵活 

    请求头?????????????什么东西放到头里,请求头里都有什么内容???
    重要数据 key-value和业务逻辑不太相关 

    请求头有20多种我们只关注几种
    user-agent:操作系统,浏览器版本号
    referer 请求来源
    cookie: 身份和用户认证信息  http发请求自动把缓存带到这里
    content-type:正文格式 有中文会显示
    请求体也叫请求正文???????
    4种类型
    1.from表单 一般会问什么提交格式表单????正文什么格式?????????
    usernmae=11&pwd=111 发给服务器这个样子    url-encode 格式类型
    2.from-data= 文件 可以是类型 可以是文件和多个文件 也叫复合表单 比如:上传接口
    3.raw 自由格式--必须是纯文本内容 xml json txt
    4.二进制 每次只能上传一个文件
    from 和raw要在头信息里加一个说明 

     测试工具一般用psotman和jmeter????????

     代表post请求和get请求地址栏后面的参数

     自由纯文本格式,二进制只能传一个文件 

     下面学习下响应???????????????

    响应体????

    响应体 html  

    比如你访问百度返回这种就是一个接口

    还有就是一般就是respone json --js渲染  前后端分离   服务器给你返回数据 ,页面图片不管前端展示给前端开发 

    要不返回主页面html 要不返回json等格式数据 

    响应状态码?????????

    响应状态码 200ok
    300 重定向 访问资源改地方了
    301 永久重定向
    302 临时重定向   例子你用http访问百度会自动指向https访问 

    网站分为主站好分站,给你个分站地址给你去访问,重定向
    登录后,登录接口地址变了 302 验证用户名和密码是否正确
    正确:回到首页 看location接请求地址 到首页
    错误:
    307 不能保证都用https访问把新地址给你,自动请求
    最少包含两次请求地址

    例子:jumei.com 先访问302 在访问307  

    location:新的地址
    301 302 307 永久 临时 高级临时

    响应头????????????

    set-cookie  主要用来判断前面的接口有没有校验成功 

    你访问别的页面,也会带着这个set-cookie去走  

    常见的登录验证有两种???????

    1.第一种,你点击登录按钮,会有一个接口去验证用户名正确还得提供新地址,查库或者验证,成功后返回里面带set-cookie_did 和locaton地址会返回一个地址重定向让你跳转,带上你的返回cookie 

    失败也会返回一个状态

    2.第二种  验证用户名密码,你点击登录按钮,请求另外一个接口验证用户名密码正确不正确返回token和code 返回你一个json格式,不正确返回一个错误,

    这个接口页面不可见抓包可以看到 

    如果登录成功的地址跳转改了,第二种不需要改了,第一种需要改 

    第一种就是前后端不分离

    第二种就是前后端分离的

    在学习网页设计的时候都应该知道状态码,但我们常见的状态码都是200,404,下面介绍其他的状态值


    1开头的http状态码
    表示临时响应并需要请求者继续执行操作的状态代码。

    100   (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。  
    101   (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

    2开头的http状态码
    表示请求成功

    200     成功处理了请求,一般情况下都是返回此状态码; 
    201     请求成功并且服务器创建了新的资源。 
    202     接受请求但没创建资源; 
    203     返回另一资源的请求; 
    204     服务器成功处理了请求,但没有返回任何内容;
    205     服务器成功处理了请求,但没有返回任何内容;
    206     处理部分请求;

    3xx (重定向) 
    重定向代码,也是常见的代码

    300   (多种选择)  针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 
    301   (永久移动)  请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 
    302   (临时移动)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 
    303   (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 
    304   (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 
    305   (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 
    307   (临时重定向)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。


    4开头的http状态码表示请求出错
     
    400    服务器不理解请求的语法。 
    401   请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 
    403   服务器拒绝请求。 
    404   服务器找不到请求的网页。 
    405   禁用请求中指定的方法。 
    406   无法使用请求的内容特性响应请求的网页。 
    407   此状态代码与 401类似,但指定请求者应当授权使用代理。 
    408   服务器等候请求时发生超时。 
    409   服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 
    410   如果请求的资源已永久删除,服务器就会返回此响应。 
    411   服务器不接受不含有效内容长度标头字段的请求。 
    412   服务器未满足请求者在请求中设置的其中一个前提条件。 
    413   服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 
    414   请求的 URI(通常为网址)过长,服务器无法处理。 
    415   请求的格式不受请求页面的支持。 
    416   如果页面无法提供请求的范围,则服务器会返回此状态代码。 
    417   服务器未满足”期望”请求标头字段的要求。


    5开头状态码并不常见,但是我们应该知道

    500   (服务器内部错误)  服务器遇到错误,无法完成请求。 
    501   (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 
    502   (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 
    503   (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 
    504   (网关超时)  服务器作为网关或代理,但是没有及时从上游服务器收到请求。 
    505   (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

  • 相关阅读:
    时光流年(4)向往
    Vue.js入门(9)组件插槽
    时光流年(3)古韵
    Java面试题(12)哈希表
    Java面试题(11)Java中hashCode方法的作用
    Java面试题(10)Java中==、equals()、compareTo()的区别
    Java MyBatis-Plus(1)
    Vue.js入门(8)watch、computed和methods之间的区别
    Java面试题(9)常用工具
    Java MyBatis3(11)逆向工程--MyBatis Generator
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/15374695.html
Copyright © 2011-2022 走看看