一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自动化测试数据管理方法及系统与流程

2022-07-30 21:55:31 来源:中国专利 TAG:


1.本发明属于互联网数据管理技术领域,具体涉及一种自动化测试数据管理系统与方法。


背景技术:

2.当前的系统软件,尤其是互联网软件功能很大程度上是建立在数据操作基础上,几乎所有的互联网软件都离不开数据库操作。一个复杂的互联网系统往往有很多模块组成,这些模块都需要访问数据库,当不同的开发人员或测试人员在开发或测试同一套系统软件时,如果使用同一套数据库,可能会造成数据冲突。另外,当测试人员发现bug,需要和开发人员进行确认重现,或者在bug解决需要回归测试确认时,往往需要数据和当时一致,如果数据库环境已经发生改变,要准确重现数据就变得非常困难。如何解决复杂互联网系统多人并行开发和测试的数据冲突问题,以及如何重现旧测试数据以便于重现bug或回归测试,是互联网软件开发过程中需要关心和解决的问题。
3.在当前的互联网软件或其他大型软件系统的开发中,需要多个开发团队的众多开发人员同时进行开发,为减低不同模块之间的依赖和耦合程度,减少软件模块的缺陷对整个系统的影响程度,以及为减少软件发布和升级的工作量和复杂性,常常采用微服务方式进行时间、开发和部署。微服务是把一个或多个相关的软件模块按照独立的进程或应用进行设计和开发来完成特定的一个或一组功能,每个微服务通过api接口与系统中的其他微服务进行通讯,每个微服务都可以进行单独的部署和运行,因此在开发和测试过程中,常常先对每一个微服务进行单独的测试。
4.微服务作为目前流行的一种新兴的软件架构风格,在微服务体系结构中,可以将应用分解为多个更小颗粒度的服务,各个服务可以由不同的团队并行独立开发、部署。微服务的一个典型特征是数据隔离,即每个微服务把自己专属的业务数据存储在专门的数据库、文件系统中,对其他微服务不可见。导致一个软件系统中需要很多数据库和数据库表。在系统正式运行环境,这些数据常常通过发布工具或发布脚本来进行初始化和管理。在开发测试过程中,开发人员和测试人员则需要在自己的测试机上自行建立数据库或数据,这除了浪费大量的工作之外,由于数据缺乏共享,常常因数据不一致的原因导致出现缺陷难以查找和验证。虽然采用统一的数据库资源,可以解决数据共享的情况,但很多时候开发或测试工作又有独占数据库的要求,这就需要频繁创建、销毁数据库,同时每个人预置数据的需求突出,模式多样,还可能因出现程序崩溃或人为疏忽原因导致数据库创建以后无“人”销毁的情况。
5.针对频繁的开发、调试、测试活动急需一个更智能,更高效的数据库管理方法、管理系统,以提高工作效率,而当前市场上还没有这类工具。一些传统的辅助工具可以预先启动多个备用的数据库服务给不同用户使用,但它不具备多种类多实例数据库智能管理能力,不能按实际情况自动调整资源,不能快速创建数据库,不具备便利有效的控制接口方式以使得使用者,尤其是自动化测试软件按测试进程管控目标数据库,数据随用随取。这些工
具预置数据的手段还停留在手动导入数据,手工清理数据的阶段,离自动化、智能化、高可靠的要求还有一定差距。
6.为提高开发效率,部分开发者会利用 mock server结合实际部署的数据库服务器(如,mysql,mongodb,时序数据库等)实现受测服务/软件所依赖的接口仿真,模拟目标接口的请求响应、消息消费与数据制造、数据查询反馈、资料存储的需求。不管是部署真实环境还是mock server模拟环境的测试模式都可实现简单的功能冒烟验证,却无法满足自动化、大规模复杂测试案例验证的需求,常见缺点有:1、预置工作繁琐,效率低,每次预置需要在测试前有测试人员手动把数据库数据清空置换成测试计划配套数据。
7.2、处理速度慢,特别是涉及到大规模测试数据聚的预置、重置要求时,传统数据恢复方式耗时较多;随着测试案例集规模逐渐增大,完整测试流程所耗费的时间可能呈指数级上升,严重影响了自动化测试的效率。
8.3、处理方式不灵活,例如当测试进程行进到某个阶段之后,无法把数据恢复到某个处理节点当下时刻的状态,需要测试开发人员设计针对性的辅助测试案例来删除,修改数据,从而增加了自动化测试脚本开发的难度。
9.4、在测试过程中独占数据库,特别在开发测试人员较多时,对紧缺的数据库资源造成浪费;如果测试工作使用共享数据库,则可能造成数据冲突,影响测试结果。
10.5、测试过程、测试结果所产生的数据结果集无法方便存储,获取,比较,难以追踪定位测试过程中发现的问题,无法进一步提升测试的作用。
11.6、测试结果数据难以有效复用。很多时候,导致程序异常的异常数据集、脏数据集也是一种宝贵资源,可用来考验受测软件程序对异常情况的妥善处理能力。


