• 12
  • 13
分享

前言

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

框架简介

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

框架介绍

  1. 数据驱动设计,使用TestNG中的@DataProvider读取Excel中存储的自动化测试用例;

  2. 基于TestNG测试框架;

  3. 使用HttpClient发送Http请求,并统一接口response返回值为String;

  4. 使用fastJson和Jsoup进行数据解析,由于请求返回值的统一,解析数据异常方便,方便接入不同接口类型的数据;

  5. 独立封装的检查点“Jsonpath”检查点,极大方便检查点的设置;

  6. 在线报告以及Email报告;

  7. 持续集成、持续交付、自动构建与测试。

框架技术栈图

1.png

框架组件图

2.png

  • Maven进行项目、依赖管理

  • HttpClient进行通信

  • TestNG测试框架管理测试脚本以及测试驱动

  • FastJson/Jsoup用于数据解析

  • AssertJ用于检查点设置

  • ExtentReports输出具备图表分析的报告

  • SVN+Jenkins实现持续集成

框架执行流程图

3.png

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

  • 测试执行的入口为TestNG的XML文件

  • 获取测试用例的脚本,测试用例执行分为测试前(@BeforeTest),测试中(@Test),测试后(@AfterTest)

  • @BeforeTest:获取/解析测试数据(Excel文件),接口关联参数化,Cookie装载等

  • @Test:初始化httpclient对象,执行请求,获取响应并转换成String等

  • @AfterTest:jsonpath检查点,对于接口正确/错误请求的逻辑处理

  • 生成在线ExtentReports报告/日志

  • Email报告,测试结果通知测试相关人员

测试用例设计

4.png

测试用例设计:

  • 通过TestNG的@DataProvider获取Excel测试数据;

  • 将数据的表头与数据存储在map中,具体使用时方便;

  • jsonpathPoint:jsonpath检查点,框架特点之一,极大的方便断言的编写;

  • 前后缀的使用:通过前后缀使用来区分统一作用的数据,如请求参数:params;

  • 是否运行/检查控制:通过编写测试用例时就可以控制该用例是否运行,是否检查;

  • 不足之处:一个接口的测试数据对应一个Excel文件/Sheet表,后期数据量太大。

测试报告

5.png

结语

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


作者:山丘

原文链接:https://www.cnblogs.com/weientesting/p/7407425.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、Linux系统的特点安全、稳定;Linux的发行版本,多且专业;Linux开源;Linux的多任务管理;Linux支持多用户登录。二、Linux系统命令的分类1、目录操作和管理命令cd mkdir rmdir rm pwd ls2、文件操作和管理的命令vi cp mv cat touch more less head tail3、权限管理命令chmod chown chgrp4、资源管理命令rpm yum tar5、用户管...
            10 10 859
            分享
          • 目前,许多软件公司组织了一些小型敏捷团队。这些团队可能在不同项目或同一个项目不同部分中工作。我经常参观这些公司,他们有大型开放式办公室、大桌子、帖满了五颜六色便利贴的白板,有时这些便利贴像秋天的落叶落在地板上、太多太多的耳机以及总是不够用的办公室。是不是听起来很熟悉,Spotify?Skype?我对这些地方的熟练敏捷测试有一个建议:一个称为"空降测试员"的角色。这个名字来自精英型消防员"空降消防员"。一个空降测试员是一个训练有素、满怀激情的测试领导者(参考我针对测试领导者所写的"有责任心的测试人员"),他"空降"到...
            0 0 1919
            分享
          • 1、什么是POM,为什么要使用它?POM是Page Object Model的简称,它是一种设计思想,而不是框架。大概的意思是,把一个一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,所以自然而然就用了类的思想来组织我们的页面。一般一个页面写一个类文件,这个类文件包含该页面的元素定位和业务操作方法。为了我们测试用例写的简单,清晰,我们很多时候在页面对象会封装很多业务操作方法,测试脚本只需要调用相关方法就可以。2、如果页面元素经常发生需求变化,你是如何做?采用POM思想。好处就是只要改一个页面,我就去修改这个页面对象的元素定位和相关方法,脚本不需要修改。3 在你做自动...
            13 12 1635
            分享
          • 8月25日凌晨消息,苹果公司刚刚向媒体发出2022年秋季发布会邀请函,确定将于美国当地时间9月7日(北京时间9月8日凌晨一点)举行特别活动。此次仍然采用线上形式,预计iPhone14系列、AppleWatchSeries8等产品将会在此时间推出。在发布会正式到来之前,新浪数码给大家盘点一下本次秋季发布会可能有哪些新品。iPhone 14系列作为本次发布会的主角,iPhone14系列预计将会发布4个版本型号。据此前爆料,iPhone 14系列没有mini版本,取而代之的是拥有更大电池容量与屏幕尺寸的iPhone 14 Max。所以iPhone 14系列预计共有iPhone 14、iPhone 1...
            0 0 1006
            分享
          • 前言最近跟一位朋友聊天,福报场-阿里是大部分程序员的梦想。这位老哥梦想进入阿里很久了,连续两年面试阿里不同bu,有几次是技术面挂,最冤的一次是技术6面了,连P10大老板都面了,但是挂在了hrg。我以仰望的视角望着老哥,表示能够通过6轮技术面试已经很牛了,但是最后跪在了hrg实在有点可惜。正文hrg究竟是一种什么存在?。“阿里HRG”:HR generalist,可翻译为HR多面手。HRG的面试总则是什么?提问问题比较刁钻,不像一般的公司,只要通过了技术或业务面试,hr小姐姐,只是与你简单聊聊,真的是简单聊聊,比如你的家庭、学业情况,有什么兴趣爱好,期望薪资是什么,对未来的工作有什么期望,一切都...
            0 1 2447
            分享
      • 51testing软件测试圈微信