TestDataLake在提升测试效能方面的实践

news2024/11/22 14:55:45

目录

1.背景

2.预期目标

3.系统设计和实现

3.1系统功能组成

3.2 数据智能生成

3.3 接口遍历测试

4.应用效果和收益

5.后续规划


1.背景

随着软件开发的迅速发展,测试数据管理变得越来越复杂。手动创建测试数据需要耗费大量时间和精力,同时容易出错。若缺乏测试数据,则会导致测试结果不够全面,甚至可能在线上环境中引发问题,从而给软件产品带来质量风险。因此,如何生成大量、真实、正确的测试数据成为了测试人员和研发人员所关心的重要问题。

在业务数据较为简单、常规的项目中,手动编写少量测试数据来跑完用例可能并没有太大问题。但是在接口性能测试和接口遍历测试时需要大量的测试数据,以确保测试结果的覆盖度和全面性。而且,在垂直行业领域中,业务数据往往具有特定的数据结构和约束条件。如果依赖手工创建测试数据或通过编写脚本生成数据,有如下弊端:1) 花费时间;2) 容易出错; 3)覆盖度不够,且缺乏完整性;4) 缺乏可维护性。

为解决这些问题,许多公司开始转向自动化测试数据生成。通过程序或脚本来快速生成符合特定业务场景的测试数据。这种方法相比手动创建测试数据更加高效。

然而,自动化测试数据生成也存在着一些问题和挑战。

需要考虑业务场景:为了生成真实的测试数据,需要对业务场景有充分的理解和掌握。否则,生成的测试数据可能不符合实际业务需求。

维度成本高:虽然自动化测试数据生成可以提高测试效率和准确性,但是针对具体业务测试数据生成工具需要一定的开发和维护成本。

为了解决这些痛点,TestDataLake应运而生,将复杂的测试数据准备工作简化为可视化的过程,是一种非常有效的数据管理工具,可以帮助测试人员快速、准确地生成符合预期的测试数据,并且可以提高测试效率和测试质量。

2.预期目标

为了帮助测试人员快速、准确地生成符合预期的测试数据,并降低脚本生成测试数据的成本,TestDataLake 目标是可以方便地生成覆盖度高、全面和真实的测试数据,用于日常的功能测试、性能测试和接口遍历测试。具体包括:

1)低成本、快速地造出高可用测试数据;

2)保证测试数据的覆盖度、全面性和真实性;

3) 建立业务字典库和通用数据字典库,确保测试数据的时效性和准确性,并且可以灵活扩展业务字典;

4)智能化的依赖关系设计,轻松地从不同的数据字典中抽取字段,并组合成所需的测试数据。

3.系统设计和实现

TestDataLake具有多种功能模块,包括数据模型管理、数据智能生成模块、预览及导出模块、接口遍历测试、接口遍历报告、业务数据查询、数据源管理、数据字典维护等。这些功能模块可以为测试人员和研发人员快速地创建高可用测试数据,提高测试效率和节约测试成本。同时,这些功能模块还可以保证测试数据的覆盖度、全面性和真实性,建立业务字典库和通用数据字典库,确保测试数据的时效性和准确性,并且可以灵活扩展业务字典。最重要的是,可视化数据池平台提供了智能化的依赖关系设计功能,可以轻松地从不同的数据字典中抽取字段,并组合成所需的测试数据,大大提高了测试数据生成的质量和准确性,为开发和测试提供了有力的支持。

图片

图1 TestDataLake系统组成图

3.1系统功能组成

数据模型管理和数据智能生成模块是TestDataLake提供的核心功能,数据模型管理以直观的可视化界面为用户提供了智能化的依赖关系设计功能。可以轻松地从不同的数据字典中抽取字段,灵活设定数据之间的依赖关系,并组合成所需的测试数据。这样,用户可以避免繁琐的手工编写测试数据工作,同时也可以提高测试数据的质量和准确性。数据智能生成模块可以根据不同的测试需求,自动化生成符合要求的测试数据。该功能模块内置了多种数据生成策略,如随机生成、序列生成、枚举生成、关联数据生成等。这些策略可以根据测试数据的需求进行配置,以产生更加符合实际场景的测试数据,并大大提高测试效率和节约测试成本。

预览及导出模块可帮助用户直观地查看和验证测试数据的正确性和完整性。用户可在该模块中对生成的测试数据进行预览,并可按所需选择导出数据的格式,例如Excel、CSV、SQL、JSON等。以方便后续在其他系统中使用。

