【转账】API自动化测试

随着公司各部门对质量的日益重视,API测试已成为日常的测试任务之一,为了提高测试效率,减少重复的手工操作,API自动化测试也逐渐变得愈加重要,本文是自己在API自动化测试方面的一些经验积累和心得、汇总成文,以飨读者。    什么是API,个人认为狭义理解API就是系统对外暴露的一些接口,供系统内部其他模块或者外部系统进行调用,如TD、harvest都有自己对外暴露的一些API,以供在其基础上进行二次开发,本文仅针对loushang平台的API进行讲述,目前loushang平台主要的API主要集中在BSP和BPM两大模块,大约300余个。    介绍API自动化测试之前,有必要首先介绍一下传统的API测试,所谓传统的API测试就好比传统的手工功能测试类似,针对某个功能点或者业务场景,准备一些数据,执行测试,其优点是测试速度快,但是缺点也非常明显,不能自动化,不能重复执行,需要人工的实时操作,功能的自动化测试相对比较简单,有许多现成的自动化测试工具可供选择,如QTP、Rational Function Test等等,API的自动化测试门槛则相对较高,一是适合的工具少,二是需要了解被测API的使用场景,三是需要吃透被测API的代码逻辑和后台数据结构,并能够设计相应的测试数据,以覆盖各种业务场景和代码的分支结构。    工欲善其事必先利其器,做API自动化测试之前,也需要借助一些外部工具,然后可以根据自己项目的需要,对外部工具进行改造,以适合自己的需要。做API自动化测试首先需要熟练掌握相关的程序语言,就loushang平台API而言,Java语言的熟练掌握是必不可少。还有就是当今非常流行且非常受欢迎的测试框架Junit4,Junit框架提供了许多断言,和实用的一些注解,这些是自动化测试的前提。另外,Ant对Junit提供了很好的支持,可以生成测试报告,用户可根据需要,对ant-junit进行改造,如对测试报告进行汉化,添加一些自己关注的但是报告中没有的一些信息等。    90%以上的API是和数据库打交道的,测试如何准备?数据库如何恢复?这也是自动化测试面临的一大难题,推荐使用DBunit,DBunit可以将数据库表导出至xml和xls文件进行备份,同时支持将xml、xls数据文件导入至数据库表,测试之前,如在junit测试用例的before阶段,将相关数据库表进行备份,并将测试数据(一般用xls或xml文件存放)导入至相应的数据库表,测试用例执行完成后,将备份的数据库表重新还原至数据库,如此,一则实现了测试数据和测试代码的分离,二则保证了测试数据库中的数据不受影响。    在进行数据的导入导出时,有时颇受外键约束的困扰,比如测试某个API,该API只关联2个数据库表,但是有n个其他表与这2个表存在外键约束,准备测试数据时,很是麻烦,建议执行测试时,如有必要可以将数据库的外键约束暂时禁用,测试结束后,再将外键约束启用,至于启用外键、禁用外键的方法,不同数据库方式不太一样,读者可自行研究。    API测试时,有时还会遇到一些无关紧要的对象,但是这些对象又非常难以构造并且测试该接口又离不开它们,如Resultset、request、session等,这时可以使用对象模拟技术,如EasyMock、Jmockit等,非常好用。    API测试属于白盒测试,为了更为清楚的展现测试覆盖率,一般测试完成后,出了测试报告之外,还会出具一份测试覆盖率报告,业界有不少的测试覆盖率工具可供选择,如Cobertura等,Cobertura会生成一个非常漂亮的测试覆盖率报告,读者可以研究一下,如何与自己的测试环境进行集成。    测试报告、测试覆盖率报告生成后,一般都是一些html文件,API自动化测试,由于有时需要通过定时任务(可利用windows定时任务或自行开发java定时器)自动执行,需要将测试报告通过邮件的方式发送给相关测试者,所以,我们还需要掌握打包工具(ant已提供,可简单包装后使用),邮件发送工具(javamail挺好用,可研究)。    至此,API自动化测试所需要的技术基本介绍完了,一些项目个性化的东西(如登录模拟、sca服务加载、spring容器加载)还需要根据实际需要进行研究,梳理一下整个流程如下:    Windows定时任务or自行开发定时器----》执行bat批处理命令----》bat中调用ant----》ant执行junit测试用例---》执行完成后将测试报告和测试覆盖率报告打成zip压缩包---》将压缩包作为附件邮件附件发送给相关人员。    拓展,为进一步改进测试架构,简化测试代码编写,可以考虑使用Unitils框架,Unitils整合了junit和easymock,可有效的简化测试代码的编写。    小结,本文是根据自己当前的测试流程和框架为蓝本汇总而成,希望能为有志于API自动化测试的同仁们提供一些帮助和参考!

【转账】API自动化测试,布布扣,bubuko.com

时间: 2024-08-09 02:20:24

【转账】API自动化测试的相关文章

Postman+Newman+jenkins实现API自动化测试

