社区分享|MeterSphere变身“啄木鸟”,助力云帐房落地接口自动化测试

云帐房网络科技有限公司(以下简称为“云帐房”)成立于2015年3月,以“成为最值得信赖的税务智能公司”为愿景,运用人工智能、大数据等互联网技术,结合深厚的财税行业服务经验,为代账公司和中大型企业提供智能化、自动化的财税解决方案,同时围绕企业运营管理的全链条提供全周期生态服务,帮助企业降本增效、持续发展。

一、引入接口自动化项目的背景

云帐房旗下的“有度税智”品牌,致力于为中大型企业和集团企业提供优质的智能税务服务,其SaaS产品包括企业税务、进项发票应用、销项发票应用、个税应用和AutoWork应用等。除此之外,还有为业务部门提供公共能力的税务数字化平台和提供发票能力的融合平台等。随着业务规模的发展,云帐房测试团队面临着如下挑战:

■ 业务逻辑复杂,随着产品迭代速度的加快,回归测试的成本越来越高;

■ 多租户系统需要保证线上系统功能的稳定性和可靠性;

■ “有度税智”品牌的客户群体大多是集团客户,税号多、数据量大、数据之间关联性强,通过手动构造大量测试数据的方式,效率低且可复制性差,期望通过自动化的方式构造测试数据。

目前,有度税智测试团队共有10名测试人员,团队中大部分成员能够独立负责单个应用的测试和管理,具有丰富的功能测试和接口测试经验。团队中50%的成员具有接口自动化测试脚本的编写经验,部分人员具备Python和Java编码能力和性能测试经验。

测试团队负责事业部所有应用的需求测试,版本迭代快且给到测试的时间较短,而新功能测试和部分影响功能回归以手动测试为主,测试效率难以支持版本的高频迭代。同时,产品的技术改造影响面广,精准评估影响范围难度较大,希望通过接口回归降低变更带来的潜在风险。

二、为什么选择MeterSphere开源持续测试平台?

对于有度税智的测试团队来说,MeterSphere能够满足其构建自动化测试平台的目标和需求。与其他的测试工具或平台相比,MeterSphere开源持续测试平台的优势体现在:

1.低代码平台,简单易用。无须CODING即可覆盖API自动化测试的所有功能,运行结果与日志实时呈现,方便调试和定位;

2.强大的用例管理能力。MeterSphere能够支持项目复用、场景复用、用例复用,一套用例支持多环境运行;

3.具备高可拓展性。MeterSphere平台支持Python和Java代码运行,对于无法满足的数据处理,支持进行拓展与封装;

4.多样的执行方式。MeterSphere平台支持定时执行测试场景、系统构建触发执行测试场景,以及单个或批量手动执行测试场景。

三、接口自动化落地过程中遇到的实际问题与解决方案

1.对外开放接口的自动化实现

对外开放接口用于提供产品的能力给第三方进行调用,为了保证调用的安全性,一般会对接口内容进行签名加密。因为MeterSphere提供的前置脚本、后置脚本以及自定义脚本都能支持Java程序运行,因此可以引用Java包中已经封装好的方法,实现接口请求参数的动态加密。
在这里插入图片描述

2.第三方接口测试桩与自动化场景的结合

“有度税智”产品中有不少依赖于第三方接口,通过测试企业很难实现功能场景全覆盖。MeterSphere是开源持续测试平台,为了能够更好地覆盖第三方接口不同的返回结果,有度税智的测试团队在MeterSphere平台之上集成开发了测试桩管理的模块。该模块支持对企业开启测试桩场景、服务接口的测试桩场景管理,以及接口测试桩场景的自由切换。

■ 测试桩管理:
在这里插入图片描述

■ 测试桩在自动化场景中的应用:
在这里插入图片描述

3.公共流程场景化封装,提高复用性

“有度企税”产品中的发票采集能力是非常重要的功能,对于不同的发票类型,采集流程和采集结果校验相同。为了覆盖所有发票类型采集的场景,有度税智的测试团队对公共流程进行了提炼,并通过基础功能场景进行封装,对断言进行参数化,有效提高了用例编写的效率。以进项采集流程为例,流程包括“用户登录→历史数据清理→进项发票采集→采集结果验证”四部分。