技术实现要素:

12.为了解决现有技术的不足,本发明针对频繁的开发、调试、测试活动提供了一种更智能,更高效的自动化测试数据管理系统与方法,以提高工作效率,其能很好的适用于微服务架构的大型软件系统。
13.本发明的目的通过以下技术方案来实现:一种自动化测试数据的管理系统,包括测试数据管理模块及与所述测试数据管理模块电性连接的存储模块,所述测试数据管理模块包括,虚拟数据环境模块:用于为每个测试用户创建一个独立的虚拟数据环境,不同虚拟数据环境相互隔离,互不干扰,并提供虚拟数据环境创建、打开、关闭及删除接口;数据存取模块:为每个测试用户提供被测试应用的数据存取服务,所述数据存取模块在不修改被测应用的数据库访问接口前提下,把被测应用调用数据库的接口进行转换为虚拟数据环境数据的存取接口,使得被测应用的代码无需修改即可通过虚拟数据环境进行数据存取;快照管理模块:包括快照创建、快照恢复、和快照共享功能,为每个测试用户提供正在测试的数据进行保存,以及共享给其他用户的服务,以便于测试和开发人员更好的重现bug,对bug进行定位分析以及解决验证;所述存储模块包括,关系数据库模块、nosql数据库模块、时序数据库模块、内存数
据库模块,以及文件存储模块。
14.优选地,所述测试数据管理模块提供数据库的虚拟数据环境以及数据存取,所述数据库包括关系数据库,no sql数据库,时序数据库,内存数据库,所述关系数据库包括mysql,所述no sql数据库包括mongo db,所述时序数据库包括influx db,所述内存数据库包括redis。
15.优选地,使用虚拟数据环境进行数据存储时,包括如下步骤:s1、虚拟环境初始化,虚拟数据环境模块对测试用户和包括关系数据库、nosql数据库、时序数据库、内存数据库和文件存储的存储模块进行初始化;s2、测试用户注册与登录,测试用户在所述自动化测试数据的管理系统进行注册和登录,虚拟数据环境模块保存测试用户的注册及登录信息;s3、创建虚拟数据环境,测试用户首次登录所述自动化测试数据管理系统后,所述虚拟数据环境模块自动为该测试用户创建一个独立的虚拟数据环境,并以该虚拟数据环境响应该测试用户所有的后续数据操作;s4、测试用户按照正常的测试方法对被测应用进行测试;s5、创建数据库,当被测应用调用数据库建立接口新建数据库时,所述数据存取模块把数据库创建接口修改为该测试用户虚拟数据环境对应的数据库创建接口,然后通过所述虚拟数据环境模块根据创建数据库的类型在相应的数据库模块中创建属于该测试用户的数据库;s6、操作数据库,当被测应用调用数据库操作接口对s5创建的数据库进行操作时,所述数据存取模块采用和s5一样的方法对操作接口进行修改,转换为真实的数据库名称,然后进行数据存取等操作。
16.优选地,所述快照管理模块的快照创建功能通过如下步骤实现:s7、用户通过接口2请求创建快照,请求内容包括快照描述;s8、快照管理模块接收到快照创建命令,将当前测试用户的所有数据库中和内存中的数据导出并打包,并按测试用户和当前时间信息存储打包后的快照数据到文件存储中;s9、快照管理模块返回创建的快照标识给测试用户;s10、用户确认快照成功后,继续进行测试,若后续测试过程中对数据进行修改,不会修改快照中的数据。
17.优选地,所述快照管理模块的快照恢复功能通过如下步骤实现:s11、测试用户通过接口2查看自己创建的所有快照列表,获得所有快照的创建时间、快照描述等内容;s12、测试用户从快照列表中选择需恢复的快照,通过接口2传递选中的快照标识恢复快照;s13、所述快照管理模块根据请求的标识找到快照的文件存储;s14、所述快照管理模块清空当前虚拟数据环境中的所有数据库内容,并把快照的内容写入到数据库中和内存中;s15、用户基于恢复的快照数据继续进行测试工作。
18.优选地,所述快照管理模块的快照共享功能通过如下步骤实现:
s16、按照快照创建步骤完成快照创建;s17、通过接口2传递需要分享的快照标识讲快照进行共享,快照管理模块通知被共享者共享快照的信息;s18、快照管理模块将共享的快照文件存储建立符号链接到被共享者的虚拟数据环境,并通知被共享者完成快照的共享。
19.优选地,所述快照共享还包括快照复制步骤,被共享者可以选择将共享的快照复制到本人的虚拟数据环境,所述快照管理模块把快照文件存储复制到被共享者的虚拟数据环境并修改用户标识,同时删除共享时创建的符号链接。
20.优选地,所述s5中创建数据库的名称为登录信息和请求的数据库名称组合,以保证每个数据库的唯一性。
21.一种具有如权利要求7所述的自动化测试的数据管理方法的管理系统的终端。
22.本发明的有益效果体现在:1、通过虚拟数据环境,让所有测试用户的数据互相独立,互不影响,可以更好的保证测试数据的准确性、完整性、和测试效率;2. 只用一套真实的数据库存储实现多个虚拟数据环境,节约硬件资源且效率高;3. 不需要修改被测应用的代码即可实现虚拟数据环境的访问;4. 数据快照功能可以随时重现以前的历史数据,提高bug重现或回归测试的效率;5. 不同测试用户可以通过共享数据快照来共享历史数据。
附图说明
23.图1:本发明的测试数据管理系统结构示意图。
具体实施方式
24.本发明揭示了一种自动化测试数据管理系统与方法,结合图1所示,自动化测试数据管理系统包括测试数据管理模块及与所述测试数据管理模块电性连接的存储模块,所述测试数据管理模块包括,用于创建独立的虚拟数据库环境,并提供虚拟数据环境创建、打开、关闭及删除接口的虚拟数据环境模块,在开发或测试人员创建虚拟数据环境时,虚拟数据环境模块会在数据库中创建一个使用人员信息,该信息和使用人员的账号和后续数据库操作绑定。所述虚拟数据环境模块根据每个开发或测试人员的需求,在真实的一套关系数据库或nosql数据库上为每个人创建独立的虚拟数据库环境,实现不同虚拟环境之间互不干扰。
25.本实施例中,所述接口设置为两套单独接口,分别为接口1和接口2;接口1为被测试应用的数据访问接口,除连接地址改为测试数据管理系统提供的地址外,其他所有数据库访问的接口完全和真实一样,不需要修改代码,对应用和测试用户完全透明。接口2为测试用户访问系统的接口,和接口1完全独立,用于虚拟环境建立、删除已经数据快照的操作。
26.用于测试应用的数据存取的数据存储模块及快照管理模块。
27.其中,所述数据存取模块用于测试应用的数据存取。在使用本发明的测试数据管理系统时,开发人员不需要对原有被测应用的数据访问代码进行修改,只需要把数据库访
问的地址改为测试数据管理系统提供的地址即可,在被测应用访问数据库接口时,测试数据管理系统会截获所有的数据库操作接口,然后在被测应用调用数据库api进行数据库操作时,会把被测应用访问的数据库名字根据用户信息进行一定格式转换,变成真实的数据库名字进行操作,从而保证不同的人员在进行同一个应用测试,同一个数据库进行操作时,互相并不会影响和冲突。
28.快照管理模块用于把某个开发或测试人员某一时刻的数据做一个快照保存到文件中,当需要的时候可以把快照重新恢复到数据库中,从而帮助开发或测试人员重现某个测试过程,有利于定位和分析问题。也可以用于在被测应用修改后,用历史快照数据进行回归测试。
29.所述存储模块包括用于存储数据的关系数据库模块、nosql数据库模块、文件存储模块及快照存储模块。关系数据库和nosql数据库采用标准的mysql或mongo db数据库,文件存储模块用于存储测试中的数据快照。当然,所述虚拟数据环境中的数据除了关系数据库和nosql数据库外,还可以包含时序数据库、redis数据或其他形式的数据。所述的关系数据库包括mysql,oracle, sql server,postgresql等。同时,本发明的数据快照可以用文件形式进行存储,也可以和数据管理系统中的测试用户数据一起存放与数据库中。
30.本发明还揭示了一种自动化测试数据管理方法,其具体如下:s1、虚拟数据环境模块初始化关系数据库、nosql数据库和文件存储,为开发或测试人员使用虚拟数据环境做好准备;s2、开发或测试人员通过接口2向测试数据管理系统注册和登录,虚拟数据环境模块保存用户信息。
31.s3、开发或测试人员登录测试数据管理系统后,按照常规测试方法和进行应用测试。
32.s4、当被测应用连接到数据库进行数据操作时,实际连到测试数据管理系统,第一次连接成功后,虚拟数据环境模块为登录的该用户创建一个虚拟的数据环境,并响应后续该用户的所有数据库操作接口。
33.当应用关闭数据库连接或用户关闭虚拟数据环境时,虚拟数据环境模块关闭该用户的虚拟数据环境,不再对该用户的数据库进行操作。
34.当连接成功一次后,被测应用再次调用数据库连接接口时,虚拟数据环境模块则打开已经创建的该用户的虚拟数据环境。
35.s5、当被测应用调用接口创建数据库时,虚拟数据环境模块根据用户连接的数据库类型在相应的数据库模块中创建一个数据库,数据库的名称为用户的登录信息和请求的数据库名称组合,从而保证了每个用户的数据库即使同名也互不冲突。
36.s6、当被测应用调用接口操作创建的数据库时,虚拟数据环境模块自动按照s5的方法转换成真实的数据库名称,被测应用的所有数据库操作看上去和普通操作并无区别。
37.本发明的测试数据管理系统除可以为每一位开发或测试人创建独立的虚拟数据环境,被测应用可以透明无感地进行数据操作外,还支持虚拟环境快照功能,即用户可以在任何时候通过接口2,为当前的虚拟数据环境,然后继续其他测试过程。
38.当用户需要重现快照时候的数据时,只需要接口2的操作取回快照,即可将当前虚拟数据环境的数据全部恢复成快照里面的内容,这样也非常有利于bug的回归测试。同时,
本发明的系统还支持数据快照共享功能,即用户可以在需要的时候把自己的快照共享给其他开发或测试人员,其他开发或测试人员恢复该快照,即可把自己的虚拟数据环境中的数据全部恢复成快照中的内容。
39.具体的,快照创建步骤如下:s1、测试用户通过接口2的命令发起创建快照命令,请求内容包括快照描述。
40.s2、快照管理模块把当前测试用户的关系数据库和nosql数据库中的数据全部导出并打包,并按测试用户和当前时间信息存储打包后的快照数据到文件存储中。
41.s3、快照管理模块返回创建的快照标识给测试用户。
42.s4、用户用户确认快照成功后,继续进行测试工作,若后续测试过程中对数据进行修改,不会修改快照中的数据。
43.s5、用户通过接口2可查看自己创建的所有快照。
44.当用户想恢复某一快照时进行bug重现或回归测试时,应用快照的实现步骤如下:s1、测试用户通过接口2查看自己创建的所有快照,获得所有快照的创建时间,快照内容描述等内容。
45.s2、测试用户从快照列表中选择自己需要恢复的快照标识。
46.s3、测试用户通过接口2传递快照标识恢复指定的快照。
47.s4、快照管理模块通过快照标识找到快照的文件存储,并把内容读入到内存中。
48.s5、快照管理模块清空当前虚拟数据环境中的所有数据内容,并把快照的内容写入到数据库和内存中。
49.s6、快照管理模块通过接口2返回快照恢复成功。
50.s7、用户继续进行基于快照数据的测试工作。
51.本发明还提供了快照共享功能,可以把一个数据快照共享给一位或多位其他测试用户,获得快照共享的用户可以把快照拷贝到自己的虚拟数据环境,也可以直接用原来的快照文件符号链接,这样可以节约存储空间。以下以共享一位进行举例。
52.当用户a需要把发现某一bug时的测试数据共享给其他开发或测试人员用户b时,可以通过快照的方式把快照共享给需要获得数据的用户b,然后自己可以继续进行其他测试而不会收到影响,具体实现方法如下:s1、用户a按照创建快照的步骤创建快照;s2、用户a通过接口2把快照共享给用户b,传递参数为快照标识和用户名称;s3、快照管理模块把共享的快照数据创建一个符号链接到用户b的虚拟数据环境;s4、用户b登录测试数据管理系统,查看自己的所有快照,现在可以看到一个由用户a共享的快照及其描述信息;s5、用户b可以选择直接恢复该快照的数据,也可以选择拷贝该快照到自己的虚拟数据环境,再恢复快照数据,如果选择拷贝,则快照管理模块把快照复制一份到用户b到虚拟数据环境,同时删除s3中创建的符号链接;综上,用户b按照自己的需求进行测试工作,同时用户a也可以继续自己的其他测试,二人的工作数据不受影响。
53.本发明的自动化测试数据管理系统与方法为开发和测试人员在几乎不改变原有数据库访问接口和测试习惯的情况下,提供了利用虚拟数据环境,提供数据资源分配、数据
库存取、数据回滚、数据共享等功能。无需额外的数据库服务器就可以为每一个开发或测试人员提供一个独立的数据库环境,互不影响,同时还支持数据回滚、数据共享等常规数据库无法提供的功能,在保证数据安全和数据正确性及完整性的情况下,既节约了物理数据库资源,还可大大提高测试的效率。
54.且以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献