浅谈接口自动化测试

tao之夭夭 tao之夭夭     2022-11-29     788

关键词:

昨晚在某个测试交流群,听了一个测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一些认识,也为接下来公司的接口自动化实施,提供了更多的思路。

这篇博客,就说说功能测试到接口自动化的进阶,以及接口自动化的一些事。。。

 

前言

自动化测试,算是近几年比较火热的一个话题,当然,更是软件测试未来的一个发展趋势。未来,功能测试等非核心的测试工作,都将被外包。

想要在软件测试这个行业继续前行,就必须拥有核心竞争力,掌握自动化测试技术,是必不可少的一个技能。

在《Google软件测试之道》一书中有介绍到:在Google,70%的自动化测试工作集中于单元测试,20%集中于接口测试,剩下10%才是UI测试。

诚然,我们没有Google那么完善的机制和工程师文化,没必要一切照搬Google,但Google作为互联网2.0时代最耀眼的一个公司,它的技术发展方向,流程管理等可以说是不久的将来,

我们也要到达的方向。选择适合自己的,落地应用,是当下我们应该做的。

目前国内的互联网行业,大环境来说,还处在一个快速发展,需要流程化标准化的时期,如何跟上不断变幻发展的节奏,除了不断了解接触新的东西,还需要不断学习,提升自身,以内在

的驱动力,去紧跟时代浪潮。即使做不了弄潮儿,也不能变成时代淘汰的那一批。说到这里,推荐2本书:吴军的著作《浪潮之巅》、《硅谷之谜》,感兴趣的童鞋可以去看看。。。

 

一、接口测试的必要性和意义

接口,即API,应用程序编程接口,关于接口的介绍,之前的博客就有详细介绍过,感兴趣的童鞋可以去看看:接口测试简介

这里主要说说接口测试的必要性和意义:

接口测试实施在多系统的平台架构下,有着极为高效的成本收益比(当然,单元测试收益更高,但实施单元测试的成本投入更大,技术要求更高,所以应该选择更适合自身的才是最好的方案)。

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

总的来说,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益驱动作用下的最佳方案,主要体现在如下三个方面:

1、节省了测试成本

   根据数据模型推算,底层的一个程序BUG可能引发上层的8个左右BUG,而且底层的BUG更容易引起全网的死机;接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。

2、接口测试不同于单元测试

   接口测试是站在用户的角度对系统接口进行全面高效持续的检测。

3、效益更高

   将接口测试实现为自动化和持续集成,当系统复杂度和体积越大,接口测试的成本就越低,相对应的,效益产出就越高。

 

二、做接口测试需要哪些技能

关于这点,在之前的博客也说过,传送门:做接口测试需要哪些技能

做接口测试,需要的技能,基本就是以下几点:

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

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

