找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
第13讲  接口fiddler


1、接口:
web端接口分为2中形式:
1)前端和后端之间的接口 表现在后端数据库中的数据需要展示在前端页面
2)后端和后端之间的接口对接


2、测试:
前端测试==》功能测试  ui 交互   页面  接口 ui自动化 性能
后端测试==》接口 数据库 数据库同步 服务器 ==》这些没有页面


3、开发把代码交给测试之前,开发需要进行接口联调(前端负责联调)==》自测
前端测试人员:测试接口是在sit1系统集成测试的时候
后端开发需要对自己的接口进行调通

4、接口测试分为:
手工测试:单个接口测试  ==》工具:jmeter  postman
接口自动化:多接口测试:jmeter  python java

5、网络协议tcp/ip
DNS:域名解析
我们的百度网址:http://www.baidu.com 可以访问百度
因为做了dns,把当前的请求分配给百度服务器n台,具体事那一台不清楚==》一个域名指向
对各ip


6、tcp/ip  五层
应用层:
http  =》超文本传输协议
telnet ==》远程登录
SMTP  ==》用来发邮件
dns  ==》域名解析

传输层:
tcp:链接协议(长连接)
比如登录qq,没断网情况下,一直保持登录状态,通过账号密码 和qq后台建立了长连接,不会掉线

udp:聊天信息很安全(群发)
微信基于tcp  又基于udp发送信息


7、面试题:tcp和udp的区别?【重要】
1)tcp面向连接,传输可靠,用于输出大量数据,速度慢,建立的连接需要开销多占用资源多
2)UDP:面向非连接,传输不可靠,用于传输少量数据,传输速度快


8、TCP/IP五层模型?【重要】
应用层:负责应用程序之间的沟通。网络编程主要针对的就是应用层。
                协议:
                http超文本传输协议,TFTP文
件传输,FTP文件传输,NFS域名解析,WALS网络通讯协议,SMTP邮件协议,Telnet远程登录协议
        传输层:负责两台主机之间的数据传输。
                协议:
                TCP面向链接协议, UDP用户数据包协议(加密协议)
        网络层:负责地址管理和路由选择。路由器工作在网络层。
        数据链路层:负责设备之间的数据帧的传输和识别。交换机工作在数据链路层。例如网卡设备的驱动,帧同步,冲突检测,数据差错校验等工作。
        物理层:负责光电信号传递方式。集线器工作在物理层。以太网协议。


9、常见网络协议和端口
部署bbs 论坛http   端口80   
https   端口443

面试题:http和https的区别?【重要】
1)https协议需要CA申请证书,一般需要费用
2)http超文本传输协议,信息是传输,https则是具有安全性ssl/tls加密解密传输协议
3)http 和https使用的连接方式不一样,前者端口80,后者端口443
4)http的连接很简单,无状态的https比较安全


10、建立连接的3次握手
客户端调用connect()函数,然后想服务器发送请求
SYN:请求同步包 请求服务器
ACK:确认同步包


11、4次挥手
FIN==finish  ==》结束的意思
close_wait1 ==》主动关闭一方
close_wait  ==》被动关闭一方
close()函数




12、接口测试流程
接口测试需求分析
接口测试需求评审
编写接口测试计划
编写接口测试用例
执行接口测试用例
发现bug提交禅道
编写总结测试报告

13、抓包工具fiddler
1)抓包原理
fiddler 是位于客户和服务器之间的http代理,可以设置断点
,修改请求数据和服务器返回的数据,fiddler启动后会自动将代理服务器
设置成本机,默认端口8888

2)ctrl+x 或者点击页面的x remove all 清空请求
result 结果
protocol  协议
host    主机名
url     网页地址
body    内容大小
caching  缓存
contnet-type   接口请求内容类型
process    请求所运行的程序
comments  注释
custom  自定义


