接口测试】接口测试的流程和步骤

2021-02-26 15:47发布

2条回答
猜不到结尾
2楼 · 2021-02-28 11:01

接口测试是测试系统组件间接口的一种测试。

主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。

重点测试数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等等。

这要求对业务逻辑有一定程度上的理解,对数据流向有较好的定位。

接口测试般会用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。

接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。

接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。

接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比。

接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。

接口测试的目的是测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换、传递和控制管理过程,还包括处理的次数。外部接口测试一般是作为系统测试来看待的。

不是所有的团队都可以在一个隔离的测试环境中进行测试工作的,因此使得对外部接口的测试显得困难。

我们应该确保较早地与相关的组织协调好并确定进行外部接口测试的方案。

有时候相关的组织只是人工的静态的审阅一次数据而并不真正的用这些数据来测试,这些都增加了实际测试执行中遇到的风险,但有些时候是可以避免的。

接口测试有的公司是归纳在集成测试里面,也有的公司会放在系统测试阶段,不过这个都没有什么区别,本质上接口测试就是通过某个功能模块对外暴露的一个接口地址传参进行测试。

一般来说接口分为如下三类:

A. 系统与系统之间的调用(如我们一般常见的分享内容到朋友圈或者是微信朋友时,微信会提供接口给这些需要用到分享的应用)上层服务对下层服务的调用(这个理解难度稍微有点大,在我们程序中功能是分层的,那么属于上层对底层服务的调用,以后能够有机会接触到代码或者更加稍微复杂点的接口测试就能够理解。举个例子,我们的程序框架分为三层,分别是web层:提供给用户请求的层次;feb迁至层:作为信息传递的中转站;service层:作为程序应用的核心,处理所有的请求

C.服务之间的调用(如添加一条数据时,会先调用数据查询的服务,查询该数据是否是重复数据)

不同类型的接口测试方法可能不一致,但总体来说不管是哪种类型,被测接口即为服务,测试手段为客服方,接口测试的目的就是:通过我们的测试手段,去验证满足其申明提供的功能。

2如何做接口测试

接口测试的原理:通过测试程序模拟客服端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一过程(reques->response)。

接口测试的流程与功能测试有什么区别呢?从原则上以及流程上讲,是没有啥区别的,都同一套软件测试流程:需求讨论->评审需求->确定需求->产出接口定义->根据需求文档及接口定义设计测试用例(测试用例主要从业务场景,功能以及异常测试几个方面考虑)->评审用例->执行测试。

接口测试采用的最基本的就是黑盒测试,在这个测试过程中我们最需要关注的是,如何来设计测试用例,设计测试用例所采用的方法也是我们常所用的几大方法:等价类、边界值以及错误推测法、场景法。在设计测试用例之前,我们先来看看常见的接口文档形式。

这就是上图是一种比较规范的接口文档说明,包含了如下内容模块:接口的类型说明、接口地址、http请求方式、输入参数和请求接口后返回的响应结果。

接口测试编写测试用例,主要关注点是输入参数、输出结果以及内部业务逻辑是否正常‘,所以我梦设计用例也要从这几方面出发考虑:

a)输入参数测试:针对输入参数进行的测试,也可以说是假定接口参数的不正确性 进行的测试,确保接口对任意类型的输入都做了相应的处理:输入参数合法(不合法),输入参数为空,为null,输入参数超长等等;

b)接口是否满足了所提供的功能,相当正常情况测试,如果一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例就有更好的可读性和可维护性;

c)逻辑测试:逻辑测试严格讲应为单元测试,单元测试应保持内部逻辑的正确性,可单元测试和接口测试的界限并不是那么清晰,所以我们也可以从给出的设计文档中考虑内部逻辑错误的分支情况和异常;

d)异常情况接口测试:接口实现是否对异常情况都进行了处理,接口输入参数虽然合法,但是在接口实现中,也会出现异常,因为内部的异常不一定是输入的数据造成的,而有可能是其他逻辑造成的,程序需要对任何异常都进行处理;

针对上面的注册接口,我们利用测试用例设计方法来编写测试用例,如下所示:

3接口测试的工具选择

可以进行接口测试的工具有很多,这里简单介绍几个:

>loadrunner :一款商业性能测试工具,用来做接口测试,很好很强大。

>jmeter :一款开源的性能测试工具,操作简单方便,既有jdbc request 操作数据库数据,也有http request 和 soap request 应对测试;

>httprequester :火狐浏览器自带接口测试工具,插件中安装即可,界面简单明了,容易上手。