① 登录基础场景
在这里插入图片描述

② 删除历史数据基础场景
在这里插入图片描述

③ 进项发票采集基础场景
在这里插入图片描述

④ 采集结果验证
在这里插入图片描述

最终实现效果如下。对于不同发票类型的场景,只需定义不同的场景变量即可。
在这里插入图片描述
在这里插入图片描述

四、使用MeterSphere平台带来的项目收益

MeterSphere在“有度税智”测试团队内部的代号是“啄木鸟”,其寓意是它能够帮助测试人员更好地查找系统Bug。目前,基于MeterSphere平台的接口自动化系统建设已从“有度税智”的销项应用推广到整个事业部的6个产品,所有产品的主流程覆盖率达到100%。其中还包括了“中台项目-融合平台”的纯接口自动化,以及企税应用增值税和印花税这些复杂的算税模块场景。

通过MeterSphere的定时任务功能开展每日运行和发布前的回归自动化测试,产品迭代上线质量得到了保障。同时在应对华为云迁移、服务单元化、MQ切换等技术改造时,也得以提前规避较多的潜在风险。

此外,在销项本地化项目中,由于MeterSphere提供了API和Case复制的功能,测试团队通过少量的调试和改动,就完成了从SaaS到本地化项目的自动化迁移,做到了跨项目的自动化复用,保证了本地化项目的交付质量和效率。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

除了接口测试自动化以外,目前通过MeterSphere开源持续测试平台,云帐房也建立了一些复杂的数据构造场景,用于解决重复操作导致测试效率低下的问题,有效提高了数据构造的效率。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2023年中国研究生数学建模竞赛华为杯】E题 出血性脑卒中临床智能诊疗建模 问题分析、数学模型及代码实现

【2023年中国研究生数学建模竞赛华为杯】E题 出血性脑卒中临床智能诊疗建模 1 题目 1.1 背景介绍 出血性脑卒中指非外伤性脑实质内血管破裂引起的脑出血,占全部脑卒中发病率的10-15%。其病因复杂,通常因脑动脉瘤破裂、脑动脉异常等因素,导致…

黑马JVM总结(十九)

(1)GC调优1 通过官网查看查看JVM的参数: 可以使用java命令查看当前环境下的虚拟机参数: 学会使用一些工具如前面学的jmap ,jconsole等等工具 (2)GC调优2 垃圾回收调优只是众多调优中的一个方…

读高性能MySQL(第4版)笔记14_备份与恢复(中)

1. 在线备份 2. 离线备份 2.1. 关闭MySQL做备份是最简单、最安全的 2.2. 所有获取一致性副本的方法中最好的 2.3. 损坏或不一致的风险最小 2.4. 根本不用关心InnoDB缓冲池中的脏页或其他缓存 2.5. 不需要担心数据在尝试备份的过程中被修改 2.5.1. 服务器不对应用提供访问…

【动态规划刷题 17】回文子串 最长回文子串

647. 回文子串 链接: 647. 回文子串 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由…

zookeeper + kafka

Zookeeper 概述 Zookeeper是一个开源的分布式服务管理框架。存储业务服务节点元数据及状态信息,并负责通知再 ZooKeeper 上注册的服务几点状态给客户端 Zookeeper 工作机制 Zookeeper从设计模式角度来理解: 是一个基于观察者模式设计的分布式服务管理框架&…

Learn Prompt-GPT-4:能力

GPT-4能力大赏​ 常识知识推理​ 一个猎人向南走了一英里,向东走了一英里,向北走了一英里,最后回到了起点。他看到了一只熊,于是开枪打了它。这只熊是什么颜色的? 答案是白色,因为这种情况只可能发生在北…

Gin学习记录4——Controller和中间件

