IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件测试学习笔记系列(一)你知道怎么做好接口测试?|看了就会 -> 正文阅读

[开发测试]软件测试学习笔记系列(一)你知道怎么做好接口测试?|看了就会

  • 🚀作者:银子,来自重庆,非科班出身,半路出家的程序员。
  • 🚀崇尚自由、开源和分享。
  • 🚀目前还没有CSDN任何创作头衔,努力前行,总会成为自己心中的那道光,加油

在这里插入图片描述

前言

谈起软件测试,就不得不说一下接口测试,凡是有功能的软件都离不开接口,没有接口的软件只是一个模具或页面,不具备任何功能。

什么是接口

业内常说的接口一般指两种:

API:应用程序编程接口,程序间的接口

GUI:图形用户界面,人与程序的接口

软件接口测试中的接口特指API接口

接口测试又称API测试

接口实例:系统与系统间的接口调用,作用:实现了两个或多个独立系统或模块间的通信和数据交换能力。

接口测试是什么

接口测试就是验证这些信息能否正确传递,验证这个方法是否正确,有没有存在潜在的安全,性能问题。

所以总结一下接口测试的测试点就有三个:接口手动测试、接口安全测试、接口性能测试。

为什么要做接口测试

1)互联网的快速发展,公司内部系统或与外部系统的关联越来越多,一个业务流程关联多个后端系统,它们的关联都是基于接口来实现,接口测试可以将复杂的系统关联进行简化,只要做好每个接口的测试就能够较好的保证系统质量。

2)单个系统的变更,是否会影响到关联业务系统,比较难用常规的测试方面来覆盖相关的应用系统(例如使用此接口的外部 系统有N个,不可能每个做功能兼容性测试),但可以通过对接口功能的覆盖来验证是否影响它人对接口的调用。

3)接口功能比较单一,能够比较好的进行测试覆盖,也相对容易实现自动化持续集成,可以减少人工回归成本与时间,缩短测试周期。

4)接口相对于界面功能,会更底层一些,测试覆盖会更容易(如业务在调用接口时做了判断,当不满足条件时链接就不显示,此时从界面无法测试相关功能是否做好判断,通过接口就比较容易)

接口测试范围

1)业务功能(包括正常、异常场景是否实现)

2)业务规则(覆盖度是否全面)

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

4)异常场景(重复提交、并发提交、事务中断、多机环境、大数据量测试)

5)性能测试响应时间、吞吐量、并发数、资源要求)

6)安全测试(权限验证、SQL注入等)

接口测试的重点

1、检查接口返回的数据是否与预期结果一致。

2、检查接口的容错性,假如传递数据的类型错误时是否可以处理。

3、接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。

4、接口的性能,http请求接口大多与后端执行的SQL语句性能、算法等比较相关。

5、接口的安全性,外部调用的接口尤为重要。

做好接口测试的前提

1、系统化的接口文档

传统的接口文档,一般采用word或wiki等系统来记录,从单次使用上似乎比较简单,因为大家会更习惯这样的操作,但这种形式存在比较大的问题:

  • 接口文档非标准化,无法直接与接口测试工具接口使用

  • 接口维护困难,接口有变化时比较难标识清楚,沟通成本很高

系统化接口文档,例如rap(淘宝分源的一个系统),具备接口维护标准化、版本化管理、MOCK测试等功能;对标准化的接口内容做二次开发,可以直接导出Soapui等工具使用的格式,直接导入工具中使用,有以下好处:

  • 接口测试时不再需要手工输入相关字段,节省时间成本

  • 版本化管理,能够清晰的知道哪些接口有变化

2、标准化的接口规范

接口管理是做好接口测试很重要的前提,如果一个系统有哪些接口都不太清楚,测试就很难覆盖到,接口管理建议采用以下方式:

A、按接口提供方为单位进行首次划分,按接口使用方进行二次划分,再按业务模块进行细分,分类原则根据内容多少进行优化,不需要固定,如本身接口较少就没有必要分得过细,较多时就需要多划分模块

如:系统A,提供有 1、2、3、4、5、6、7、8、9 这9个接口,接口分别给B系统、C系统使用,其中1、2为公用接口,3、4、5为B专用,6、7、8、9为C系统专用,划分如下:

B、按接口链接URL做为唯一,不同的接口参数做为接口变量,接口有参数变更时在原来接口上进行维护,而不是新增加接口

C、为接口增加版本号,方便清楚哪些接口本次有变更,易于维护用例

接口测试常用工具

截屏2021-09-10 下午9.02.28.png
1、JMeter
JMeter是Apache组织开发的基于Java的压力测试工具,能够将请求转换为脚本来实现,并允许使用正则表达式创建断言来对请求返回结果进行判断,具备接口测试功能和性能的能力。

2、PostMan
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,具备Fiddler\httpwatch之类的工具调试请求的功能,同时具备接口管理功能,官网提升脚本保存同步功能,支持接口导入导出

3、Loadrunner
HP公司的性能测试工具,使用Python语言或JAVA语言编写脚本,易学易用

接口测试用例怎么写

三个步骤:

初始化测试数据

调用接口,传入输入数据

对输出断言

持续集成接口测试

对接口测试而言,持续集成自动化是核心内容,通过自动化的手段才能有效降低成本,提高接口测试的价值。如果使用LR、JMeter、SoapUI工具做自动化测试,工具本身支持命令行模式运行,可以接合Jenkins 等自动化平台,实现项目版本更新后的自动化回归测试
关于持续自动化回归测试的建议:

1、接口脚本开发时要注意参数的取值的可用性,不因为时间或数据状态的变化引起脚本不能正常运行,降低脚本维护成本.

2、接口回归功能的覆盖度控制,需要根据脚本的实际功能和重要性判断自动化回归覆盖度,回归内容越多脚本维护成本越高,一般应用接口不建议全功能覆盖(毕竟接口有变化会做详细测试,如果没修改其它变更可能对其产生的影响一般不会影响其逻辑判断)

3、接口脚本需要一定的自动化校验能力,除请求http状态的判断外,还需要对核心内容的正常性做判断(判断内容可与数据库内容匹配等方式,不建议用写死的内容)。

4、持续性能测试,还需要做好相关的监控、性能指标的分析自动化,减少人工操作。

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

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

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

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

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

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

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

如何学这些技能?

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

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

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

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

⑤跟着身边大佬走,多问多学,如果身边没有大佬也可以加入我们,全国的小伙伴天南地北,可以一起聊天学习,更加了解这个行业情况,趋势与走向。

参考资料

接口测试的内容就讲到这里啦!如有需要了解软件测试相关的其他内容,可到「 主页」进行查看学习~

同时,有不理解或有误需要补充的地方也欢迎评论区共同探讨或可加我好友,大家一起聊天吹牛交流技术🤗。

  • ??我做了一个公众号 程序员一凡 ,不定期分享学习干货
  • ??如果这篇文章对你有用,记得点个赞👍🏻加个关注支持我一下~
  • ??我们下期见!👋👋👋

🌻推荐阅读:

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:39:31  更:2021-09-14 13:41:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:33:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码