最近自己在学习用postman+newman+jenkins实现API自动化测试,这里做个回顾和记录.(此次是在windows上进行的环境搭建) 一.说明 1.大致思路:利用postman做接口调试所搜集的collection导出.json文件,再利用newman命令运行.json文件和得出测试结果,最后集成到jenkins实现自动化. 2.环境说明:postman基于JavaScript语言,postman的脚本(json文件)运行依赖newman环境,而newman环境依赖JavaScrip

HTTP API 自动化测试从手工测试到平台的演变

不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互.在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及早参与到调试中来呢?既然 API 是基于约定开发,为何不按照这个规范编写测试用例,直接进入待测试状态,使用自动化的方式来推进研发过程的质量改进呢?遵循:测试 -> 重构 -> 测试 -> 重构,这样的闭环,过程产出的质量会更加可控,在重构的同时进行快速的功能回归验证,大大提高效率.下面主要讲

API自动化测试指南

我相信自动化技能已经成为高级测试工程师总体技能的标配.敏捷和持续测试破坏了传统的测试自动化实践,导致测试工程师重新考虑自动化的完成方式.当今的自动化工程师需要在GUI的下方深入到API级别完成软件质量的保护. 导致转向API测试的第二个变化是物联网.物联网是具有嵌入式功能的日常对象,允许它使用HTTP或HTTPS在Web上进行通信以与远程后端服务进行通信. 下面分享一下API测试的基础使用指南: 什么是API测试? 应用程序编程接口(API)是充当软件组件接口的规范.大多数功能测试都涉及测试网页

Postman + newman + jenkins 的API自动化测试应用

一.环境配置 Postman postman 的具体使用可以参考另外一篇文章:postman 做接口测试之学习笔记 Newman 第一步,安装nodejs. 第二步,在nodejs命令行安装newman,即命令行输入如下命令: npm install -g newman jenkins 去官网(https://jenkins.io/index.html)下载jenkins 二.Postman + Newman + jenkins 的使用 1. 在postman中导出testcase 文件夹(即存

REST API 自动化测试 利器Rest Assured(API接口自动化测试框架体系)

现在,越来越多的 Web 应用转向了 RESTful 的架构,很多产品和应用暴露给用户的往往就是一组 REST API,这样有一个好处,用户可以根据需要,调用不同的 API,整合出自己的应用出来.从这个角度来讲,Web 开发的成本会越来越低,人们不必再维护自己的信息孤岛,而是使用 REST API 互联互通 那么,作为 REST API 的提供者,如何确保 API 的稳定性与正确性呢?全面系统的测试是必不可少的.Java 程序员常常借助于 JUnit 来测试自己的 REST API,不,应该这样

API自动化测试 Soap UI工具介绍

一.   建立测试用例 (一)   基本概念 soapUI 中工程的层次结构 项目名称:位于最上层 (BookStoreTest),项目可以包含多个服务的定义. REST 服务定义:服务其实是对多个 REST 资源的一个分组,在我们的例子中只有一个服务 BookStoreServie REST 资源定义:具体描述该资源的名称,URI, 参数等属性 REST 方法定义:针对每个资源的方法 (GET,POST,PUT,DELETE 等 ),图 1 中的方法名就是 GetBookList REST 操

初学者的API测试技巧

API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试.它是集成测试的一部分,它确认API是否满足测试人员对功能.可靠性.性能和安全性的期望.与UI测试不同,API测试是在没有GUI层执行操作的. API测试技巧 Web API有两大类Web服务:SOAP和REST.SOAP(简单对象访问协议)是W3C标准定义的一种标准协议,用于发送和接收Web服务请求和响应.REST(表示状态传输)是使用HTTP的基于Web标准的体系结构.与基于SOAP的Web服务不同,没有针对RESTful

初学者的Api测试技巧!值得收藏!

初学者的Api测试技巧!API测试是一种直接在API级别执行验证的软件测试.它是集成测试的一部分,它确认API是否满足测试人员对功能.可靠性.性能和安全性的期望.与UI测试不同,API测试是在没有GUI层执行操作的.API测试技巧Web API有两大类Web服务:SOAP和REST.SOAP(简单对象访问协议)是W3C标准定义的一种标准协议,用于发送和接收Web服务请求和响应.REST(表示状态传输)是使用HTTP的基于Web标准的体系结构.与基于SOAP的Web服务不同,没有针对RESTful

移动端开发流程分享

1.由于产品及UI能力限制,不能达到理想状态,从以往项目开发中总结发现,在开发及测试周期中发现需求缺陷问题,需要花费大量的沟通成本,导致项目周期有所影响并严重影响开发效率和开发质量,解决方案:再产品需求.原型设计及UI阶段,开发需要严格把控质量,帮助产品提升交付件的质量 2.由于接口开发人员未讨论确定接口具体细节,接口需求方和接口开发者只通过文档修改,接口开发不按照规范执行,随意性太大,不能保证开发质量按时交付,导致接口需求方工期受到严重影响,从而移动端交付件质量得不到保证.为了解决接口问题:制