返回顶部
首页 > 资讯 > 精选 >测试人员如何提高API功能测试效率?
  • 106
分享到

测试人员如何提高API功能测试效率?

2023-06-04 23:06:30 106人浏览 八月长安
摘要

api,即:应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可

api,即:应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。

程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。

API测试是针对系统所提供的API做各方面的验证。API的性能和安全测试根据测试策略的不同,会是一个可选测试项。这个可以作为两个单独的问题来讨论。

API的功能测试类似于UI功能测试,都是在已知输入内容和期望结果的前提下,使用这个功能/调用这个API并且验证是否能返回期望的结果。不同的是API测试在返回结果被呈现给客户前就完成了,从而对测试环境的依赖会比较小。

还记得曾经在课堂上学过的测试金字塔吗?

测试人员如何提高API功能测试效率?

简单来讲就是说越往上层走的测试,需要投入的成本会越高,而且会越难以维护。在这个结构下,因为UT已经覆盖了绝大部分的代码,所以其上层的集成/API测试和UI测试可以去除重复测试的部分,从而量也会越来越少,并且会有不错的覆盖率。

所以理想中的自动化测试结构应该是:大量的UT+适量的集成测试(或者API测试)+少量的UI测试。

☞ 测试覆盖率。UT关注点是各个单元是否能够完成期望工作,只覆盖一个单元内部工作情况;集成/API测试关注点是各个模块/单元之间协同工作,它所覆盖的场景也会比单元测试更多。而UI测试会更加关注e2e,模拟用户行为,在所有的程序依赖环境准备完成后再进行操作。相比之下API测试不依赖环境,测试成本会比UI测试更低,而且覆盖率比UT更高。

测试人员如何提高API功能测试效率?

☞ 快速反馈。API测试速度比UI测试更快(因为无需界面加载/响应),短时间内能跑很多用例。API测试也能精确的揭露是软件中哪个组件除了问题,如果把你的API测试放到CI里面,一旦代码修改破坏了现有的功能,就能够快速反馈到团队中。还可以把测试中发现的BUG也写到API测试里面,让测试成为一堵墙,从而能更好的能保证产品质量。

☞ 可复用。API测试由于不需要浏览器、GUI等环境,所以可以更加灵活的在各个环境中复用。例如你可以在产品环境中、测试环境、研发环境中使用,你需要做的只是修改下测试数据而已。另外如果是在TDD模式下工作的话,API测试可能会在产品完成前就写完了,后续的工作也会减少很多。

API功能测试的主要手段是使用工具/软件调用待测API,然后验证是否返回期望的output。这个output通常可能是:

♡ 返回成功或者失败的status

♡ 是一段数据或者infORMation

♡ 或者是跳转到其他API

工具

市面上常见的API测试工具我知道的可以分成几大类:

开源纯代码类,比如基于nodejs的supertest;基于Java的rest-assured等。这类工具易于学习,易于和CI集成,但是需要使用者有一定的编码能力。商用工具,比如:SoapUI,功能强大操作简单,还提供免费社区办可以试用。各类插件工具,比如Chrome插件Postman,也有收费版可以用。工具的选择见仁见智,根据不同的环境选择不同的工具。

测试

在正式开始测试之前,你得先搞清楚几个问题:

待测API的目的是什么?谁是使用者?

待测API会在什么环境下使用?

待测API在异常环境下会不会有非期望响应?

这个测试需要测什么功能点?

各个功能点的测试优先级?

如何定义期望返回的结果是成功还是失败?

待测API会不会和其他系统有交互(修改代码后影响其他系统)?

测试人员如何提高API功能测试效率?

这些问题会影响到你的测试结果是否符合客户需求,或者说这些潜在的风险会影响到这个项目是否成功。如果你选的是必须得自己写点儿代码的工具,那么接下来得根据选择的工具和项目代码,去setup测试环境,让工具能够成功跑起来。

设计测试框架

接着是设计你的测试框架,最好是要满足可复用性强,高内聚低内聚什么的原则,记得要有输出测试报告的模块。

用例

上面你已经想好了需要测哪些功能点,针对这些点我们用脑图之类的工具把需要测试的场景记录下来。

脚本

接着是脚本设计和测试数据设计。脚本和数据最好可以分开,这样的话可以复用测试脚本,用不同的测试数据输入去获取不同的期望结果。

验证

验证的过程大致包含下面这些:

检查API是不是根据你输入的数据返回期望的结果;验证API是不是不返回结果或者返回异常结果;验证API是不是正确触发其他even;收否正确调了其他API;或验证API是不是正确更新了数据等等。

最后,强烈推荐把测试集成到CI中去,加速异常反馈,创建强有力的质量体系。

--结束END--

本文标题: 测试人员如何提高API功能测试效率?

