目录

接口测试基础

1.什么是接口?

2.接口类型

3.接口本质

4.什么是接口测试?

5.为什么做接口测试?

6.怎样做接口测试?

7.接口测试的测试点是什么?

8.接口测试都要掌握哪些知识?


接口测试基础

1.什么是接口?

API:Application Programming Interface,即应用程序编程接口

一个API中通常包含:

Method:请求方法

URL:唯一资源定位符

Params:参数

Authorization:认证方式

Headers:消息头

Body:消息体

2.接口类型

http api接口

走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。

API接口一般又分为两种:程序内部的接口和系统对外的接口

json是一种通用的数据类型,所有的语言都认识它。(json的本质是字符串,他与其他语言无关,只是可以经过稍稍加工可以转换成其他语言的数据类型,比如可以转换成Python中的字典,key-value的形式,可以转换成JavaScript中的原生对象,可以转换成java中的类对象等。

webservice接口

走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。

数据库访问接口

数据库访问接口是走jdbc方式连接数据,对数据库进行增删改查操作,需要使用工具进行测试。

3.接口本质

接口可以简单的理解为不同的URL,工作原理是URL通过get或post请求向服务器发送一些东西,然后得到一些相应的返回值,本质是数据的传输与接收。

4.什么是接口测试?

接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。简答说就是通过URL向服务器或其他模块等,传输我们想传输的数据,然后看看他们返回的是不是我们预期想要的。

5.为什么做接口测试?

1.越底层发现bug,它的修复成本是越低的。

2.很多系统前后端架构是分离

2.1 前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。

2.2 检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。

2.3 只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

2.4 前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

3.如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

6.怎样做接口测试?

--由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。

--也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。

戳我进群一起交流技术吧:321255410【备注777】

7.接口测试的测试点是什么?

目的:测试接口的正确性和稳定性;

  原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;

  重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;

  核心:持续集成是接口测试的核心;

  优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);

  用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);

  设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能

后端接口测试的主要内容:

app前端测试主要内容:

从上面这两张图对比可以看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分由于各自特性或关注点不同需要进行特殊的测试,在此不做讨论。接下来我们针对以上三部分相同的内容再进行分析:

  1、基本功能测试:

  由于是针对基本业务功能进行测试,所以这部分是两种测试重合度最高的一块,开发通常所指的也主要是这部分的内容。

  2、边界分析测试:

  在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。但是,前端的输入输出很多时候都是提供固守的值让用户选择(如下拉框),在这种情况下测试的边界范围就非常有限,但接口测试就不存在这方面的限制,相对来说接口可以覆盖的范围更广,同样的,接口出现问题的概率也更高。

  3、性能测试:

  这个比较容易区分,虽然都需要做性能测试,但关注点确大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。两种测试时的策略和方法都有很大区别,所以这部分内容是需要分开单独进行测试的,理论上来说这也是不同的部分。

  综论:

  1、接口测试和app测试的活动有部分重复的内容,主要集中在业务功能测试方面。除此之外,针对各自特性的测试都不一样,需要分别进行有针对性的测试,才能确保整个产品的质量。

  2、接口测试可以关注于服务器逻辑验证,而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证

  3、接口测试持续集成:

  对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

   a) 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

   b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等

   c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

   d) 结果校验:加强自动化校验能力,如数据库信息校验。

   e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。

   f) 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

  4、接口测试质量评估标准:

   a) 业务功能覆盖是否完整

   b) 业务规则覆盖是否完整

   c) 参数验证是否达到要求(边界、业务规则)

   d) 接口异常场景覆盖是否完整

   e) 接口覆盖率是否达到要求

   f) 代码覆盖率是否达到要求

   g) 性能指标是否满足要求

   h) 安全指标是否满足要求

8.接口测试都要掌握哪些知识?

  ①了解系统及内部各个组件之间的业务逻辑交互;

  ②了解接口的I/O(input/output:输入输出);

  ③了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;

  ④常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;

  ⑤数据库基础操作命令(检查数据入库、提取测试数据等);

  ⑥常见的字符类型,比如:char、varchar、text、int、float、datatime、string等; 

  如何学这些技能?

  ①系统间业务交互逻辑:通过需求文档、流程图、思维导图、沟通等很多渠道和方式;

  ②协议:推荐《图解http》这本书,内容生动,相对算是入门级的书籍,其他的还有《图解tcp、IP》等;

  ③接口测试工具:百度这些工具,然后你会发现,好多的教学博客、相关问题解决方案、以及一些基于工具的书籍,当然,选择合适的书很重要;

  ④数据库操作命令:学习网站(W3C、菜鸟教程)、教学博客,以及一些数据库相关书籍,入门级推荐:《mysql必知必会》、《oracle PL/SQL必知必会》等

  ⑤字符类型:还是百度,有句话这么说:内事不决问百度,外事不决问Google。。。

   如何获取接口相关信息?

  一般的企业,都会由开发或者对应的技术负责人员编写接口文档,里面会注明接口相关的地址、参数类型、方法、输入、输出等信息,如果没有,想办法获取。。。

  接口文档八要素:

  封面:封面最好是本公司规定的封面,有logo,内容标题,版本号,公司名称,文档产生日期;

  修订历史:表格形式较好些,包括:版本、修订说明、修订日期、修订人、审核时间审核人等;

  接口信息:接口调用方式,常用的GET/POST方式,接口地址;

  功能描述:简洁清晰的描述接口功能,比如:接口获取的信息不包括哪些;

  接口参数说明:每个参数都要和实际中调用的一样,包括大小写;参数的含义言简意赅的说明,格式,是string 还是int 还是long等格式;

  说明部分,说明参数值是需要哪里提供,并详细说明参数怎么生成的,例如时间戳,是哪个时间段的,参数是否必填,一些参数是必须要有的,有些是可选参数等;

  返回值说明:

  ①最好有一个模板返回值,并说明每个返回参数的意义;

  ②提供一个真实的调用接口,真实的返回值;

  调用限制,安全方面:

  加密方式,或者自己公司一个特殊的加密过程,只要双方采用一致的加密算法就可以调用接口,保证了接口调用的安全性,比如常见的md5;

  文档维护:文档在维护的时候,如有修改一定要写上修改日期,修改人,对大的修改要有版本号变更;

