博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口测试必备技能之入门到上手
阅读量:4969 次
发布时间:2019-06-12

本文共 1668 字,大约阅读时间需要 5 分钟。

一基础介绍:

  接口:

  API:应用程序编程接口(功能实现的接口)

  GUI:图形用户界面(前端调用的接口)

  DUBBO:远程调用接口(使用第三方接口,不占用服务器的资源)

  1、什么是接口测试

  特指脱离页面呈现,脱离页面调用是否正确,官方解释是主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。那测试的重点是要检查数据的交换、传递的正确性,参数检查、接口返回值是否正确,各接口间逻辑调用是否可以实现应用层功能

      2、接口测试的意义

     实现开发期并行测试,减少页面层测试的深度,缩短整个项目的测试周期,减少修改bug的成本,平台越复杂,系统越庞大,接口测试的效果越明显,也可以实现自动化持续集成,减少回归测试人力成本与时间

  3、接口测试的原理

   模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程
    
4、接口文档
   一般的企业,都会由开发或者对应的技术负责人员编写接口文档,里面会注明接口相关的地址、参数类型、方法、输入、输出等信息,理清里面有哪些逻辑功能,返回值,调用其他有依赖的关系(先后顺序)等等。①服务器名称、端口号;②接口名称、路径,接口的调用方式,常用的是GET和POST方式;③返回值说明;④参数说明,必填项
  
5、关于get和post请求方式的区别
  GET方式是从服务器获取数据,做数据查询;POST方式是向服务器传送数据,做数据添加、修改、删除等
  因为网上关于这两区别众说纷坛,那我之前看过某大佬写的这两关系让人一看就很明了,写得非常好,这边给个简单的阐述一下(也有好多人碰到过的面试题)
  
get和post本身无区别,其底层都是TCP链接,但在HTTP的规定和浏览器/服务器的限制,get产生一个数据包,post产生两个数据包。用get方式请求,浏览器会把HTTP header和date一并发送出去;用post方式请求,浏览器先发送header,服务响应100 continue,浏览器再发date出去,服务器响应回200(就是说我要送一批货,我先跑过去跟商家说嘿等下我要送货过来,你先打开门好接待我,然后又跑回去把那一车货运过来。。。),那因为post需要走两步,时间上看会消耗多一些,但在网络环境好的情况下发一次包或者两次根本是无区别,可以无视掉,但是如果网络差呢,有两次包的TCP在验证数据包的完整性就有非常大的优点了
 
二如何进行接口测试:
 1、先接口测试用例的编写,根据需求文档,且其覆盖率,编写要点如下:
  ①、测试每个参数类型(所谓等价类,中文、特殊符号等)不合法的情况下,类型不合法易遗漏null型
  ②、测试每个参数取值范围不合法的情况(边界值)
  ③、测试参数为空的情况下(必填项)
  ④、测试参数前后台定义的一致性
  ⑤、测试每个参数的上下限
    ⑥、若两个请求有严格的先后顺序时
 
  接口测哪些范围:

  接口测试的工具:

 

做接口测试的话我一般使用jmeter和postman,用postman做单接口测试,用jmeter做接口测试后捎带手也把性能也做了,如下图是用postman工具

 

     2、做接口测试必要知道的常见的HTTP状态码,具体的可百度查询

    1 

         2   

         3 

         4  

         5 

 

     3、常用的协议类型如OSI协议和TCP/IP协议

          OSI七层协议:应用层、表示层、会话层(面向用户)、传输层(TCP/UDP协议,设备是网关)、网络层(TCP/IP协议,设备是路由器)、数据链路层(数据通道,单位是帧)、物理层(传输介质,设备中继器、集线器如网卡、电缆)

   TCP/IP协议由网络层的IP协议和传输层的TCP协议组成,TCP连接需要握三次手,断开四次,TCP/IP协议需详细设置IP地址、网关和子网掩码。TCP/IP四层协议:应用层、传输层、网络层、网络接口层

 

转载于:https://www.cnblogs.com/hearbeat/p/9571696.html

你可能感兴趣的文章
ios 上架流程
查看>>
ajax连接池和XMLHttpRequest
查看>>
[Voice communications] 声音的滤波
查看>>
BZOJ.3139.[HNOI2013]比赛(搜索 Hash)
查看>>
json在线解析
查看>>
存储设备形成的层次结构
查看>>
源码阅读 - java.util.concurrent (三)ConcurrentHashMap
查看>>
Daily Scrum 10.30
查看>>
SQL语言之概述(一)
查看>>
数据库表 copy
查看>>
LinkedList源码解析
查看>>
SignalR循序渐进(一)简单的聊天程序
查看>>
MyServer
查看>>
Learning Cocos2d-x for XNA(2)——深入剖析Hello World
查看>>
软件建模——第9章 毕业论文管理系统—面向对象方法
查看>>
Http协议
查看>>
手机端web开发必备代码
查看>>
[SDOI2008]洞穴勘测
查看>>
NOI2014 购票
查看>>
Difference between Linearizability and Serializability
查看>>