接口自动化测试系列 (一) :APIAutoTest框架介绍

前言

随着测试技术的发展,接口自动化测试逐渐成为各大公司投入产出比最高的测试技术。介入时间早,执行效率高,稳定性高的优点,让越来越多的公司引入接口自动化测试。

框架简介

APIAutoTest是处理API接口的轻量级自动化测试框架,Java语言实现,基于TestNG测试框架,支持持续集成,自动构建与测试。

框架特点

  1. 数据驱动设计,使用TestNG中的@DataProvider读取Excel中存储的自动化测试用例。
  2. 基于TestNG测试框架
  3. 使用HttpClient发送Http请求,并统一接口response返回值为String
  4. 使用fastJson和Jsoup进行数据解析,由于请求返回值的统一,解析数据异常方便,方便接入不同接口类型的数据
  5. 独立封装的检查点“Jsonpath”检查点,极大方便检查点的设置
  6. 在线报告以及Email报告
  7. 持续集成、持续交付、自动构建与测试

框架技术栈图

接口自动化框架图.png

框架组件图

APIAutoTest组件图.png
  • Maven进行项目、依赖管理
  • HttpClient进行通信
  • TestNG测试框架管理测试脚本以及测试驱动
  • FastJson/Jsoup用于数据解析
  • AssertJ用于检查点设置
  • ExtentReports输出具备图表分析的报告
  • SVN+Jenkins实现持续集成

框架执行流程图

APIAutoTest执行流程图.png

测试执行的流程(代码层):

  • 测试执行的入口为TestNG的XML文件,通过读取xml文件中的执行配置信息,
  • 获取测试用例的脚本,测试用例执行分为测试前(@BeforeTest),测试中(@Test),测试后(@AfterTest)
  • @BeforeTest:获取/解析测试数据(Excel文件),接口关联参数化,Cookie装载等
  • @Test:初始化httpclient对象,执行请求,获取响应并转换成String等
  • @AfterTest:jsonpath检查点,对于接口正确/错误请求的逻辑处理
  • 生成在线ExtentReports报告/日志
  • Email报告,测试结果通知测试相关人员

测试用例设计

测试数据.png

测试用例设计:

  • 通过TestNG的@DataProvider获取Excel测试数据
  • 将数据的表头与数据存储在map中,具体使用时方便
  • jsonpathPoint:jsonpath检查点,框架特点之一,极大的方便断言的编写
  • 前后缀的使用:通过前后缀使用来区分统一作用的数据,如请求参数:params
  • 是否运行/检查控制:通过编写测试用例时就可以控制该用例是否运行,是否检查
  • 不足之处:一个接口的测试数据对应一个Excel文件/Sheet表,后期数据量太大

测试报告

report.png

结语

接口自动化测试在这个追求效率的时代,逐渐的取代UI自动化测试,而做接口自动化测试的工具很多,比如soapUI,postman,jmeter等等,但是这些通用的工具的可扩展性以及跟项目的契合度上并不是十分合适。框架的作用在于使测试脚本编写变得简单,增强测试脚本的可维护性,容错率等,提高测试脚本的编写效率,从而提高测试效率。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 前段时间的工作中有接触到接口测试,测试代码以maven工程的形式编写,使用testNG测试框架。工作中,每次...
    Ivanlfli阅读 9,320评论 7 24
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 11,684评论 5 100
  • 感谢原作者的奉献,原作者博客地址:http://blog.csdn.net/zhu_ai_xin_520/arti...
    狼孩阅读 14,784评论 1 35
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 13,006评论 2 126
  • 近也不见 远也不见 惟其如此 眉目才现 轻轻的捧起 却是清水涟漪 轻轻的,我站起 恰似一抹微笑 淡淡的,映在心底
    赛义德的爹阅读 923评论 0 1