接口测试】接口测试最大的意义什么?

2021-03-19 15:08发布

6条回答
大冬瓜
2楼 · 2021-03-19 16:52

1.提高版本发布质量;
2.缩短项目周期;
3.发现更多手工测试难以暴露的问题;
4.提高测试效率;

小小收藏家
3楼 · 2021-03-19 17:07

接口是什么?主要分为两个类型:

  内部接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,例如下订单,首先你需要登录,然后调用下订单接口,两个模块有交互那么相互之间的调用,就属于内部接口

  对外包装的接口:例如A部门做一个买车服务,它卖两种车一是二手,二是新车,那么它要卖二手车,是不是直接可以调用二手车部门共享的数据进行包装,从而是不是达到数据的共享等等,就不一一举例子。

 2. 常用接口采用方式:

  1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;

  2、http  api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和

  post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;

  3. https并非是应用层的一种新协议,只是http通信接口部分用SSL(Secure socket Layer)和TLS(Transport  Layer Security)协议代替而已

  那么上述1,2,3

  webService:返回的格式xml还需要解析麻烦,而且速度可能有降低(目前开发平台等都使用的http(get/post实现的)

  http协议时超文本传输协议(不安全)

  https是安全的超文本传输协议,是安全版的http协议,使用安全套接字层(SSL)进行信息交换。

  https协议主要针对解决http协议以下不足:

  1.通信使用明文(不加密),内容可能会被窃听

  2.不验证通信方身份,应此可能遭遇伪装

  3.无法证明报文的完整性(即准确性),所以可能已遭篡改

  综上所述:目前我们看到的接口测试。,相信大家用的https、http多一些

  4. 前端和后端

  前端:app,网页统称前端(展示-负责貌美如花)

  后端: 后台提供数据,校验,下订单等等处理(负责挣钱养家)

  5. 接口测试概念

  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等(通俗来说就是,检查业务逻辑是否满足业务需求,校验字段是否正常你实际结果是否满足预期)

  6. 接口的组成:

  a、接口说明

  b、调用url

  c、请求方法(get\post)

  d、请求参数、参数类型、请求参数说明

  e、返回参数说明

  7. 为什么要做接口测试,接口测试的目标

  接口其实app和前端交互用的,所以好多人问,为啥做功能测试还要测接口,目标是啥不是多此一举吗?首先我告诉大家,这种想法是错误的

  那么举一个例子:

  例如一个登陆接口,例如产品上规定用户名6-10个字符数字下划线,但后端没做判断。但我们业务人员测试肯定验证,但只是前端做了校验,后端压根就忘了这个小需求。那么后果来了如果一个懂的直接抓包去篡改你的接口,然后绕过校验,通过sql注入直接随意登录。如果你这是一个下单业务,是不是给公司造成了很大损失

  所以此时此刻接口测试目标来了:

  1.可能发现客户端没有发现的bug(那么也叫隐藏bug)

  2.及早爆出风险(保证质量正常上线)

  3.接口稳定了,前端随便改

  4.最重要检查系统安全性,稳定性

  8.常常有人问我怎么测

  1.无非就两种get/post工具postman/httprequest等

  2.状态吗,你至少了解

  例如:200(成功)/300(重定向别的地方)/400(请求语法错误)/500(服务器异常)

  怎么测:

  A. 用例设计(根据业务逻辑来设计用例,登录5次,需要2分钟后再登录 删除关注的车,列表少一条数据)

  B. 参数组合(传入不同值)

  C. 接口安全(绕过验证/绕过身份验证/参数是否加密等)

  D. 异常验证(输入异常参数边界值)

  8. 用什么工具测

  功能:Postman/HTTPrequest/jemter

  自动化:restassured/ python httprequest


桥豆麻袋
4楼 · 2021-03-19 17:13

接口测试是测试工程师的必修课。如果不会接口测试,自动化更别提了, 领导也不相信你能把自动化测试做好。会搭建接口自动化测试框架也是能力体现的一个分水岭。

接口测试的好处:

1.越早发现bug,修复的成本越低。接口测试使“测试更早的投入”变成现实,更能更好的保证软件质量。
2.接口测试可以测试一些界面测试无法测试的范围。
3.接口测试直接测试后端服务,能发现影响范围更广的bug。
4.接口测试更容易与自动化测试系统或者平台结合,比如UI自动化+接口自动化=一体化。


接口测试由于绕开了前端,直接通过请求调用的方式进行测试,所以可以有如下优势:

1.、更早的测试介入,只要接口开发完成,就可以测试
2.、更多的场景覆盖,因为绕开了前端的控制,使得测试场景更自由
3、接口测试从项目的角度,工作量是低于UI测试的,投资回报较高
4、接口测试对于自动化的支撑度更好,有好的接口测试过程,就有可能支持好的接口自动化过程

另外,接口测试可以扩充对于其他类型测试的支持。

比如性能测试,比如安全测试。  如果接口测试不做的话,这两种测试也不好做.

接口测试其实也是最近几年兴起来的东西。主要原因是其高性价比,现在的软件系统越来越复杂,UI测试的收益越来越低,所以接口测试能开始大行其道。
但是接口测试的缺点也很明显,他是脱离用户体验的。在一个如此关注用户体验的时代,测试却要脱离用户体验这显然是一个悖论。所以实际工作中,接口测试和UI测试通常是都需要的。


征戰撩四汸
6楼 · 2021-10-11 15:57

1、更早的发现问题

我们都知道测试工作要尽早的介入到项目开发周期中,因为越早的发现 bug,修复的成本就越低。

然而功能测试一般都要等到系统提供可测试的 UI 界面后才能进行,单元测试又要求较高的专业性和人力成本,所以选择接口测试来更早的介入测试。

接口测试可以在功能界面未开发出来之前对系统的接口进行测试,从而更早的发现总是并以更低的成本修复问题。


2、缩短产品周期

接口测试更早的介入,可以更早的发现并解决 bug,从而使得留到后期功能测试阶段的 bug 数量减少,最终缩短整个项目的上线时间。


3、发现更底层的问题

系统中的有些 bug 如果想通过 UI 层功能测试会比较困难,或者构造测试数据和测试条件非常复杂,而通过接口测试可以更简单、更全面的覆盖到底层的代码逻辑,从而发现一些隐藏 bug。尤其是一些异常的、极端的情况,可以用接口测试很容易的验证。


4、可以覆盖功能测试覆盖不到的测试点

接口测试的粒度比功能测试更小,可以覆盖功能测试覆盖不到的测试点。


5、接口测试相对容易实现

且接口自动化相对UI自动化也较稳定,减少人工回归测试人力成本与时间。


6、弥补前端弱验证的问题

通常把前端的验证称为弱验证,因为它很容易被绕过,这个时候如果只站在功能的层面进行测试,就很难发现一些安全的问题。不以功能为入口的接口测试就会很容易的验证这些异常情况。


7、接口测试能大大提高测试效率

因为一个接口的问题,反应到功能上可能就是七八十来个问题,这样光测试去点点点和提交bug时的描述都得大半天,开发看bug也得大半天,真是吃力不讨好的力气活,所以接口测试要把这类bug扼杀在摇篮里。


123无语呀
7楼 · 2021-11-26 15:04

其意义:1.、更早的测试介入,只要接口开发完成,就可以测试
2.、更多的场景覆盖,因为绕开了前端的控制,使得测试场景更自由
3、接口测试从项目的角度,工作量是低于UI测试的,投资回报较高
4、接口测试对于自动化的支撑度更好,有好的接口测试过程,就有可能支持好的接口自动化过程

相关问题推荐

  • 回答 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允许传...

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