一. Controller 用不同的Controller可以实现业务的分类,不同类型的请求可以共用同一套中间件 1.1 单文件Controller 几乎等同于函数封装,直接将ctrl的代码写入到一个文件里然后调用: package adminimport ("net/http""git…

数据结构与算法(六)--链表的遍历,查询和修改,删除操作

一、前言 上篇文章我们了解了链表的概念以及链表底层的搭建以及向链表中添加元素的操作。本次我们继续学习链表剩余的操作:遍历,查询和修改、删除操作。 二、链表查询以及遍历 ①获得链表的第index(0-based)个位置的元素(不常用&#xff0…

MySQL详细案例 1:MySQL主从复制与读写分离

文章目录 1. MySQL主从复制1.1 使用场景1.2 MySQL的复制类型1.3 主从复制的作用1.4 主从复制的工作过程1.5 实现MySQL主从复制1.5.1 前置准备1.5.2 主服务器mysql配置1.5.3 从服务器1 mysql配置1.5.4 从服务器2 mysql配置1.5.5 测试 1.6 主从复制的3种同步模式1.6.1 异步复制&a…

微信小程序底部安全区域高度获取

CSS 属性 safe-area-inset-bottom safe-area-inset-bottom 就是安全区的高度 padding-bottom:env(safe-area-inset-bottom); wx.getSystemInfoSync() wx.getSystemInfoSync()可以获取系统信息 let system wx.getSystemInfoSync() let bottomSafe system.screenHeight -…

一招解除csdn复制限制

先看这个代码 python读取英文pdf翻译成中文pdf文件导出代码 想要复制代码,csdn有限制怎么办(csdn流氓,无耻) 解除方法 ctrlu 看效果

Linux启动过程详解 Xmind导图笔记

参考大佬博客: 简要描述linux系统从开机到登陆界面的启动过程 Linux启动过程详解 Bootloader详解 来源:从BIOS开始画图了解Linux启动过程——老杨Linux

TSINGSEE视频AI智能分析技术:水泥厂安全生产智能监管解决方案

一、方案背景 随着人工智能技术的快速发展以及视频监控系统在全国范围内的迅速推进,基于AI视频智能分析技术的智能视频监控与智慧监管系统,也已经成为当前行业的发展趋势。在工业制造与工业生产领域,工厂对设备的巡检管理、维护维修、资产管…

【全志V3s】SPI NAND Flash 驱动开发

文章目录 一、硬件介绍V3s的启动顺序 二、驱动支持U-Boot驱动主线 Linux 驱动已经支持 三、烧录工具 xfel四、构建U-Boot(官方的Uboot)先编译一下开始spi nand flash 代码层面的适配修改menuconfig配置ARM architecture配置Support for SPI Nand Flash o…

rabbitMQ (1)

文章目录 1. RabbitMQ 介绍1.1 几个重要概念1.2 RabbitMq 的工作原理 2 RabbitMQ 安装3. RabbitMQ 入门操作3.1 添加依赖3.2 生产者代码3.3 消费者代码 4. Work Queues5. 管理端页面创建队列 1. RabbitMQ 介绍 引用 : RabbitMQ 是一个消息中间件:它接受…

Xilinx FPGA 程序固化重新上电程序不运行的问题

问题描述 FPGA直接下载bit文件,功能正常。 FPGA擦除FLASH,烧写FLASH,正常。 电源断电,重新上电,FALSH里面的程序没有启动,FPGA程序没有跑起来。–FLASH启动不正常。 解决办法 在XDC约束文件里边增加约束: ## Configuration options, can be used for all designs se…

[Linux入门]---Linux项目自动化构建工具-make/Makefile

目录 1.背景2.make指令输入make默认为Makefile文件第一条指令执行Makefile文件对gcc指令特殊处理及原理特殊符号 3.总结 1.背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数,其按类型、功能、模块分别放…

CNN(九):Inception v3算法实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍖 原作者:K同学啊|接辅导、项目定制 1 理论基础 Inception v3论文 Inception v3由谷歌研究员Christian Szegedy等人在2015年的论文《Rethinking the Inception Architecture f…

Jmeter集成到jenkins

Jmeter集成到Jenkins Jmeter集成到Jenkins. 1 软件下载... 4 一:环境配置... 4 1.JDK安装:... 4 配置JDK环境变量... 5 2.Jmeter安装:... 5 配置jmeter环境变量... 6 3.安装Ant 7 配置Ant环境变量... 7 4.Git安装:... 8 配置git环境…

Untiy UDP局域网 异步发送图片

同步画面有问题,传图片吧 using System.Text; using System.Net.Sockets; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using System.Net; using System; using System.Threading.Tasks; using Sy…