接口遍历测试基于智能数据生成的结果,实现全面覆盖的接口测试。可帮助用户发现系统接口中的潜在问题和漏洞,全面测试系统的接口功能,并根据测试结果生成相应的报告。该功能模块可以尽可能地覆盖到所有场景,包括正常情况、异常情况以及边界情况等。过去,测试人员需要准备大量的测试用例和脚本来进行测试,这是一项繁琐且耗费时间的任务。现在,在TestDataLake的帮助下,利用智能数据生成的数据作为接口遍历的数据源,测试团队可以更好地管理测试数据,并提高接口遍历测试的效率和准确性,从而提高系统的稳定性和可靠性。在接口遍历测试中,断言是非常关键的一步。通过断言,测试人员可以验证每个接口是否按照预期工作,并找到可能存在的问题。为了简化测试人员手动编写断言代码的工作量,TestDataLake提供了常见的断言模板示例,进一步提升了测试的效率和准确性。

日常工作中,产品运营人员及测试人员查询数据成本很高,常用业务数据查询正是为了解决这个痛点。基于建立的业务数据池,可方便用户快速查询和使用常用的业务数据。该功能模块支持自定义查询条件,并提供多种查询方式和结果展示方式,以帮助用户更快地查找和使用数据。

数据源管理可方便地连接和管理各种数据源,例如数据库、API等。数据字典维护可帮助用户建立业务字典库和通用数据字典库,灵活地扩展业务字典,并根据需要添加新的数据字典,并对不同类型的数据进行分类和归档。数据字典支持定期更新,以确保测试数据的时效性和准确性。

3.2 数据智能生成

 数据智能生成是可视化数据池平台核心的功能。它将复杂的测试数据准备工作简化为可视化的过程。可以轻松地从不同的数据字典中抽取字段,灵活设定数据之间的依赖关系,并组合成所需的测试数据。这样,用户可以避免繁琐的手工编写测试数据工作,同时也可以提高测试数据的质量和准确性。数据智能生成模块还可以根据预设的规则自动化生成大量数据来模拟用户请求,为接口遍历测试、接口压力测试等系统提供数据,减轻了测试数据准备工作量,从而便于对系统的稳定性和性能进行验证。整体业务流程如图2所示。

图片

图2 TestDataLake业务流程图

下面来介绍一下数据智能生成的流程。只需点击新增,填写易于理解的名称和用途即可创建指定环境的数据模型。在创建好的数据模型中,您可以轻松指定要生成的字段信息以满足不同场景下的需求。该工具支持使用频率较高的业务字典,如品牌车系车型城市经销商和顾问等,让您快速生成符合要求的测试数据。例如生成一份包含车系ID、车型名称、店铺ID和店铺名称的测试数据,其中店铺和车系字段存在依赖关系,只需要3分钟即可完成。

图片

图3 数据模型字段信息映射

通过智能化的依赖关系设计,省去了以往人工造测试数据时关联自断的复杂工作量。

图片

图4 数据模型字段依赖关系维护

配置好所需要的字段信息后,您可以通过预览功能实时生成少量数据来确认这些数据是否符合预期。确认数据无误后,就可以生成大量测试数据,并将数据导出为Excel格式,方便您在接口压力测试、接口遍历测试及其它系统中进行导入和使用。

图片

图5 数据模型生成数据预览

3.3 接口遍历测试

拥有了更多更真实的测试数据,TestDataLake在智能数据生成的基础上,帮助测试团队轻松实现接口遍历测试。为了保证接口遍历测试的效果,需要覆盖到所有的场景,测试人员必须准备大量的测试用例和脚本,这是一项繁琐且耗费时间的任务。TestDataLake将智能数据生成的数据作为接口遍历的数据源,帮助测试团队更好的管理测试数据,并提升接口遍历测试的效率和准确性。当我们将前面生成的数据模型作为接口测试的数据源时,系统支持属性名智能提示,从而方便将接口输入参数与模型中的属性名对应。可以轻松的完成输入参数的赋值工作。

图片

图 6 接口遍历任务维护界面

在接口遍历测试中,断言是非常关键的一步。系统提供了常见的断言模板,测试人员可以根据实际情况进行修改和定制,简化了测试人员手动编写断言代码的工作量。

系统还提供了一个直观明了的接口遍历测试报告,直观的柱状图清晰地展示出结果的分布情况,如成功率失败率,还提供了详细的测试结果列表,测试人员可以查看每个用例的执行状态,请求和响应信息等,帮助测试和研发人员快速定位问题并及时解决,提高测试效率和质量。

