IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 理想中的接口自动化项目 -> 正文阅读

[系统运维]理想中的接口自动化项目

如何评价接口自动化项目

我理想中的接口自动化项目,是有一套脚本,能够100%覆盖核心业务场景,能够回归线上频繁出现的问题,能够支持手工无法验证的场景,能够抛出偶现问题,能够包含容易遗漏的边界场景、异常场景,每天都能定时运行,出具报告,给予反馈。

用实际的「指标量化」下:

  • 功能测试自动化率 = 自动化测试用例数/总测试用例数

  • 自动化发现bug占比 = 自动化发现的bug/总bug数

  • 自动化发现bug有效性 = 自动化发现的有效bug/自动化提交的bug总数

  • 自动化执行成功率 = 自动化执行成功的次数/自动化执行总次数

  • 周活跃自动化用例占比 = (∑每周执行过的自动化测试用例)/(∑周维度自动化测试用例)

  • 应用维度自动化代码覆盖率 = 自动化用例覆盖代码行数/应用维度代码总行数

现状是什么(Situation)

我负责的业务是发票中台,数据流简化后如下图所示:

发票中台对调用方提供RPC服务,底层有读写MySQL、同步ES、消息队列、异步任务等服务,上游是用户和订单,需要账号、增票资质、订单等物料;下游是财务,推送申请单给财务开具发票等。

发票的接口自动化在多年前是写了的,用Java+TestNG+RPC本地化了一套框架来实现,因为人员离职和业务变更,这套自动化到我手上的时候,已经不能用了,本地化的接口自动化项目也无法做数据度量,只有接口测试平台写的自动化用例才会被统计到。

任务是什么(Task)

我给自己定的绩效是在Q2完成95条自动化用例,按照一个标准化的自动化项目来实现发票的接口自动化,结合测试环境、测试物料、流水线、精准分析,打造一个个人的稳定的沉淀物,无论是晋升还是求职,都能拿来讲点故事。

行动是什么(Action)

「编写自动化用例的方式」

1、最理想的方式,是能够录制线上流量直接转换为自动化用例,修修改改即可。虽然我们有流量录制回放平台,但是它跟接口自动化平台并没有打通,很可惜不能采取这种方式。

2、参考线上流量日志,抓取接口、入参,人工转化为自动化用例。

3、参考接口的代码设计,比如controller/provider/sdk都定义了应用接口,能知道哪些覆盖到了,哪些还需要补充。

4、根据入参模板自行构造参数。参数个数太多的话造起来很麻烦。

我主要采用第2种和第3种方式结合来编写自动化用例。

「典型自动化用例」

前置步骤:初始化数据,将订单发票类型更新为3。

预设变量:提供参数化数据。

执行步骤:调用修改订单发票类型接口,将发票类型3改为2,入参引用预设变量。

财务接口:依赖测试物料无法满足,通过Mock来返回模板数据,让接口继续往下走。

基础断言:接口响应状态码200。

业务断言:调用订单列表查询接口,用JSONPath提取响应中的发票类型,断言已经改成了2。

场景用例

数据准备:通过物料工具造订单数据,写入MySQL数据库中。

更新MySQL数据:更新订单的部分字段数据,触发binlake,将数据同步至ES,因为提交开票申请是读取的ES数据;从预设变量获取orderId。

提交开票申请:从ES读取订单数据,提交开票申请;从预设变量获取orderId和userId。

查询申请单号:根据订单号查询申请单号;从预设变量获取orderId和userId。用JSONPath提取申请单号,存入动态变量中。

推送财务:把申请单号推送给财务;从动态变量获取applyId。

覆盖更多代码

①看代码:

在Java工程里面的Controller/Provider找到所有接口,分析可以用来做自动化的接口,设计自动化用例进行覆盖。

②代码覆盖率:

借助于jacoco,在执行自动化用例后,把代码覆盖率跑出来,分析没覆盖的代码,补充更多「正常/异常/边界」的自动化用例。也就是精准测试。

自动化巡检

每天早上8点,定时任务执行用例集;发送邮件,抄送测试组、开发组、领导,让测试、开发和领导都知道自动化建设情况;如果出现问题,一定要在当天解决,并邮件回复问题原因;确保当天的自动化用例结果都是正确的;第二天接着继续巡检。

流水线

在持续集成中,引入自动化用例环节,把自动化用例跑通作为提测卡点,不通过可以驳回。

产出是什么(Result)

定性来看:

「结合测试环境、测试物料、自动化、流水线、精准测试,完成了一个能对环境和业务进行稳定性巡检,能对研发提测进行质量门禁,能对应用进行代码覆盖率分析的接口自动化项目。」

定量来看:

  • 功能测试自动化率 = 自动化测试用例数/总测试用例数?「95/100=95%」

  • 自动化发现bug占比 = 自动化发现的bug/总bug数?「2/53=3.7%」

  • 自动化发现bug有效性 = 自动化发现的有效bug/自动化提交的bug总数?「2/2=100%」

  • 自动化执行成功率 = 自动化执行成功的次数/自动化执行总次数?「5396/5621=96%」

  • 周活跃自动化用例占比 = (∑每周执行过的自动化测试用例)/(∑周维度自动化测试用例)?「77%」

  • 应用维度自动化代码覆盖率 = 自动化用例覆盖代码行数/应用维度代码总行数?「39%」

这个Q主要完成了核心流程和重要接口的自动化用例,还需要持续补充场景用例和异常/边界的自动化用例。

学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:27:13  更:2022-06-29 19:29:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:03:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码