【测试】接口测试理论

方法 描述
GET 向服务器请求数据,获取资源。没有请求体。
POST 向指定资源提交数据,请求服务器进行处理。数据被包含在请求体中。
PUT 向指定资源上传最新数据,取代原有数据。数据被包含在请求体中。
DELETE 请求服务器删除指定的信息。没有请求体。
接口测试

  1. 课程目标
    掌握接口和接口测试的概念
    理解如何开展接口测试
    掌握接口测试的方法
  2. 接口的介绍
    接口功能:实现两个或多个独立系统或模块间的通信和数据交换能力
    2.1 接口类型
    GUI 接口 图形用户界面 人和程序的接口
    API 接口 应用程序编程接口 程序和程序的接口
    2.2 Web 接口类型
    2.2.1 HttpService 接口
    简称 HTTP 接口,通过 HTTP 协议的各种方法(如 GET/POST)得到数据,返回结果一般是 JSON 格式
    HTTP 协议 请求 Request
    由客户端发送给服务器端
    HTTP 协议 响应 Response
    由服务器端返回给客户端
    正常的响应 状态码 1XX 2XX 3XX
    异常的响应 状态码 4XX 5XX
    常见的状态码
    状态码 英文名称 中文描述
    200 OK 请求成功
    201 Created 已创建
    202 Accepted 已接受
    204 No Content 无内容
    301 Moved Permanently 永久移动
    302 Moved Temporarily 临时移动
    400 Bad Request 客户端请求的语法错误,服务器无法理解
    401 Unauthorized 请求要求用户的身份认证
    403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
    404 Not Found 服务器无法根据客户端的请求找到资源
    500 Internal Server Error 服务器内部错误,无法完成请求
    JSON JS 对象标记,是一种轻量级的数据交换格式
    JSON 格式数据
    HTTP 接口请求的组成
    REST 接口
    REST 全称 RESTful,提供了一组客户端和服务器交互的规则。
    基本规则:URL 定位资源,用 HTTP 动词( GET/POST/PUT/DELETE )描述操作
    {
    “sites”: [
    { “name”:“测试” , “url”:“www.51testing.com” },
    { “name”:“百度” , “url”:“www.baidu.com” },
    { “name”:“CSDN” , “url”:“www.csdn.net” }
    ]
    }
    http://api.abc.com:8080/light?option=open
    1 请求协议 http
    2 主机 api.abc.com
    3 端口号 8080
    4 接口地址 light
    5 接口参数 option
    6 参数值 open
    2.2.2 WebService 接口
    通过 SOAP 协议得到数据,相比 HttpService 能处理更加复杂的数据类型,请求报文和返回报文都是
    XML 格式
  3. 接口测试的介绍
    3.1 为什么要做接口测试
    尽早进行集成测试,暴露缺陷
    解决系统测试复杂度
    屏蔽用户界面层的不稳定性
    检查系统安全性,稳定性
    接口稳定后前端页面可以修改,减少缺陷的产生
    3.2 接口测试的原理
    模拟客户端向服务器发送请求报文
    服务器接收请求报文并处理向客户端返回应答
    客户端接收应答
    3.3 接口测试关注点
    关注在系统架构的业务逻辑层,不注重用户界面操作或用户感观
    检查数据的交换,传递和控制管理过程
    注重系统间的相互逻辑关系调用
    3.4 接口测试和 UI 测试的关系
    UI 的操作实际上就是用另一种方式调用接口,接口的参数组合要求 UI 用例构造对应的操作进行调

    UI 操作所需要的数据可以用接口来生成
    接口测试可以保证数据和逻辑的准确性, UI 测试需要考虑交互和界面展示的逻辑正确性
    UI 测试需要重视接口调用不成功或者接口异常情况下 UI 的呈现方式和用户体验
    接口测试在 UI 测试之前执行
  4. 如何开展接口测试
    当用 GET 方式时,只用来获取数据,成功了返回 HTTP 状态码 200
    当用 POST 方式时,只用来创建数据,成功了返回 HTTP 状态码 201
    当用 PUT 方式时,只用来修改更新数据,成功了返回 HTTP 状态码 202
    当用 DELETE 方式时,只用来删除数据,成功了返回 HTTP 状态码 204
    当请求发送失败,返回 HTTP 状态码 400
    GET http://api.abc.com/tasks 获取所有任务信息
    POST http://api.abc.com/tasks?id=1 创建 id 为1 的一个新任务
    GET http://api.abc.com/tasks?id=1 获取 id 为 1 的任务信息
    PUT http://api.abc.com/tasks?id=1 更新 id 为 1 的任务
    DELETE http://api.abc.com/tasks?id=1 删除 id 为 1 的任务
    举例:
    老的方式:http://127.0.0.1:8080/springmvc/book?action=delete&id=1
    rest方式:http://127.0.0.1:8080/springmvc/book/1 请求方式是DELETE
    4.1 接口测试的三种形式
    手动测试 Fiddler、Postman
    自动化测试 编程实现、自己开发工具
    性能测试 LoadRunner、Jmeter
    4.2 接口测试流程
    找开发或测试主管索要接口说明文档
    熟悉业务,计划,方案,设计测试用例,准备测试数据
    根据接口说明文档开发接口测试脚本,执行脚本
    4.3 接口文档
    接口说明
    请求方式
    请求地址
    请求参数,参数类型,请求参数说明
    返回参数说明
    返回示例
  5. 接口测试的方法
    5.1 接口功能测试点
    5.1.1 接口可用性
  6. 接口是否可用 正确地址协议方法可以访问接口
  7. 接口是否存在 正确协议方法错误接口地址无法访问
    http://rest.amap.co/v3/ip?ip=223.4.72.2&key=f4cf14aca974dfbb0501c582ce3fce77
  8. 接口协议类型 错误协议方法正确接口地址无法访问
    5.1.2 输入参数测试
    必填参数
    基本思路 单个输入等价类,边界值,输入域。组合输入判定表。
  9. 参数个数,参数名,参数值和接口文档一致 返回正确的数据
    检查点
    参数对应的接口功能实现
    输出参数个数,参数名,参数值和接口文档一致
    检查方式
    可以通过与后台数据库数据比较来进行检查
    http://restapi.amap.com/v3/ip?
    ip=223.4.72.2&key=f4cf14aca974dfbb0501c582ce3fce77
    ftp://restapi.amap.com/v3/ip?
    ip=223.4.72.2&key=f4cf14aca974dfbb0501c582ce3fce77
    http://restapi.amap.com/v3/ip?
    ip=223.4.72.2&key=f4cf14aca974dfbb0501c582ce3fce77
    响应
    {“status”:“1”,“info”:“OK”,“infocode”:“10000”,“province”:“浙江省”,“city”:“杭州
    市”,“adcode”:“330100”,“rectangle”:“119.8824799,29.95931271;120.5552208,30.520
    48536”}
  10. 必填参数个数少了 返回错误信息
    https://restapi.amap.com/v3/ip?ip=223.4.72.2
    响应
    {“status”:“0”,“info”:“INVALID_USER_KEY”,“infocode”:“10001”}
  11. 必填参数名错误 返回错误信息
    https://restapi.amap.com/v3/ip?
    ip=223.4.72.2&appkey=f4cf14aca974dfbb0501c582ce3fce77
    响应
    {“status”:“0”,“info”:“INVALID_USER_KEY”,“infocode”:“10001”}
  12. 必填参数值不合法 返回错误信息
    对参数格式有明确的要求的,按接口文档
    对参数格式无明确的要求的,考虑超长,特殊字符,全角半角符号等
    https://restapi.amap.com/v3/ip?ip=223.4.72.2&key=ecf14aca974dfbb0501c582ce3fce77
    响应
    {“status”:“0”,“info”:“INVALID_USER_KEY”,“infocode”:“10001”}
    选填参数
    基本思路:单个输入等价类,边界值,输入域。组合考虑选填参数都填,选填参数都不填。
  13. 参数名,参数值和接口文档一致 返回正确的数据,参数对应的接口功能实现
    https://restapi.amap.com/v3/ip?
    ip=223.4.72.2&key=f4cf14aca974dfbb0501c582ce3fce77
    响应
    {“status”:“1”,“info”:“OK”,“infocode”:“10000”,“province”:“浙江省”,“city”:“杭州
    市”,“adcode”:“330100”,“rectangle”:“119.8824799,29.95931271;120.5552208,30.520
    48536”}
    GET http://restapi.amap.com/v3/ip?
    key=f4cf14aca974dfbb0501c582ce3fce77&ip=211.159.216.59&output=xml
    响应

    1
    OK
    10000
    北京市
    北京市
    110000
    116.0119343,39.66127144;116.7829835,40.2164962
  14. 选填参数名错误 返回正确的数据,选填参数对应功能不实现
    https://restapi.amap.com/v3/ip?
    ipaddr=39.156.66.10&key=f4cf14aca974dfbb0501c582ce3fce77
    响应
    {“status”:“1”,“info”:“OK”,“infocode”:“10000”,“province”:“浙江省”,“city”:“杭州
    市”,“adcode”:“330100”,“rectangle”:“119.8824799,29.95931271;120.5552208,30.520
    48536”}
  15. 选填参数值不合法 返回正确的数据,选填参数对应功能不实现
    https://restapi.amap.com/v3/ip?
    ip=256.156.66.10&key=f4cf14aca974dfbb0501c582ce3fce77
    响应
    多余参数
  16. 输入参数的个数比接口文档多 返回正确的数据,忽略多余的参数
    响应
    5.1.3 输出参数测试
    基本思路:输出域,根据输出反推需要的输入参数
    5.1.4 接口文档规范性
  17. 接口文档中对于输入输出参数都有准确的命名,不存在模糊的情况
  18. 接口文档对于每一个参数都有明确的类型说明,是选填还是必填,是否有默认值
  19. 接口文档对于每一个输入参数都要明确的合法规则,比如长度范围,组成等
  20. 如果有多种类型的输出参数组合且参数的命名或个数有不同,要在接口文档中罗列清晰,并明确指
    出出现这种类型的输出参数的条件
    5.1.5 接口传递参数的安全性
  21. 接口传递参数的加密
  22. 防止SQL注入攻击
    5.2 接口测试用例步骤
  23. 初始化测试数据
  24. 调用接口,传入输入数据
  25. 对输出断言
    {“status”:“1”,“info”:“OK”,“infocode”:“10000”,“province”:[],“city”:
    [],“adcode”:[],“rectangle”:[]}
    https://restapi.amap.com/v3/ip?
    ip=39.156.66.10&key=f4cf14aca974dfbb0501c582ce3fce77&name=zzzz
    {“status”:“1”,“info”:“OK”,“infocode”:“10000”,“province”:“北京市”,“city”:“北京
    市”,“adcode”:“110000”,“rectangle”:“116.0119343,39.66127144;116.7829835,40.216
    4962”}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值