热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

postman怎么导出测试用例_软件接口测试是什么?怎么测?

软件测试是一条超级长的跑道,最好分阶段来跑:先入行,后精通。网上能看到很多软件测试的帖子,但能够准确分类详细介绍的并不多。正
3be96d308721dde5b807ec8b64b5714e.png

软件测试是一条超级长的跑道,最好分阶段来跑:先入行,后精通。网上能看到很多软件测试的帖子,但能够准确分类详细介绍的并不多。正好最近有时间,就把我所了解的软件测试做一个小小总结,对你有帮助的话,记得点赞、收藏、关注偶~

一、软件测试分类

在招聘网站上能够看到很多软件测试的岗位,但大部分岗位的名称都是非常笼统的软件测试,到底是做功能测试的,还是做接口测试的,还是做性能测试的,并不十分明晰。有些招聘明明在岗位描述里写的是功能手工测试,面试的时候希望用7k的工资招聘一个资深测试开发人员,逗儿呢?

不吐槽了,先做一点介绍吧。软件测试想必不用我做介绍了,就是通过一系列的手段和方法,通过或手工或工具来测试软件里的错误(bug),要有“鸡蛋里挑骨头”的勇气和细心。当然不能乱挑刺。

根据测试阶段,可以将软件测试分为单元测试(UT)、集成测试(IT)、系统测试(SY)、验收测试(UAT,又可以分为alpha、beta、gamma测试)等。这种分类方法必须知道并且其中涉及的点是需要记忆的。

根据是否自动化,可以将软件测试分为人工测试和自动化测试。像我们在招聘网站里看到的自动化测试就是这里的概念,通俗来说,就是用机器来代替人工进行测试,以提升效率。现在测试入行的门槛是在逐步抬高的,基本是家公司,不管招人来是干什么的,都希望候选人会自动化测试。

根据是否要运行程序,可以将软件测试可以分为静态测试和动态测试。静态测试其实主要就是看一看文档呀、页面呀之类的,很重要,但是我们主要做的还是动态测试。

根据是否要对代码进行测试,可以将软件测试分为白盒测试和黑盒测试。直接对源代码进行测试是为白盒测试,这块一般是直接由开发人员来测试的。不对源代码进行测试是为黑盒测试,又可以分为很多种类。对于测试人员来说,大部分进行的都是黑盒测试。

接口测试是介于黑盒与白盒测试之中的一种测试,我们理解为是灰盒测试。因为接口要比手工测试(如点点点)更提前介入,更早地发现程序中可能存在的bug,从而补救成本比较低,所以很受重视。而且就点点点的功能测试来说,现在很多公司选择外包,这也造就了很多外包测试公司。而接口测试因为涉及到公司的核心业务逻辑和数据,很少有公司愿意把接口外包。

看到这里是不是感觉仍旧十分的迷惑,接口测试到底是干什么的呢?通俗点来说,接口测试和功能测试没有什么太大的区别。只不过功能测试一般是要等程序上线以后,才能够用手来点点点测试的。而接口测试也是测试软件的功能,只不过是在没有UI界面、在程序没有上线之前就可以测试的。

396e24f9661ba868f26608e563edc8d7.png
图片来源:pixabay

二、接口测试是什么?

1、接口是什么?接口是从哪里来的?

在介绍接口测试是什么之前,让我们先思考一个问题:什么是接口呢?举个现实点的例子来说,USB和电脑连接的接口就是一个接口;人与人之间交流的语言也是一个接口。接口的目的是为了方便人与人之间的协同,以提高工作效率的一套标准与规范。就软件测试来说,接口就是一套前端和后端在开发过程中都需要遵循的用以数据传输的规范与标准。

明确了标准,就可以将软件开发的业务划分成若干个部分,然后交由不同的专业人士去开发了。前端的归前端,后端的归后端。在提升效率的同时,也方便了以后的迭代升级和人员流动等场景需求。

好,那也就是说,所谓接口就是一套规范吗?是的。其实有一个专业的名词:API文档。这个词应该不算是太陌生吧,不管是不是搞软件的,基本都听说过它。这份文档其实就是软件开发过程中的一套标准,它里面规定了软件的功能,以及每个功能的标准。当然,API文档是由人来书写的,它也不一定就是完美无缺的。

一般来说,API文档是由公司里非常有经验的架构师大佬来编写的,编写的格式没有通用的标准。不过有一种流行的风格,那就是restful风格。restful风格是一种软件架构设计风格,但是并不是一套标准。所以如果你的公司所用的不是这种风格,也不必惊奇。

这种风格最大的好处就是流行,便于协同,其实也不是什么很厉害的东西,就是约定了一些方法、数据格式、状态码等。非常的简单。

2、接口清单

有了API文档有什么作用呢?------>找接口!前面说了,API文档就是软件开发的规范和标准,它里面包括了功能以及功能实现的标准。那么作为测试人员,就需要有能力从API文档中将接口提炼出来,形成接口清单。