本文链接: https://lsjlt.com/news/240506.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 测试人员如何提高API功能测试效率?
    API,即:应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可...
    99+
    2023-06-04
  • PHP 单元测试:如何提高测试效率?
    通过使用快速断言、提高代码覆盖率和采用并行测试框架 paratest,可以显着优化 php 单元测试性能,从而将一个需要 30 秒执行的 laravel 测试套件优化到仅需 3 秒,性能...
    99+
    2024-05-21
    php 单元测试 laravel
  • 软件测试人员如何撰写简历才能提高面试邀约率?
    最近后台有朋友留言问:“我应该从哪里开始准备面试?我差不多2年没收到任何邀请了。” 我想应该有很多软件测试员会遇到这样的问题,所以我总结了一些可以有效提高面试邀约率的方法,希望可以帮助行业新人,以及想要切换当前工作的测试专业人士。...
    99+
    2023-06-05
  • 如何提高golang函数的测试覆盖率?
    提高 golang 函数测试覆盖率的方法包括:使用覆盖率工具生成报告,显示未测试代码。覆盖所有可能输入和错误场景,包括角落情况。编写孤立测试,使用依赖注入或测试桩隔离函数。使用 bdd ...
    99+
    2024-04-26
    go 测试覆盖率 golang
  • 软件测试人员如何去分析及提高用户体验?
    用户体验就是一种用户在使用产品时所建立起来的心理感受。心理感受是纯主观性的,也就带有一定的不确定因素,不过,在界定用户基本确定的情况下,其用户体验的共性是能够通过良好的设计来实现的。用户体验的本质,就是需求是否得到良好的满足。影响需求满足的...
    99+
    2023-06-05
  • PHP PHPUnit测试:性能优化和效率提升
    简介: PHPUnit是PHP中广泛使用的单元测试框架,对于提高代码质量和可靠性至关重要。然而,随着测试套件和数据集的不断增长,性能问题可能会出现。通过优化和提升测试效率,可以确保测试套件能够随着时间的推移持续快速有效地运行。 性能优化...
    99+
    2024-04-02
  • 使用 PHP 代码覆盖工具提高测试效率
    如何使用 phpunit 进行 php 代码覆盖:安装 phpunit。配置 phpunit 配置文件(phpunit.xml)。运行代码覆盖命令(phpunit --coverage-...
    99+
    2024-05-12
    测试效率 代码覆盖 composer
  • Android测试提升效率批处理脚本
      前言:   APP测试过程中,经常需要用的一些命令,如adb,每次敲命令,虽可以加深印象,但个人认为那即繁琐又浪费时间。本文贴出一些我使用的批处理,以及一点点小小技巧...
    99+
    2022-06-06
    效率 脚本 批处理 Android
  • PHP 函数性能基准测试:比较不同实现并提高效率
    答案:基准测试是比较不同函数性能的一种方法,可帮助您选择更有效的实现。详细:设置基准测试:使用 microtime() 函数测量函数执行时间。比较不同实现:测试不同函数实现并记录执行时间...
    99+
    2024-04-12
    php 性能基准测试
  • 数据库功能测试如何做
    数据库功能测试是一种用于验证数据库系统的功能是否按照预期工作的测试方法。以下是进行数据库功能测试的步骤: 确定测试目标:确定需要...
    99+
    2023-10-21
    数据库
  • Golang 函数测试中如何实现代码覆盖率测试?
    回答: 在 golang 函数测试中实现代码覆盖率测试的步骤如下:步骤:安装覆盖率包:go get golang.org/x/tools/cmd/cover。导入覆盖率包并设置覆盖模式。...
    99+
    2024-04-16
    golang 代码覆盖率
  • JavaScript Jest 神枪手:用 Coverage 提高测试覆盖率
    简介 在编写 JavaScript 代码时,测试是确保其可靠性和准确性的一项重要步骤。Jest 是一个流行的 JavaScript 测试框架,提供全面的测试功能,包括广泛的断言、模拟和存根工具。除了基本测试之外,Jest 还提供了 Co...
    99+
    2024-02-17
    JavaScript Jest 测试覆盖率 Coverage 单元测试
  • 如何进行Java ImageIO图像合并效率测试
    这篇文章给大家介绍如何进行Java ImageIO图像合并效率测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。通过纯Java的方式往一张底图(地图)上添加小图片(布点),发现效果并不理想。何为纯java方式?就是说这...
    99+
    2023-06-17
  • Golang开发建议:如何进行高效的性能测试
    Golang是一种快速、强大的编程语言,广泛应用于高性能的后端开发。在进行Golang应用程序的开发过程中,性能测试是非常重要的一环。通过性能测试,我们可以了解系统在不同负载下的表现,发现潜在的性能瓶颈,并对系统进行优化。那么,在Golan...
    99+
    2023-11-22
    性能优化 Golang性能测试 高效测试
  • 如何使用Go语言进行高效的性能测试
    go 语言提供了高效的性能测试工具,包括内置的 testing 包,用于编写基准测试。基准测试使用 benchmark 函数定义,并通过 run 函数运行。例如,可以编写一个基准测试来测...
    99+
    2024-05-07
    go语言 性能测试 git
  • 揭秘 JavaScript Jest 的奥秘:提升单元测试效率
    ...
    99+
    2024-04-02
  • 如何在python中测试API接口
    这期内容当中小编将会给大家带来有关如何在python中测试API接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyt...
    99+
    2023-06-14
  • 如何提高Python文件面试的成功率?
    Python是一种广泛应用于开发领域的高级编程语言。在软件开发行业中,Python文件面试是非常常见的一种形式,因为Python的灵活性和易用性使得它成为了许多公司的首选编程语言。但是,即使你是一名经验丰富的Python开发人员,要通过Py...
    99+
    2023-08-14
    文件 面试 教程
  • PyQt5 PySide2触摸测试功能如何实现
    这篇文章主要介绍“PyQt5 PySide2触摸测试功能如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PyQt5 PySide2触摸测试功能如何实现”文章能帮助大家解决问...
    99+
    2023-07-05
  • ubuntu如何测试gpu性能
    ubuntu测试gpu性能的方法:测试系统自动分配设备示例:#-*- coding:utf-8 -*-import tensorflow as tf# 新建一个 graph.a = tf.constant([1.0, 2.0, 3.0, 4...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作