如何搭建接口自动化测试框架?

经过了一年多的接口测试工作,旧的框架也做了一些新的调整,删除了很多冗余的功能,只保留了最基本的接口结构验证、接口回归测试、线上定时巡检功能。

一、框架的演进

  1. 界面 UI 做了优化,整个框架的画风突然不一样了(人靠衣装马靠鞍 实话)

  2. 加入了虚拟 DNS 切换技术

    <dependency>
        <groupId>io.leopard</groupId>
        <artifactId>javahost</artifactId>
        <version>0.3-SNAPSHOT</version>
    </dependency>

    可以动态配置 host 信息,对接口测试环境进行灵活切换
    Dns dns = new DnsImpl();
    dns.update(host,ip);

  3. 更换了 http 请求调用层,改为 rest-assure TesterHome
    这块怎么说呢,因为 rest-assured 也是封装的 HttpClient,如果只是调用入口,优势就不那么明显了,但如果要对各节点进行验证那么 rest-assured 的优势还是非常明显的。
    但我们平台主要验证结构,jsonpath 验证对于空结点处理存在一些问题,还是沿用了旧的 JSonArray 包进行处理。

  4. 框架抛弃了数据、业务逻辑的验证
    我们这边接口测试周期非常短,为了在有限的时间内完成测试任务,测试同学与服务端并行开发测试脚本,使用灰盒测试可以更加快速完成结构、数据、逻辑验证。(灰盒测试前期试行过程中发现此方法更适用于现有工作,所以框架抛弃了数据、业务逻辑的验证)

  5. 为业务测试提供一些测试小工具

二、个人对自动化框架的看法

  1. 能够做好、落实一点或几点,就是成功的
  2. 能够为测试团队带来技术创新、测试质量或效率提高,就是成功的
  3. 一定要基于公司内部现状搞自动化
  4. 团队成员要达到统一认可、统一目标,一个人使劲一定比不过一群人使劲。
  5. 看到机会一定要抓住,再慢慢落实向前推进,执行过程中如不可行,一定要及时换路子......

公司看重的是结果,过程不重要。。。。。但是对于团队成员来说过程是重要的,经过一年多的摸爬滚打,我们团队也已经从最初的功能测试、自动化测试到现在的灰盒测试,白盒测试,慢慢转变成了一个从技术角度推进质量的测试开发团队。

不过话又说回来,有一个支持你的领导才是最重要的,起步最难,尤其是初期,建议先把团队的头拉到统一战线,后续工作才好进行!

前言

经过了一年的演进,旧的框架也做了一些新的调整,删除了很多冗余的功能,只保留了最基本的接口回归测试、线上定时巡检功能

加入了虚拟 DNS 切换技术

io.leopard
javahost
0.3-SNAPSHOT

可以方例的配置 host 信息,对接口测试环境进行灵活切换
Dns dns = new DnsImpl();
dns.update(host,ip);

更换了 http 调用层TesterHome

目前在做接口测试方面的工作,结合部门现状,初步整理及搭建了 api 的自动化测试框架,现在把我的思路、框架结构和大家分享出来,一方面希望可以为大家提供一些参考,另一方面也希望大家多提意见,以便测试框架的改进~~

主要目的:

1, 各版本用例管理
2, 结构验证、节点数据正确性校验
3, 简单业务逻辑覆盖
4, 各版本回归性测试
5, 线上环境监控及预警
6, 帮助开发、测试快速的执行接口测试,定位问题

 

大体构建流程:

一、.接口所涉及的信息都以数据结构形式进行存储。
1,对接口、接口的输入、输出参数进行数据存储(POST、GET)

考虑到接口返回值一般都较庞大、逻辑关系较复杂,如果单靠人工进行采集的话工作量非常巨大,为了缓解压力提供了通过json串解析输出结构的功能。

 

二、测试用例与接口进行关联,(支持自动、手工 case;正常、异常状态校验)
将收集的输入、输出数据以树型结构展现,通过简单的勾选来完成测试用例的输入参数及预期输出结构进行关联生成测试用例。

除了支持对JSON结构的校验,同时集成了selenium,实现对返回值为HTML的页面进行规则校验的功能

 

三、测试用例的输入参数可配置,也支持与上行接口的输出参数进行关联。
可以配置上行接口,取得相应节点对应值,自动赋予当前用例接口参数。

 
  1. 比如有些接口需要在登陆或其他的情况下去操作,那么就可以配置上行接口,模拟登陆,然后取得登陆key,用key做为参数去执行用例。

  2. 也支持选取规则配置中预先定义好的规则参数

 