接口四个组成部分
14、接口请求头包含了哪些信息?【重要】
请求url地址   请求方法(get post) 协议 host
        Accept:浏览器能够处理的内容类型
        Accept-Charset:浏览器能够显示的字符集
        Accept-Encoding:浏览器能够处理的压缩编码
        Accept-Language:浏览器当前设置的语言
        Connection:浏览器与服务器之间连接的类型
        Cookie:当前页面设置的任何Cookie
        Host:发出请求的页面所在的域
        Referer:发出请求的页面的URL
        User-Agent:浏览器的用户代理字符串
        【Content-Type】: application/x-www-form-urlencoded; charset=UTF-8
       
请求体:请求参数    userAccount=admin&loginPwd=123456

15、接口响应头包含了那些信息?
协议,版本,响应状态码  服务器
        Date:表示消息发送的时间,时间的描述格式由rfc822定义
        server:服务器名字。
        Connection:浏览器与服务器之间连接的类型
        content-type:表示后面的文档属于什么MIME类型
        Cache-Control:控制HTTP缓存
       
响应体信息:返回结果(返回的数据)


16、get 和post 请求 的区别?【重要】
【1】GET在浏览器回退时是无害的,而POST会再次提交请求。
(get是幂等的,执行多少遍不影响最终存储的结果。而post每次调用都会创建新的资源)
2. GET产生的URL地址可以被Bookmark,而POST不可以。
3. GET请求会被浏览器主动缓存,而POST不会,除非手动设置。
4. GET请求只能进行url编码,而POST支持多种编码方式。
【5.】 GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
【6.】 get方式提交数据的大小(一般来说1024字节),http协议并没有硬性限制,而是与浏览器、服务器、操作系统有关,而POST理论上来说没有大小限制,http协议规范也没有进行大小限制,但实际上post所能传递的数据量根据取决于服务器的设置和内存大小。
【7.】 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
【8.】 GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
【9.】 GET参数通过URL传递,POST放在Request body中
10、GET产生一个TCP数据包;POST产生两个TCP数据包
11、对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据
12、而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)
【13、】get一般是用来获取数据,post提交数据


17接口的请求方式有哪些?
    1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)
        2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改
        3、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
        4、Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
        5、Delete 请求服务器删除request-URL所标示的资源(请求服务器删除页面)
        6、opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送测试服务器功能(允许客户端查看服务器性能


18、1-5开头常见的状态码的意思?
    100 初始的请求已经接受,客户应当继续发送请求的其余部分。
        101 服务器将遵从客户的请求转换到另外一种协议
        200 - OK 一切正常,对GET和POST请求的应答文档跟在后面。
        201 服务器已经创建了文档,Location头给出了它的URL。
        202 已经接受请求,但处理尚未完成。
        203 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝,非权威性信息。
        204 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
        205 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。
        206 客户发送了一个带有Range头的GET请求,服务器完成了它
        300 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
        301 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
        302 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求 http://host/~user (缺少了后面的斜杠),有的服务器返回301,有的则返回302。严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见 307。
        303 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取。
        304 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
        305 客户请求的文档应该通过Location头所指明的代理服务器提取。
        307 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定
        400 服务器不理解的请求语法
        401 身份验证错误
        403 服务器拒绝请求
        404 未找到网页(最常见的了服务器状态)
        405 方法禁用
        406 不接受(无法使用请求的内容特性响应请求的网页)
        407 需要代理授权
        408 请求超时(服务器等待请求超时)
        500 服务器内部错误
        501 服务器不具备完成请求的功能
        502 错误网关
        503 服务器不可用(超载或者停机维护,暂停的状态)
        504 网关超时
        505 http版本不受支持(请求使用的http协议版本服务器不支持)


接口状态码(常见的状态码:200 400 401 403 404 500 501 503 )
2xx :表示接口请求成功,服务器有响应   200  201
3xx:表示重定向,访问的接口不存在但是重定向到其他地方去了
4xx:表示客户端有误,客户端请求url地址有误,请求资源不存在 400  401 403  404  
5xx:表示服务器错误,网关错误








分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册