随着公司各部门对质量的日益重视,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自动化测试的同仁们提供一些帮助和参考!

转载于:https://www.cnblogs.com/lymeda/p/3893127.html

【转账】API自动化测试相关推荐

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

    不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互.在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及 ...

  2. api自动化测试_API测试和自动化101:基本指南

    api自动化测试 API代表A pplication P AGC软件我覆盖整个院落. 通常,API用于通过使用任何通信方式来促进两个不同应用程序之间的交互. 在网络上使用API​​时,我们将其称为&q ...

  3. Cucumber+Rest Assured快速搭建api自动化测试平台

    转载:http://www.jianshu.com/p/6249f9a9e9c4 什么是Cucumber?什么是BDD?这里不细讲,不懂的直接查看官方:https://cucumber.io/ 什么是 ...

  4. python自动化测试脚本可以测php吗_python unittest实现api自动化测试_python

    这篇文章主要为大家详细介绍了python unittest实现api自动化测试的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 项目测试对于一个项目的重要性,大家应该都知道吧,写python的 ...

  5. postman如何测试php接口_基于Postman的API自动化测试

    基于Postman的API自动化测试 1.安装 两种安装方式,我热衷于以chrome插件形式安装 Chrome插件 Mac App 2.发送请求 Postman最基础的功能就是发送http请求,支持G ...

  6. 使用Postman做API自动化测试

    Postman API 自动化测试 Postman 最基本的功能用来重放请求,并且配合良好的 response 格式化工具. 高级点的用法可以使用 Postman 生成各个语言的脚本,还可以抓包,认证 ...

  7. 什么是API测试?开发必知的8种API自动化测试类型

    API测试 API自动化测试在产品质量控制和CI/CD流程检测中扮演着非常重要的角色.与GUI测试不同,API测试可以更灵活应地适应发布周期短和频繁变更的需求或产品,而且也不会破坏测试输出结果. 什么 ...

  8. 效率神器Apifox_API 文档、API 调试、API Mock、API 自动化测试工具推荐

    文章目录 前言 API 文档设计 - 代码未写 文档先行 核心功能 快速上手 接口路径 基础信息 请求参数 参数中使用环境变量(或全局变量/临时变量) 返回响应 接口调试 / 接口用例 快速上手 保存 ...

  9. 支付付宝个人转账API,在线生成转账二维码API

    支付付宝个人转账API,在线生成转账二维码API 代码 alipays://platformapi/startapp?appId=09999988&actionType=toAccount&a ...

最新文章

  1. 一个技术总监的忠告:精通那么多技术,你为何还是受不到重用?
  2. Python fileinput模块:逐行读取多个文件
  3. Windows环境下的NodeJS+NPM+Bower安装配置
  4. 寒武纪抢答2020:一季度同比亏损扩大377%,86%营收大约在下半年
  5. 国际农产品市场谋定特点趋势 对话国际农民丰收节贸易会
  6. boost::fibers模块实现multiple streams的测试程序
  7. 数理统计-5.2 样本数据的整理和显示
  8. SignalR--Web客户端
  9. iptables二之防火墙SNAT源地址转换,MASQUERADE地址伪装之DNAT目标地址转换讲解和实验演示
  10. php clearinterval,JavaScript定时函数(2)setInterval与clearInterval
  11. 一个计算机爱好者的不完整回忆(三十一)我的拼音输入法
  12. 检查日期是否为节假日api
  13. CSICTF2020随缘Writeup
  14. WXpython下载很慢安装包教程,直接安装不上,只好把所有包下载下来
  15. kakfa如何查询指定消费组lag
  16. 单片机的智能垃圾桶设计
  17. redmine配置邮箱提醒步骤(qq企业邮箱和个人邮箱)
  18. sub( ,amp;) C语言,C语言与C++不同之函数定义
  19. 1.创建一个自定义控件
  20. python上传excel文件_python读写Excel python实现Excel上传

热门文章

  1. 接口自动化测试中的用例编写问题总结
  2. python遍历字典的具体位置_python遍历字典
  3. linux 三维数据绘图软件,Linux下开发基于.NET的三维绘图程序
  4. jsp中接收java的返回值_jsp中request的一些方法返回值
  5. 服务器日志监控系统怎么解决,服务器日志监控系统
  6. SQLite Tutorial 4 : How to export SQLite file into CSV or Excel file
  7. 生成式对抗神经网络code实现
  8. 柑橘黑斑病反射光谱特性与染病果实检测方法研究
  9. php log 行号 debug_backtrace,PHP 基于debug_backtrace的流程日志与日志分析
  10. mysql centos6_Linux下的Mysql的基本操作(CentOS6.6)