协议:包括http协议,TCP/IP协议族(之前的博客有系统的介绍过协议,传送门:http协议:菜鸟入门系列

工具:工具可以辅助我们更好更高效的完成工作,常用的接口测试工具有:jmeter、loadrunner、soapui、postman等;

数据库知识:无论是从数据库获取知识,还是确认数据落地,抑或接口对数据执行了哪些操作,都需要确认,因此数据库知识(其实就是增删改查)就很有必要;

补充:接口文档的几个必要点:完整性、一致性、容错性

 

三、接口自动化测试

1、如何开展

首先,调试单个接口,保证单个接口的正确和通畅(类似于性能测试中的基准测试);

其次,明确数据流,业务流;

最后,将N个接口测试脚本串起来,执行即可;

最重要的一点,别想太多太复杂,先把最基础最简单的做起来,就成功一大半了,至于扩展性的第三方接口、https、定时任务、自动出测试报告、自动发邮件等等功能,这都是不断累计和优化的,

行动起来就行,想太多不如行动起来,让接口自动化测试落地,才是我们首先需要考虑的!

2、开展之前需要知道的

现在的测试对象包含几个页面?

每个页面涉及几个接口?

分别在哪一步调用?

每个接口包含哪些字段?

各个字段对应数据库哪张表?

每个表中各个字段是什么意思?

各个接口对表产生了怎样的操作?

3、自动化框架

什么是框架?你可以理解为一个完整的环,也可以理解为让接口测试脚本运行的一整套环境,平台,随便什么都可以;一般一个自动化测试框架包含以下几点:

数据池:即测试数据的存储管理,一般集成为一个data包,其中包括:

       log(日志文件)、report(测试报告文件,一般为xml格式)、case-data(单个接口的测试数据,一般为json格式)、server-data(接口业务串联的数据,可以用excel管理)

脚本管理中心:接口测试脚本的统一管理、存储、调度中心,常用的工具有maven、ant等,或者可以使用编程语言中的单元测试框架提供的功能,选择自己适用的即可;

运行平台:一般是借助工具来运行这些测试脚本,工具可以使用上面提及到的几种(jemter、loadrunner、soapui等),同样,选择合适的很重要;

持续集成工具:最常见的就是Jenkins,它的作用就是监控外部程序的调用执行,定时或者触发调度任务,测试脚本执行等功能;

通信服务:dubbo、spring_boot、thrift等RPC、REST同步调用服务;

测试结果统计管理中心:比如testlink,目的是为了测试结果自动更新上传,更好的统计测试结果,以便后期的优化;

上面说了这么多,实际上它的意义就是:数据与脚本分离,测试结果自动提交通知,提高测试脚本和测试数据的维护便利等等。。。

我正在使用的框架为:pytest

 

关于接口自动化测试,基本就是上述的内容,当然,选择适合自身实际情况的框架,落地实施,才是重点,行动起来,才能咸鱼翻身。。。

浅谈接口自动化测试

...晚在某个测试交流群,听了一个测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一些认识,也为接下来公司的接口自动化实施,提供了更多的思路。 这篇博客,就说说功能测试到接口自动化... 查看详情

[原创]浅谈互联网金融接口测试平台搭建

...接口测试技术介绍  PostMan接口测试神器利剑  浅谈自动化测试中的金字塔模型理解  以上三篇内容会讲解为什么要重视接口测试?好的工具推荐,当然还有接口测试基本内容,如感兴趣可 查看详情

浅谈接口diff测试

...:https://mp.weixin.qq.com/s/6H-AGaqpwf47gcxs2Sw9fQ所有的手工CASE和自动化CASE都跑了,上线为啥还经常有问题呢? 服务端语言由PHP语言改成GO了,原来的接口逻辑我又不了解,怎么测试? 测试环境测的好好的,上线后由于开发部署... 查看详情

浅谈自动化测试行为的本质

今天跟大家讲解的是自动化测试行为的本质是什么?会有很多人都说自动化测试可以零基础入门,可是对于新手来说,总是把自动化看得很高端和复杂。下面就跟大家讲讲什么是自动化行为的本质。 先来看看功能测试如何进... 查看详情

浅谈pytest+httprunner如何展开接口测试(代码片段)

...测试。本文着重介绍了如何借用pytest与httprunner进行接口自动化测试。一、什么是接口测试Incomputing,aninterfaceisasharedboundaryacrosswhichtwoormoreseparatecomponentsofacomputersystemexchangeinformation.Theexchangecanbebetweensoftware,computerhardware,peripheraldevices,... 查看详情

浅谈自动化测试

...,对提高软件质量起着重要作用。随着软件测试的发展,自动化测试技术也得到了很大提高。本文首先介绍了自动化测试的概念、分类和现状,并分别对不同端上的自动化测试实现原理进行了详细地分析和阐述,通过对目前主流... 查看详情

浅谈接口测试

一、接口测试的必要性和意义这里主要说说接口测试的必要性和意义:接口测试实施在多系统的平台架构下,有着极为高效的成本收益比(当然,单元测试收益更高,但实施单元测试的成本投入更大,技术要求更高,所以应该选... 查看详情

浅谈自动化测试

...在学习python,正好部门技术结构调整,就开始了点工向UI自动化测试的转变,我要说瞌睡来了就掉枕头么?不过还好,可以将python的学习成果在自动化测试中实践。。。 1、about自动化测试定义:把人为驱动的测试转化为机器... 查看详情

接口自动化测试测试用例设计

参考技术A浅谈接口自动化测试测试用例设计一、 前言  很多中台项目,大部分为接口测试。为了使新入职的测试同事尽快融入项目,以及迭代开发中方便管理测试用例。完成该总结。二、 测试用例设计思路 &#... 查看详情

sockt-浅谈接口性能测试脚本编写

平时我们做的都是http请求的接口测试,初次接触socket接口还是有点不知如何下手,其实他如http接口请求区别并不是很大,也是接口的链接-发送数据-断开连接这三大步骤来实现:以下文章转载自:http://lovesoo.org/how-to-use-loadrunner-... 查看详情

浅谈硬件自动化测试框架

关于自动化测试框架,默认都是针对纯软件的,并且集中在web和app应用软件。故而准确的说应该是软件产品自动化测试框架。本文将针对硬件产品,谈谈个人对硬件自动化测试框架的一些看法。背景物联网技术正在高速发展,相... 查看详情

关于自动化学习浅谈二

什么是自动化测试?自动化测试的原理是什么?常用哪些工具?常用哪些框架?工具的原理又是什么?自动化如何学习?自动化的优点与缺点是什么?价值在哪里?学习自动化测试要了解与掌握哪些内容?哪些项目适合自动化测... 查看详情

浅谈自动化测试之持续集成

...,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚 查看详情

浅谈音视频自动化测试(代码片段)

理清音视频/多媒体/播放器自动化测试的思路,可以从以下几个角度来思考。1.测项设计1.1.功能测试对各类传输协议、封装格式、编码格式的支持,在编码格式测试方面,又涉及到各类编码参数的组合,测项数量... 查看详情

9个问题浅谈自动化测试与测试用例的编写

  1、请问一般情况的安全测试都是从哪几个方面展开的?  安全测试主要针对以下漏洞类型进行测试,顺便罗列一些常用的测试工具、80%都是我们在用的。  (1)弱口令Nessus\\X-scan\\h-scan\\hydra  (2)ACL访问控制列表暴露在外... 查看详情

浅谈分布式全闪存储自动化测试平台设计

...布式全闪的基本架构,根据对存储架构的理解和软件自动化测试系统理论的研究,指出软件自动化系统需涉及的主要方面,为软件自动化测试系统实现奠定基础。根据软件测试需求(功能、可靠性、性能)ÿ... 查看详情

浅谈自动化测试|初遇自动化测试(代码片段)

浅谈自动化测试自动化测试(Testautomation)是近年来逐渐兴起的软件开发流程,本系列文章将藉由作者过去的开发经验,与大家分享PHP/Laravel结合自动化测试的理论与实务,希望能对初学PHPUnit及自动化测试的同... 查看详情

浅谈自动化测试|有关assertion的这些函数,你了解吗?(代码片段)

浅谈自动化测试自动化测试(Testautomation)是近年来逐渐兴起的软件开发流程,本系列文章将藉由作者过去的开发经验,与大家分享PHP/Laravel结合自动化测试的理论与实务,希望能对初学PHPUnit及自动化测试的同... 查看详情