>postman :谷歌浏览器的扩展工具,界面简洁,开发者比较常用的一款插件工具。

>soapui : 开源测试工具,通过soap/http 来检查、调用、实现web service的功能/负载/符合性测试。

我们将在后面的教学中,重点讲解Jmeter这款综合性比较高的工具;


征戰撩四汸
3楼 · 2021-10-31 15:40

1、需求分析----需求文档

梳理业务流程  

需要测哪些功能  

测试周期、任务安排  

2、用例设计

根据接口文档  

3、代码编写


相关问题推荐

  • 回答 2
    已采纳

    看看这个思维导图能帮助到你吗

  • 回答 4

    早期的开关量控制装置就是继电器逻辑控制,后来有电子技术了,开关量控制装置开始采用电子技术模仿继电逻辑,比较典型的就是比较典型的就是可编程序控制器(PLC),此外还有各种开关电路组成的控制器、以单片机为核心器件的控制器等,很多,其基本原理都是源...

  • 回答 5

    几乎所有编程语言就是在变量中存储值,并且能读取和修改此值。事实上,在变量中存储值和取出值的能力,给程序赋予了状态。 如果没有这样的概念,一个程序虽然可以执行一些任务,但是它们将会受到极大的限制而且不会非常有趣。...

  • 回答 8

    断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更...

  • 回答 3

    一、Jmeter关联的方式:Jmeter中关联可以在需要获取数据的请求上 右键–>后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据:  在LR中有自动关联跟手动关联,但在我看来手动关联更准确,在jmeter中,就只有手动关联为什么要进行关联:...

  • 回答 5

    ①仔细阅读 接口说明/设计文档。将每个接口当成被测功能点来理解。接口也有功能、性能、安全等测试。②设计接口测试方案,比如确定要使用的接口测试工具。③设计接口测试用例(和功能测试设计用例的方法一样,运用等价类、边界值、正交试验法等黑盒测试方法)。...

  • 回答 9
    已采纳

    1、Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。2、jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比load...

  • 回答 2

    1.首先需要开发提供给我们接口文档,样子如下。需要指出 接口的类型,这里是POST。还需要指出接口的地址,这里就是黑色框中的URL地址。2. 需要下载一个 postman,我的是windows 7 64bit,可以去官网下载一个最新版本。...

  • 回答 5

    测试管理工具主要是QC、TD之类的,测试工具主要有QIP、LoadRunner、Winruuner、lr之类的,如果是手工测试比较多的话测试管理工具就比较重要,自动化测试比较多的话测试工具就比较重要...

  • 回答 2

    发包,就是运用搜索引擎的缝隙发送数据,然后传输相对应的虚伪数据,当然这组数据也能够算是点击数据,只不过这组数据是经过参数数据发包形式传送。所以有些公司又把发包点击称之为参数点击。所以其实发包技术并不复杂,复杂的是找到有用的间隙。一般的发包工...

  • 回答 5
    已采纳

    自动化测试工具的类型记录和重放:此类别中的工具为自动脚本提供了记录选项。屏幕上的每个交互(例如点击,滚动或键入)都将被记录并转换为自动化步骤。可以重播已录制的脚本以执行操作并验证。基于坐标的识别:此类工具在x/y坐标的帮助下与被测应用程序交互...

  • 回答 2
    已采纳

    POSTMAN缺点:1、只使用单一API场景测试2、无法实现脚本间串联调用3、无法和CI/CD工具结合优点:1、上手容易,调试方便2、适合快速测试、一次性测试开源工具(例:YAPI)缺点:1、断言需要熟悉nodeJS用法2、复杂场景测试数据驱动无法实现优点:1、上手简单,...

  • 回答 4

    Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的进出Fiddler的数据。Fiddler的优点独立的可以直接抓http请求小巧、功能完善快捷、启动就行代理方便...

  • 回答 4
    已采纳

    Poster这是火狐浏览器的一个插件,如果你想调试服务器,发出HTTP请求,Poster操作简单,你先设定一个内容类型,数分钟内,你将拥有需要检视HTTP请求结果的所有信息。PostmanPostman是一款网页调试与发送网页HTTP请求的Chrome插件,它可以利用Chrome插件的形式...

  • 回答 4

    HTTP代理就是介于浏览器和web服务器之间的一台服务器,连接代理后,浏览器不再直接向web服务器取回网页,而是向代理服务器发出信号,代理服务器再想web服务器发出请求,收到web服务器返回的数据后再反馈给浏览器。HTTP代理其作用就是说代理互联网客户去获得网...

  • 回答 3

    1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:HTTP允许传...

没有解决我的问题,去提问