好了 学习也就到此结束了 想了解更多相关知识请关注我吧!衷心感谢每一个认真阅读我文章的人!

联系方式:戳我进群一起交流技术吧:321255410【备注777】

API测试-接口测试基础相关推荐

  1. API测试-接口测试基础(1)

    由于自己想学习API方面的测试,但是市面上搜不到相关的图书可以系统学习,网上的内容又零零散散,适合有点API开发基础的人去搜索.为了方面新手学习API测试,现在整理了他人的宝贵经验和自己的学习心得,尽 ...

  2. API测试| 了解API接口测试| API接口测试指南

    什么是API? API是一个缩写,它代表了一个 pplication P AGC软件覆盖整个房间.API是用于构建软件应用程序的一组例程,协议和工具.API指定一个软件程序应如何与其他软件程序进行交互 ...

  3. API测试基础知识(基本概念、测试方法、测试工具)

    目录 什么是API? 什么是API测试 API测试的测试用例: API测试方法: 如何进行API测试 API测试的最佳做法: API测试检测到的错误类型 API测试工具 API测试的挑战 结论: 总结 ...

  4. ElasticSearch 基础(四)之 常用 API 测试

    目录 前言 一.查看(Cat) API 1.查看节点信息 2.查看各节点机器存储信息 3.查询索引信息 4.查询分片信息 5.查询集群健康状态 6.查询集群所有的别名索引 7.查询主节点信息 8.查询 ...

  5. 接口测试php代码,简易 PHP API 测试

    简易 PHP API 测试 PHP代码 /* ============================================================================= ...

  6. 第一章 接口测试基础

    分层的自动化测试 传统自动化测试 基于产品UI层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试. 在目前的大多数研发组织当中,都存在开发与测试团队割裂(部门墙).质量职责错配( ...

  7. 接口自动化测试之接口测试基础

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 文章目录 一.分层的自动化测试 1.传统自动化测试 2.测试金字塔 3.分层自动化测试 二.接口测试基础知识 1.接口的含义 2. ...

  8. Laravel 第十章 API测试和文档

    一.API自动化测试介绍 API 自动化测试 我们已经完成了 Larabbs 所有的接口开发,接下来我们需要将接口交付给其他的工程师对接.将接口部署到生产环境时,如何确保交付的接口正确稳定呢?后续我们 ...

  9. 如何选择API测试工具

    没有最好,只有最合适. 如今,越来越多的公司正在向DevOps的方向左转,以实现持续集成和持续部署开发.这意味着我们的反馈需要比以往更快,以便确定我们的应用程序是否准备好交付.这就是API测试如此重要 ...

最新文章

  1. Linux中/proc目录下文件详解
  2. Nagios监控Windows server 2003 系统
  3. python啥意思-星号*在Python中是什么意思?
  4. 求一个集合的所有子集 Python实现
  5. split函数python 未定义_Python之Split函数
  6. Java 微信公众号导出所有粉丝(openId)
  7. 手把手教你写一个微信小程序日历组件
  8. 管道popen和pclose的实例使用
  9. 正确率能很好的评估分类算法吗_机器学习算法:分类知识超全总结!
  10. Android: app不被系统kill掉
  11. WIN10重新下载安装MicroSoft Store的三种方法
  12. 次世代教程_角色《佛特艾斯》制作具体分析
  13. hbase 基本命令
  14. python-math函数
  15. 计算机快捷键大全截图,电脑截图按什么键?电脑截图的快捷键是什么
  16. 在本计算机无法启动用友通服务器,用友T3客户端提示用友通服务没有启动?
  17. Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)
  18. 什么是时钟周期?什么是机器周期?什么是指令周期?
  19. 前端页面 原生php+H5 视频播放一 专辑列表页(专辑页list)
  20. 完成一个预测建模项目一般需要多长时间?

热门文章

  1. android源码结构
  2. 红绿灯(traffic)
  3. 小程序云开发中如何生成pdf?
  4. 安卓设备与win11pc远程桌面的连接
  5. 私有化部署vs公有云部署,你知道这些不同吗?
  6. c语言与单片机技术试卷与答案,哈尔滨工业大学《单片机原理及应用》课件、各章习题解答、试题及答案...
  7. 顾客使用天猫优惠券预测分析
  8. 数学分析课程笔记:实数集的基本公理及其一般性质
  9. linux内核中的睡眠函数*delay、*sleep
  10. 学习Apache Kafka