接口测试基础知识

(1)什么是接口测试

接口测试是测试系统组件间接口的一种测试php

接口测试主要用于检测系统内部各个子系统之间外部系统与系统之间的交互。html

测试的重点是检查数据交换传递控制管理的过程,以及系统间相互逻辑依赖关系等。前端

通俗来讲接口测试就是接口提供方、接口调用方之间的交互,及逻辑处理的测试。python

数据交换:注册
数据传递:将注册数据传递到服务器,调用程序,执行数据库sql语句,往数据表中插入数据
控制管理:在程序中设置字段的长度
系统间相互逻辑依赖关系:注册成功以后调用登陆进行登陆;共享充电宝是否收取押金依赖芝麻信用分

接口:
1. GUI:图形用户界面,并非接口测试的重点。
2. API:应用程序接口,接口测试的主要对象。API专门用来提供给其余系统进行调用的程序接口。

Browser/Server、Client/Server架构必然须要前端和服务器进行交互,接口就是它们交互的枢纽。程序员

其本质就是前台发送一个request(请求)报文给服务器,而后服务器响应返回一个response(响应)报文。咱们对response报文进行分析,判断是否和咱们的预期一致,从而检验业务是否正确实现。web

经过输入看输出

模拟实际场景(服务架构(Java、Python、php)、数据场景(CRUD)、业务场景),对接口进行模拟调用,验证其响应性能、输出结果、异常处理等测试点。面试

HTTP接口测试知识点:sql

考试系统网址:http://182.92.178.83:8088/student/index.html#/login数据库

Request URL(请求地址)json

URL形式: http[s]://host[:port][abs_path][parameter]
好比: http://182.92.178.83:8088/api/student/user/register

Request Headers(请求头):头信息,包含了报文的描述信息

Accept(接收形式): application/json, text/plain, */*
Content-Type(提交形式): application/json
Cookie: JSESSIONID=C68ED1A8DA1A3B2CDACC5612F158467D

# Content-Type的几种形式:
- form-data
- application/x-www-form-urlencoded
- application/json	
  好比:{"username":"ctt","password":"123456",age:21,"a":[{"b":123},{"c":456}]}

Request Method(提交方法): GET/POST DELETE/PUT

GET: 获取服务器信息的一些操做。通常用于获取数据
好比:
Request URL: http://182.92.178.83:8081/article/all?state=-1&page=1&count=6&keywords=
Request Method: GET
PS:直接在url后面链接参数,url有长度限制。

POST: 一些提交等操做。通常用于提交数据,注册、上传文件。

DELETE: 通常用于删除操做(物理删除)
好比:
Request URL: http://182.92.178.83:8081/admin/category/56
Request Method: DELETE

PUT: 跟post功能一致,可是有一个对等加密的过程,好比两人同时提交就会对比谁先提交,执行先提交的那个操做,后提交的不作处理。好比逻辑删除。(逻辑删除:好比将state=0)
好比:
Request URL: http://182.92.178.83:8081/article/dustbin
Request Method: PUT

这四种形式不管用哪种都能实现对数据库的增删改查,那么为何会分四种呢,它更像是一种约定。

(面试题)get和post的区别❓

  1. 传参方式不一样,get是经过url?后面去传参的,post是在请求体里面传参。
  2. 有些约定里面,get更多的是作获取信息的操做,post更多的是作提交信息的一些操做。

Request Parameters(请求参数)

Status Code(响应状态码)

200(服务器响应成功) 
404(找不到路径)
500(服务器内部错误)

Response(响应信息)

(2)为何要进行接口测试

接口测试相对于UI来讲,更加稳定;

也能够说接口测试是一种特殊的单元测试;

当一个系统提供了大量的后台服务,有较少或者基本没有页面操做,比较适合开展接口测试;例如:某个系统大概有100多个对外的接口,每次上线,测试人员不得不一个一个验证,此时若是开展自动化,将大大提升回归的效率和测试的覆盖率。

为何接口比UI更加稳定:若是接口响应信息都变了,UI也须要变。

🐒先后端分离,一个接口给多个端使用(web端、app端)

🐷何时作接口测试?

  1. 有大量用户的时候,前端页面限制了可是没有限制完。

(3)怎样作接口测试

  1. 方式一:先拿到接口测试规范文档,再去作接口测试。
  2. 方式二:抓包(浏览器F十二、Charles、fiddler)。
1.接口测试在工做中的流程
  1. 准备阶段(20%)

    拿到开发的接口文档,并理解每一个接口的参数及含义;

    了解被测系统的业务流程。

  2. 编写接口测试用例、执行阶段(70%)

    测试用例/测试场景执行

    测试数据/系统数据收集

  3. 分析阶段(5%)

    数据汇总/日志分析

    测试报告

2.接口测试规范文档

接口功能

URL

支持格式

HTTP请求方式

请求参数

🔑为提升接口测试效率,及TDD(测试驱动开发)模式,前期咱们须要推进开发规范,接口说明文档。

3.如何获取接口(Charles、fiddler)

抓包工具Charles、fiddler,web端浏览器的F12。

(4)接口测试用例的设计

接口测试用例编写要点:

  1. 测试每一个参数类型不合法的状况。
  2. 测试每一个参数取值范围不合法的状况。
  3. 测试参数为空的状况。
  4. 测试参数先后台定义的一致性。
  5. 测试每一个参数的上下限(这里容易出致命的BUG,若是程序员处理不当,可能致使崩溃)。
  6. 测试每一个参数取值不合理的状况(包括取的值不属于本身,取值在这阶段不会出现,取值超出了本身所谓的数量或者范围)。
  7. 若是两个请求有严格的前后顺序,须要测试调转顺序的状况。

(5)接口测试的流程规范(团队中)

  1. 与产品、开发一块儿梳理需求,肯定实现哪些接口和功能。
  2. 编写测试计划(开发人员预估时间、风险预估及解决时间,测试人员用例准备、数据准备、环境准备、与开发产品协调测试时间等)
  3. 测试计划review。请各部门再进行沟通,肯定最终计划。
  4. 编写用例及自动化脚本。
  5. 用例review(以该用例为最终验证的用例)。
  6. 执行测试,提交bug,验证bug。
  7. 测试总结(包括测试过程、开发过程遇到的问题、解决问题、小组内讨论之后遇到这种问题如何能够处理更快、对本身启发)
相关文章
相关标签/搜索