图片

图7 接口遍历测试报告

4.应用效果和收益

TestDataLake以数据为核心的解决方案,可以帮助测试人员管理和维护测试数据,提高测试效率和质量。根据不同的测试需求,可以快速地生成符合实际场景的测试数据,避免了手动编写测试数据的繁琐工作,提高了测试效率和节约了测试成本。以往测试人员准备1次性能测试所需要的数据,大约需要1小时,甚至半天时间,如今只需要几分钟就可以实现,效率提升10余倍。接口遍历测试以往由于接口数量庞大,需要花费很多时间和精力准备测试数据和脚本,才能完成遍历测试。这需要测试人员具备一定的编程技能和经验。苦于门槛和成本比较高,一直无法广泛使用。TestDataLake在智能数据生成的基础上,帮助测试团队轻松实现全面覆盖的接口遍历测试,对于保证产品质量和用户满意度非常重要。

5.后续规划

TestDataLake已经在接口压力测试和接口遍历测试方面,有效地提高了测试效率和质量。然而对于一些复杂的业务流程需要定制,比如,在C端生成订单数据,并在B端跟踪的整体复杂流程。目前需要根据业务流程编写相关代码。是否可以通过灵活编排实现个性化的数据生成流程,满足不同的测试需求呢?后续我们将重点研究灵活编排业务流程的实现方案,进一步提高测试效率和系统的适用性。


以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

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

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

相关文章

bigemap用于自然资源调查规划设计院

获取途径:之前看到别人使用我们软件,然后去我们官网下载地图体验了一下,想试试。买单点:影像清晰,最主要是使用手机端,跑外业,定位,记录轨迹,拍照,等高线制作…

网络安全进阶学习第十三课——SQL注入Bypass姿势

文章目录 一、等号被过滤二、substr、mid等被过滤三、逗号被过滤四、and/or被过滤五、空格被过滤五、其他绕过方式 一、等号被过滤 1、like&#xff0c;rlike语句&#xff0c;其中rlike是正则2、大于号>&#xff0c;小于号<3、符号<>&#xff1a;<>为不等于…

认识 spring AOP (面向切面编程) - springboot

前言 本篇介绍什么是spring AOP, AOP的优点&#xff0c;使用场景&#xff0c;spring AOP的组成&#xff0c;简单实现AOP 并 了解它的通知&#xff1b;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言1. 什么是s…

Automa-通过连接块来自动化你的浏览器

1、前言 通过浏览器插件可实现自动化脚本的录制与编写&#xff0c;具有代表性的工具就是&#xff1a;Selenium IDE、Katalon Recorder&#xff0c;对于简单的业务来说可快速实现自动化的上手工作。 Selenium IDE Katalon Recorder 如果你想学习接口自动化测试&#xff0c;我这…

1990-2021年31省数字经济测算指标(20多个指标)

1990-2021年31省数字经济测算指标&#xff08;20多个指标&#xff09; 1、来源&#xff1a;国家统计局 2、时间&#xff1a;1990-2021年 3、范围&#xff1a;31省 4、指标&#xff1a; 地区、年份、邮电业务总量、邮政业务总量、电信业务总量、函件数(亿件)、包裹数(万件)、…

selenium常用API的使用

目录 定位元素&#xff08;findElement&#xff09; CSS选择器定位 xpath选择器定位 CSS选择器和xpath选择器区别 操作测试对象 click&#xff1a;点击 sendKeys&#xff1a;输入文本框内容 clear&#xff1a;清除文本框内容 text&#xff1a;获取元素文本内容 …

JVM之类加载与字节码(二)

3. 编译期处理 什么是语法糖 所谓的 语法糖 &#xff0c;其实就是指 java 编译器把 *.java 源码编译为 *.class 字节码的过程中&#xff0c;自动生成 和转换的一些代码&#xff0c;主要是为了减轻程序员的负担&#xff0c;算是 java 编译器给我们的一个额外福利&#xff08;给…

看跨境电商世界区域分布,Live Market教你深入参与跨境创业

随着全球化发展带来互联网技术的进步和平台经济的触角伸向全球&#xff0c;跨境电商越来越成为全球贸易的重要组成部分。根据国际数据公司&#xff08;IDC&#xff09;的最新数据显示&#xff0c;全球前五大跨境电商平台分别是亚马逊、阿里巴巴、eBay、Wish和京东全球购。这五家…