提炼的方法其实也比较简单,这里还是以restful风格的API文档来举例吧。根据软件功能模块,可以分为N个层次,每个层次里又包括了若干个功能(接口),就可以提炼出N个层次、M个独立的接口了。

可是这样的接口是比较乱的,我们再根据restful风格中约定的get、post、put、delete四种方法进行分类,就可以在N个层次下将M个独立的接口归位四类。于是,一套脱胎于API文档的接口清单就形成了。

可是,可是,我怎么知道它是一个接口呢?这就要提到接口的三要素了:url+方法+参数+返回值。在API文档中,能够找到这么一套东西的,就是一个接口。

3、接口测试是什么

接口测试就是根据接口清单,模拟客户端向服务端发送请求数据,并获取响应数据后,查看响应数据是否符合预期的过程。

整个过程可以分为三个步骤:

第一步:模拟客户端向服务端发送请求;

第二步:接受服务端返回的数据;

第三步:查看返回数据是否符合预期。

必须要明确的一点是,接口测试的依据是接口清单,接口清单的依据是API文档,API文档的依据的项目需求文档和原型图。有了接口清单后,针对于每一个接口依次执行上述三个步骤的过程就是接口测试。

那么是怎么执行的呢?因为接口测试是在程序开发过程中进行的,是没有完整的程序的,所以测试是需要用到工具的。不仅模拟客户端向服务端发送请求是需要工具的,从服务端接受数据也是需要工具的,而且有时候验证返回数据是否符合预期也是需要用到工具的。

这就不得不提到在接口测试中常用的如fiddler之类的抓包工具、postman、Jmeter等工具了。如果再涉及到接口自动化测试的话,还需要学习python、pytest、java等有关内容,这里先不介绍。对于小白来说,能够先入门是最重要的。

4、接口测试的分类有哪些?

虽然接口测试已经是一个比较小的分类了,但是它仍旧是可以细分的。一般来说,可以分为两种:

web接口测试------>指基于BS架构的软件测试

模块接口测试------>指基于CS架构的软件测试

在做接口测试的过程中,主要做的是web接口测试,即基于BS架构开发的软件。至于说BS和CS架构是什么,这里就不介绍了,百度一下就可以找到很多答案了。

上面的分类方法我们知道即可,在工作中最常用的两种接口测试,实际上是:单接口测试关联接口测试(多接口测试)。

顾名思义,单接口测试就是针对于接口清单里的某一个接口来进行测试,主要针对的是某一个点,而关联接口测试(多接口测试)则是指针对于接口清单里的某几个接口进行测试,主要针对的是某一业务逻辑。

测试的点不同,所需要学习了解的点就不同。单接口测试的目的是为了测试某个接口是不是完美地实现了需求,那么就需要测试到各种可能出现的情况,所以是对某一个接口进行大量同类用例的设计,这就是常说的数据驱动测试。

关联接口测试的目的是为了测试某一业务逻辑是不是能正常实现的,所以基本上是建立在单个功能接口正常的前提下的,即一般不会填入逆向数据。在这个过程中,难点在于不同接口之间的数据传递。

以上这两个点是接口测试执行过程的重点,也是在学习使用postman和jmeter工具过程中的重点。我们以后再来介绍。

三、软件接口测试怎么测?

前面铺垫了这么多,这里做一个简单的小结,到底应该要怎么做接口测试呢?

第一步:根据API文档提取接口清单;

第二步:根据接口清单,确定适用于单接口测试的接口。根据需求评审及业务逻辑,确定适用于关联接口测试的接口类。

第三步:根据确定的单接口测试和关联接口测试,搭建测试框架,设计测试用例。这里的重点是用postman或jmeter等工具搭建测试框架(重点是数据驱动和参数传递),并根据等价类法、正交表法等方法设计合理有效的测试用例。

第四步:执行测试用例,并验证结果是否符合预期。如果是bug,提交bug等。

到这里,软件接口测试就结束了。当然,还有一些更细节的实现流程没有介绍,比如说,用例设计的方法有哪些?postman如何使用?jmeter如何使用?软件测试的基本理论有哪些?缺陷管理工具怎么用?接口测试自动化如何学习?等等、等等,我们之后的文章再来介绍。

下一篇文章:软件接口测试工具Jmeter怎么使用安装教程详解(一)



推荐阅读
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ... [详细]
  • 深入理解云计算与大数据技术
    本文详细探讨了云计算与大数据技术的关键知识点,包括大数据处理平台、社会网络大数据、城市大数据、工业大数据、教育大数据、数据开放与共享的应用,以及搜索引擎与Web挖掘、推荐技术的研究及应用。文章还涵盖了云计算的基础概念、特点和服务类型分类。 ... [详细]
  • Bootstrap 的轮播图(Carousel)组件提供了一种简单而灵活的方法,用于在网站上实现响应式幻灯片效果。此组件不仅支持图片展示,还兼容嵌入式框架、视频等多媒体内容。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
author-avatar
214812031_88fe08
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有