接口自动化测试框架 :APIAutoTest框架
前言
随着测试技术的发展,接口自动化测试逐渐成为各大公司投入产出比最高的测试技术。介入时间早,执行效率高,稳定性高的优点,让越来越多的公司引入接口自动化测试。
框架简介
APIAutoTest是处理API接口的轻量级自动化测试框架,Java语言实现,基于TestNG测试框架,支持持续集成,自动构建与测试。
框架介绍
1. 数据驱动设计,使用TestNG中的@DataProvider读取Excel中存储的自动化测试用例。
2. 基于TestNG测试框架
3. 使用HttpClient发送Http请求,并统一接口response返回值为String
4. 使用fastJson和Jsoup进行数据解析,由于请求返回值的统一,解析数据异常方便,方便接入不同接口类型的数据
5. 独立封装的检查点“Jsonpath”检查点,极大方便检查点的设置
6. 在线报告以及Email报告
7. 持续集成、持续交付、自动构建与测试
框架技术栈图

框架组件图

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

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

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

结语
接口自动化测试在这个追求效率的时代,逐渐的取代UI自动化测试,而做接口自动化测试的工具很多,比如soapUI,postman,jmeter等等,但是这些通用的工具的可扩展性以及跟项目的契合度上并不是十分合适。框架的作用在于使测试脚本编写变得简单,增强测试脚本的可维护性,容错率等,提高测试脚本的编写效率,从而提高测试效率。
接口自动化测试框架 :APIAutoTest框架的更多相关文章
- 接口自动化测试:Thrift框架RPC协议客户端开发
import java.lang.Thread.State;import java.util.Iterator;import java.util.List; import org.apache.thr ...
- 接口自动化测试:apiAutoTest使用re 处理数据依赖
目录 废话 2020/11/19 参数依赖 更新后的效果 新版依赖数据如何使用 源码地址 道谢 废话 目前在工作中写脚本的时候发现了一些之前开源的apiAutoTest的可优化项,后面应该也是会慢慢的 ...
- 接口自动化测试持续集成--SoapUI安装
实际使用: 接口自动化测试持续集成框架:maven+SoapUI+jenkins 1.SoapUI安装文件下载5.1.2 http://pan.baidu.com/s/1c17dJLu安装步骤非常简单 ...
- 接口自动化测试框架 (一) :APIAutoTest框架
前言 随着测试技术的发展,接口自动化测试逐渐成为各大公司投入产出比最高的测试技术.介入时间早,执行效率高,稳定性高的优点,让越来越多的公司引入接口自动化测试. 框架简介 APIAutoTest是处理A ...
- Python接口自动化测试框架: pytest+allure+jsonpath+requests+excel实现的接口自动化测试框架(学习成果)
废话 最近在自己学习接口自动化测试,这里也算是完成一个小的成果,欢迎大家交流指出不合适的地方,源码在文末 问题 整体代码结构优化未实现,导致最终测试时间变长,其他工具单接口测试只需要39ms,该框架中 ...
- 接口测试入门(4)--接口自动化测试框架 / list和map用法 / 随机选取新闻 (随机数生成) / 接口相关id映射
一.接口自动化测试框架 为了更好的组织测试方法,测试用例并且持续集成,我们选择了 java+testNG(测试用例组织)+gitlab(代码版本管理)+Jenkins(持续集成工具) 作为一整套的自 ...
- python版接口自动化测试框架源码完整版(requests + unittest)
python版接口自动化测试框架:https://gitee.com/UncleYong/my_rf [框架目录结构介绍] bin: 可执行文件,程序入口 conf: 配置文件 core: 核心文件 ...
- python 做接口自动化测试框架设计
1,明确什么叫自动化测试,什么叫接口自动化测试,如何设计接口测试用例,已登录为例 自动化测试:解放人力来自动完成规定的测试. 自动化测试分层模型:UI层,不论WEB端还是移动端,都是基于页面元素的识别 ...
- 接口自动化 [授客]基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0
基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0 by:授客 QQ:1033553122 博客:http://blog.sina.com.cn/ishou ...
随机推荐
- C#中继承和构造函数
一个类继承自另外一个类,他们的构造函数改怎么办? 首先必须先声明:构造函数是不能继承的 我们先看一段代码:第一段代码没有构造函数,第二段有一个,第三段有两个.从他们的MSIL可以看出,有几个构造函数就 ...
- windows10最实用的快捷键、高效的windows模式
win+方向键 将软件窗口放置到方向 ctrl+win+左右方向键 切换虚拟桌面 win+tab 选择窗口或虚拟桌面,然后按着win随后放开,界面停留 alt+tab 切换窗口 ctrl+win+D ...
- [转]ubuntu linux下DNS重启后丢失(不是Network-manager造成的情况)
从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvconf/resolv.conf.d/head中加载而来,所以每回改resolv.conf都会失效,在此文件里面已经 ...
- Exception (1) Understanding Exception Handling
When an exception is thrown, it cannot be ignored--there must be some kind of notification or termin ...
- zrender源码分析2--初始化Storage
接上次分析到初始化ZRender的源码,这次关注内容仓库Storage的初始化 入口1:new Storage(); // zrender.js /** * ZRender接口类,对外可用的所有接口都 ...
- [LeetCode 题解]: Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- asp.net——地址栏传递中文参数乱码解决方案
地址栏传递中文参数乱码解决方案: 很多人在使用地址栏传递参数的时候都会遇到一个麻烦的问题(参数为中文时乱码了),那要怎么解决呢? 其实解决这个问题也不怎么难,无非就是给要传递的中文参数一个编码解码的过 ...
- [转]解读Unity中的CG编写Shader系列7——漫反射
如果前面几个系列文章的内容过于冗长缺乏趣味着实见谅,由于时间原因前面的混合部分还没有写完,等以后再补充,现在开始关于反射的内容了.折射与反射在物理世界中,光的反射与折射往往是同时存在的,光源由真空或者 ...
- 理解图像Garbor和HOG特征的提取方法及实例应用
前言:今天接触到了这两个特征,看了课本和博客后很蒙蔽,没有理解这两个特征,本篇博客的目的是只是参考其他的博客总结这两个特征,如果未来能研究和工作领域是这方面的话再回来自己研学,如有错误也欢迎指出. G ...
- Logstash使用grok解析IIS日志
Logstash使用grok解析IIS日志 1. 安装配置 安装Logstash前请确认Elasticsearch已经安装正确,参见RedHat6.4安装Elasticsearch5.2.0. 下载链 ...