【Linux】内核线程创建 kthread_run 函数和内核中断

kthread_run函数详解 以PCIE的热插拔内核线程创建为例说明 注意&#xff1a;内核线程和RTOS的线程略有不同&#xff0c;这里Linux上创建以后直接运行&#xff0c;RTOS上有的是需要加入到调度队列中后才会执行&#xff0c;比如RT-Thread的系统 kthread_run 是 Linux 内核中的…

人类与机器的分类不同

分类能力也是智能的重要标识之一。通过分类&#xff0c;我们可以将事物或概念进行归类和组织&#xff0c;从而更好地理解和处理信息。分类在人类认知和智能发展中起到了重要的作用&#xff0c;它有助于我们对世界进行认知、记忆、推理和决策。在机器智能领域&#xff0c;分类同…

企业服务器器中了360后缀勒索病毒怎么解决,勒索病毒解密数据恢复

随着网络威胁的增加&#xff0c;企业服务器成为黑客攻击的目标之一。近期&#xff0c;上海某知名律师事务所的数据库遭到了360后缀的勒索病毒攻击&#xff0c;导致企业服务器内的数据库被360后缀勒索病毒加密。许多重要的数据被锁定无法正常读取&#xff0c;严重影响了企业的正…

基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(2)----驱动STSPIN220

基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220----2.驱动STSPIN220 套件概述样品申请STSPIN220描述STSPIN220所有功能基础配置REF电流配置细分配置IO配置定时器配置初始化mode 套件概述 本文档的目标是提供关于使用STM32CubeMX驱动低压步进电机驱动器STSPIN220的详尽信息…

vue2中使用mock数据发送请求

1.安装 npm i mockjs1.1 2.准备json数据 说明&#xff1a;mock数据需要的图片放置到public文件夹中&#xff08;原封不动的打包到dist文件夹&#xff09; [{"id": "1","imgUrl": "/images/banner1.jpg"},{"id": "2&qu…

每天一道leetcode: 57.和为s的两个数字

今日份题目&#xff1a; 输入一个递增排序的数组和一个数字s&#xff0c;在数组中查找两个数&#xff0c;使得它们的和正好是s。如果有多对数字的和等于s&#xff0c;则输出任意一对即可。 示例1 输入&#xff1a;nums [2,7,11,15], target 9 输出&#xff1a;[2,7] 或者 …

一文带你快速了解【在树莓派上搭建web网站---并在外网可访问】

文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS测试 web 站点安装静态样例站点 将web站点发布到公网安装 Cpolarcpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配置cpolar服务开机自启动 概述 …

Gson 添加数据默认值问题记录

问题&#xff1a;在用Gson add(key&#xff08;string类型&#xff09;&#xff0c;value&#xff08;必须是JsonElement子类&#xff09;&#xff09;时发现&#xff0c;value 传了 "" 空字符串&#xff08;非null&#xff09;&#xff0c;默认解析后返回null&#…

机器学习笔记 - 关于GPT-4的一些问题清单

一、简述 据报道,GPT-4 的系统由八个模型组成,每个模型都有 2200 亿个参数。GPT-4 的参数总数估计约为 1.76 万亿个。 近年来,得益于 GPT-4 等高级语言模型的发展,自然语言处理(NLP) 取得了长足的进步。凭借其前所未有的规模和能力,GPT-4为语言 AI​​设立了新标准,并为机…

11. 使用tomcat中碰到的一些问题

文章目录 问题一&#xff1a;Tomcat的startup.bat启动后出现乱码问题二&#xff1a;一闪而退之端口占用问题三&#xff1a;非端口问题的一闪而退问题四&#xff1a;服务器的乱码和跨域问题问题五: 在tomcat\webapps\下创建文件夹为什么tomcat重启就会丢失问题六&#xff1a;Tom…

18 | 基于DDD的微服务设计实例

为了更好地理解 DDD 的设计流程&#xff0c;这篇文章会用一个项目来带你了解 DDD 的战略设计和战术设计&#xff0c;走一遍从领域建模到微服务设计的全过程&#xff0c;一起掌握 DDD 的主要设计流程和关键点。 项目基本信息 项目的目标是实现在线请假和考勤管理。功能描述如下…

适配器模式(C++)

定义 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 应用场景 在软件系统中&#xff0c;由于应用环境的变化&#xff0c;常常需要将“一些现存的对象 ”放在新的环境中应用&#xff0c;但是新环境要求…