当前位置: 首页 > news >正文

接口测试基础

接口测试

简述

接口可以看作前后端之间的桥梁,负责前后端之间的数据传输

接口测试的目标是服务端程序;把服务端程序看出一个黑盒,用工具或脚本模拟客户端程序的工作;

像客户端一样去做封包和数据发送,在服务端返回信息时再像客户端一样去解包;

 

接口测试与功能测试

接口测试,自动化测试都是是功能测试的一种,都是模拟用户的操作

接口测试只是没有经过前端,而是通过接口来完成的

自动化测试减少了手工操作,通过脚本来实现的,脚本还是功能性的东西

 

封包解包过程

客户端程序把发送给服务端的指令封装成数据包,

服务端程序处理完成指令后把需要返回的数据封包返回给客户端,

客户端拿到服务端发来的包开始解包,呈现需要显示的数据。

 

流程图

 

 

为什么要做接口测试

(1)更容易实现持续集成

(2)能够更早的发现bug

 可以在功能界面开发出来之前进行测试

(3)大型系统更多更复杂,系统间模块越来越多

(4)缩短研发周期

 如果将所有的测试工作都集中在功能测试阶段,那么测试的问题和修复周期将会边长,

 接口测试可以更早的介入产品研发中,可以有效的控制功能阶段的bug数量

(5)可以发现更底层的问题

 系统的有些底层逻辑在UI功能测试中不容易触发,但是不容易触发的逻辑可能存在问题,

 接口测试可以更全面的测试这些底层的逻辑

(6)检查服务器的异常处理能力

 前端的验证很容易绕过,只站在功能测试的层面很难发现一些安全问题,

 不以功能为入口的接口测试更容易验证一些异常信息

 

接口测试依据

需求文档

接口设计文档

 

接口测试策略

功能测试

边界测试

参数相互组合测试

异常测试

性能测试

安全测试

稳定性测试

 

接口测试流程

需求分析

接口测试用例设计

接口测试用例评审

接口测试脚本开发

接口测试脚本执行

结果分析

 

接口测试的落地过程

 

 

需求阶段

(1)测试人员需要了解项目需求是什么

(2)满足了用户哪些需求点

(3)解决了用户什么痛点

 

研发阶段

(1)测试设计

(2)测试开发

 

测试阶段

(1)环境搭建

(2)多项测试并行

(3)BUG修复

(4)测试报告

说明:经过了几轮测试,耗费了多少时间,几轮测试中执行了哪些测试用例,发现了哪些问题,我写了多少case,发现的bug,解决的百分比

 

项目上线阶段

(1)项目上线

(2)线上回归测试

(3)上线报告

(4)添加监控

说明:监控接口,比如监控接口的端口号是否活着,

即便端口号活着,程序却不跑,假死状态,起个定时

任务定时监控一个接口,若发现异常发邮件报警

 

接口自动化技能要求

(1)开发语言

  java/python

(2)测试框架

  TestNG、HttpClient

(3)Mock技术

  模拟所有的接口、集成,支持前后端分离开发

(4)数据持久层框架

  MyBatis

(5)持续集成工具

  Jenkins

(6)接口基础

  HTTP接口熟悉

  常见的接口(post,get,delete,put)

  接口工具的使用(postman,SOAPUI,jmeter,fiddler)

  接口开发

(7)Unittest与接口测试的结合

  Unittest的使用

  Requests的引入使用

  HTMLTestRunner

  断言

  case管理

(8)自动化测试框架开发

  设计框架

  工具类封装

  基类封装

  调试错误

  数据处理

  回写测试结果

  解决数据依赖

  结果统计

  邮件服务

  发送报告

(9)接口测试查缺补漏

  操作数据库

  操作cookie

 

参考资料:java接口测试

转载于:https://www.cnblogs.com/marton/p/10777746.html

相关文章:

  • MySql综合知识汇总
  • FullCalendar Timeline View 使用
  • 08-图9 关键活动 (30 分)
  • Numpy用户指南
  • 涨姿势:抛弃字母、数字和下划线写SHELL
  • c++实现扫描检测硬件改动
  • 百度地图API获取数据
  • leetcode 338. 比特位计数(Counting Bits)
  • 2019-04-30vmware虚拟机安装macos 10.8格式为iso
  • 【Python爬虫】听说你又闹书荒了?豆瓣读书9.0分书籍陪你过五一
  • Player Settings-Web
  • c++11多线程笔记
  • 微软UWP应用,导航栏设计。
  • Python 之继承
  • 写给我即将出生小孩的第一封信
  • [case10]使用RSQL实现端到端的动态查询
  • [deviceone开发]-do_Webview的基本示例
  • CSS魔法堂:Absolute Positioning就这个样
  • node.js
  • Python打包系统简单入门
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 构建工具 - 收藏集 - 掘金
  • 回顾 Swift 多平台移植进度 #2
  • 看域名解析域名安全对SEO的影响
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 微信小程序实战练习(仿五洲到家微信版)
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (五)关系数据库标准语言SQL
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .naturalWidth 和naturalHeight属性,
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Micro Framework初体验
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET命名规范和开发约定
  • .Net中的集合
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • []我的函数库
  • [20171106]配置客户端连接注意.txt
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [BZOJ4010]菜肴制作
  • [BZOJ4566][HAOI2016]找相同字符(SAM)