四、接口多种模式执行方式。
提供多样的执行入口

将接口各用例的执行情况(接口耗时 、成功与否、失败原因、异常节点等)信息,记入日志管理模块,同时为测试人员提供测试结果查询页面,对测试结果做大体的分析,尽可能的帮助测试人员去定位接口中存在的问题。

 

对于频繁变动的接口,影响范围又比较模糊,完全可以以大版本进行自动化回归测试,排查影响范围,以减少人工遗漏。
五、支持各类验证规则配置(集合、长度、类型、格式等)
除了对输出结果进行简单的规则验证外,也支持输入参数集合绑定,可以对集合内所有项进行循环调用、循环验证排查。

 

六、日常巡检、线上预警功能
当接口打上巡检标识后,系统就会每天定时自动排查接口;同时协助线上环境监控及预警,自动生成预警邮件抄送相关负责人。

 
  1. 1,所有测试人员都可以通过WEB页面对接口进行录入、测试、生成测试报告。

  2. 2,在HOST配置中加入测试、开发、生产的IP地址后,系统就可以根据人员自动执行不同环境下的测试任务。

 感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/148780.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云课五分钟-03第一个开源游戏复现-贪吃蛇

前篇 云课五分钟-02第一个代码复现-终端甜甜圈C 视频 云课五分钟-03第一个开源游戏复现-贪吃蛇 一个终端的动态字符显然很难调动编程的积极性&#xff0c;那么更有趣的开源的游戏也许是一种更好的启发。 文本 蓝桥ROS机器人之绚丽贪吃蛇 如何在Linux下使用 DungeonRush-mast…

C#多线程的操作

文章目录 1 使用线程意义2 C#线程开启的四种方式2.1 异步委托开启线程2.2 通过Thread类开启线程2.3 通过线程池开启线程2.4 通过任务Task开启线程 3 前台线程和后台线程简述3.1 前台线程3.2 后台线程 4 简述Thread和Task开启线程的区别4.1 Thread效果展示4.2 Task效果展示4.3 区…

(论文阅读34-39)理解CNN

34.文献阅读笔记 简介 题目 Understanding image representations by measuring their equivariance and equivalence 作者 Karel Lenc, Andrea Vedaldi, CVPR, 2015. 原文链接 http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Lenc_Understanding_I…

4+糖酵解+预后模型,结合预后模型为文章加分,思路值得模仿

今天给同学们分享一篇生信文章“A glycolysis-related two-gene risk model that can effectively predict the prognosis of patients with rectal cancer”&#xff0c;这篇文章发表在Hum Genomics期刊上&#xff0c;影响因子为4.5。 结果解读&#xff1a; COAD和READ之间的…

python数据处理作业11:建一个5*3的随机数组和一个3*2的数组,其元素为1,2,3,4,5,6,求两矩阵的积

每日小语 打碎的杯子&#xff0c;烫伤的手&#xff0c;对菩萨是堪忍&#xff0c;因为他在里面得悟甚深之法&#xff0c;心生欢喜。 可是对一般人来说&#xff0c;一生何止打破千百个杯子&#xff1f;何止烫伤过千百次手&#xff1f;他只是痛苦地忍受&#xff0c;只记得下次要…

Openssl X509 v3 AuthorityKeyIdentifier实验与逻辑分析

Openssl是X509的事实标准&#xff0c;目前主流OS或个别安全性要求较高的设计场景&#xff0c;对X509的证书链验证已经不在停留在只从数字签名校验了&#xff0c;也就是仅仅从公钥验签的角度&#xff0c;在这些场景中&#xff0c;往往还会校验AuthorityKeyIdentifier和SubjectKe…

生活消费分销系统搭建开发制作

文章目录 前言 一、生活消费系统是什么&#xff1f;二、生活消费分销系统的营销方式和功能三、总结 一、生活消费系统介绍 生活消费系统涵盖了吃喝玩乐&#xff0c;衣食住行。网购消费等生活消费的优惠券领取以及分销功能 二、生活消费分销系统的营销方式和功能 A: 会员体…

Shopee可以绑定大陆银行卡吗?Shopee收款方式选哪种?——站斧浏览器

shopee可以绑定大陆银行卡吗&#xff1f; 对于中国大陆的卖家而言&#xff0c;他们希望能够在Shopee上绑定自己的大陆银行卡&#xff0c;方便进行交易和收款。然而&#xff0c;目前的情况是Shopee并不支持直接绑定大陆银行卡。这主要是因为Shopee在中国大陆并不是主要运营的电…

【数据结构】直接插入排序

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

帝国CMS仿核弹头H5小游戏模板/帝国CMS内核仿游戏网整站源码

帝国CMS仿核弹头H5小游戏模板&#xff0c;帝国CMS内核仿游戏网整站源码。比较适合小游戏发布、APP应用资讯类网站使用&#xff0c;有兴趣的可以二次开发试试。 下载地址&#xff1a;https://bbs.csdn.net/topics/617579435

《QT从基础到进阶·二十八》QProcess使用,从一个exe程序启动另一个exe程序

QString exePath QCoreApplication::applicationDirPath(); //获取要启动的另一个exe路径 exePath exePath “/OffLineProcess.exe”; //路径exe名称 QProcess* Process new QProcess; //创建新的进程 Process->start(exePath)…

Spring Cloud Netflix微服务组件-Eureka

CAP理论 分区容忍是能容忍一个或一部分节点挂掉后&#xff0c;整体系统也能正常工作&#xff08;就是别的节点还是活着的&#xff09;&#xff0c;所以分布式系统中P是必须要有的。比如数据库主从架构&#xff0c;主从两个节点之间需要数据同步&#xff0c;主挂了&#xff0c;…

uniapp大概是怎么个开发法(前端)

写在前面&#xff0c;博主是个在北京打拼的码农&#xff0c;从事前端工作5年了&#xff0c;做过十多个大大小小不同类型的项目&#xff0c;最近心血来潮在这儿写点东西&#xff0c;欢迎大家多多指教。 对于文章中出现的任何错误请大家批评指出&#xff0c;一定及时修改。有任何…

成本2元开发游戏,最快3分钟完成!全程都是AI智能体“打工”,大模型加持的那种

金磊 发自 凹非寺 量子位 | 公众号 QbitAI 家人们&#xff0c;OpenAI前脚刚发布自定义GPT&#xff0c;让人人都能搞开发&#xff1b;后脚国内一家大模型初创公司也搞了个产品&#xff0c;堪称重新定义开发——让AI智能体们协作起来&#xff01; 只需一句话&#xff0c;最快3分…

leetcode:1576. 替换所有的问号(python3解法)

难度&#xff1a;简单 给你一个仅包含小写英文字母和 ? 字符的字符串 s&#xff0c;请你将所有的 ? 转换为若干小写字母&#xff0c;使最终的字符串不包含任何 连续重复 的字符。 注意&#xff1a;你 不能 修改非 ? 字符。 题目测试用例保证 除 ? 字符 之外&#xff0c;不存…

立仪科技光谱共焦在半导体领域的应用

半导体技术在近年来以极快的速度发展&#xff0c;对质量和精密度的要求也不断提升。在这样的背景下&#xff0c;用于材料与设备研究的先进检测技术如光谱共焦成像将自然地找到一席之地。下面我们将详细探讨一下光谱共焦在半导体领域中的应用。 光谱共焦技术&#xff0c;通过在细…

HTML5学习系列之标题和正文、描述性信息

HTML5学习系列之标题和正文、描述性信息 标题和正文标题段落 描述性信息强调注解备选上下标术语代码预定义格式缩写词编辑提示引用引述换行显示修饰非文本注解 总结 标题和正文 标题 按语义轻重排列&#xff1a;h1\h2\h3\h4\h5\h6 <h1>诗词介绍</h1> <h2>…

算法通关村——归并排序

归并排序 1、归并排序原理 ​ 归并排序是一种很经典的分治策略。 ​ 归并排序(MERGE-SORT)简单来说就是将大的序列先视为若干小的数组&#xff0c;分成几个比较小的结构&#xff0c;然后是利用归并的思想实现的排序方法。将一个大的问题分解成一些小的问题分别求解&#xff…

区域入侵AI算法如何应用在工地场景,保卫工地施工安全?

在工地、厂区等施工场所&#xff0c;安全保障是必不可少的&#xff0c;特别是在人工智能技术日益成熟的今天&#xff0c;如何利用旭帆科技AI智能视频中的区域入侵算法助力智慧工地、保障工地安全呢&#xff1f; 1、建筑物周界安全 TSINGSEE青犀区域入侵算法可以用于监控建筑物…

03-CSS基础选择器

3.1 CSS基础认知&#x1f34e; 3.1.1 &#x1f441;️‍&#x1f5e8;️CSS概念 CSS&#xff1a;层叠样式表&#xff08;Cascading style sheets)&#xff0c;为网页标签增加样式表现的 语法格式&#xff1a; 选择器{<!-- 属性设置 -->属性名:属性值; <!--每一个…