一种软件测试线上问题的本地复现方法及系统与流程

文档序号:33641365发布日期:2023-03-29 02:11阅读:92来源:国知局
一种软件测试线上问题的本地复现方法及系统与流程

1.本技术涉及软件测试技术领域,具体涉及一种软件测试线上问题的本地复现方法及系统。


背景技术:

2.软件上线运行后,难免会遇到线上问题,这些线上问题可能是由于生产数据与测试环境不一致,可能是用户误操作,也可能是因为测试人员漏测。为了准确复现和解决线上问题,不仅需要查看线上系统的日志,还需要查看数据库数据。然而因为生产数据保密等限制,开发和测试人员往往没有权限查看线上数据库,甚至可能无法登陆线上系统,这就需要一种方法在本地准确地复现线上问题。


技术实现要素:

3.为了解决上述技术问题,本技术提供一种软件测试线上问题的本地复现方法及系统,通过线上的binlog日志,把线上数据回放到本地测试环境的数据库,回放的数据经过脱敏和转换处理,既不会暴露用户隐私,也能适配本地环境的运行。此外,通过用户操作记录,自动或者人工在测试环境进行操作复现,重现线上问题。本技术所采用的技术方案如下:
4.一种软件测试线上问题的本地复现系统,该系统包括select模块、load模块、管理模块、线上环境数据库、测试环境数据库;
5.所述管理模块部署在测试环境,分别与select模块、load模块、以及测试环境数据库相连,用于管理select、load模块的启停并记录全局事务标识符gtid,通过调用测试环境的接口进行用户操作复现以实现回退测试环境数据库到指定时间点;
6.所述select模块部署在生产环境,用于抽取生产环境的binlog日志;所述select模块依据管理模块的规则对生产数据进行脱敏,再将数据发送给load模块;
7.所述load模块部署在测试环境,依据管理模块的规则对收到的数据进行映射,使数据符合测试环境的配置,再将数据回放到测试环境数据库;
8.所述线上环境数据库和所述测试环境数据库均为mysql数据库并开启了binlog,所述线上环境数据库用于记录用户操作复现所需的数据。
9.进一步的,在该本地复现系统中,管理select模块的启停,包括:所述select模块收到管理模块的暂停指令后,会暂停任务并返回当前的gtid;select模块收到管理模块的启动指令后,依据管理模块提供的gtid继续抽取数据。
10.进一步的,管理load模块的启停,包括:所述load模块收到管理模块的暂停指令后,完成当前数据的回放,再停止任务,load模块收到管理模块的启动指令后,会继续回放数据。
11.进一步的,所述管理模块设置了用户数据的脱敏和映射规则,将隐私信息加密和替换成测试环境的对应数据。
12.进一步的,所述用户操作复现所需的数据包括线上业务数据、用户请求以及请求
数据。
13.进一步的,所述隐私信息包括用户账户、邮箱、密码或者电话。
14.一种软件测试线上问题的本地复现方法,该方法应用于上述本地复现系统,其特征在于,该方法包括如下步骤:
15.步骤1、对线上环境进行实时监测,当线上业务出现问题时,管理模块向select模块、load模块发送暂停指令,并记录全局事务标识符gtid;
16.步骤2、管理模块回退测试环境数据库数据到线上业务出现问题之前的时间t;
17.步骤3、根据操作记录,再次执行所述时间t之后的用户操作,并判断引起线上业务出现问题的缺陷是否复现;若缺陷复现,则分析和确定缺陷产生的原因,在修复缺陷后将所述缺陷产生的原因发布到测试环境中,返回执行步骤2;若缺陷未复现,则继续执行步骤4;
18.步骤4、判断该缺陷是否是初次复现,若是初次复现,则查找导致缺陷的其他环境异常原因,执行步骤6;若不是初次复现,则在查找和确定缺陷原因之后,修复缺陷并发布版本到线上环境以修复线上数据,并继续执行步骤5;
19.步骤5、判断线上问题是否已经解决,若线上问题尚未解决,则查找导致缺陷的其他环境异常原因;若线上问题已解决,则继续执行步骤6;
20.步骤6、所述管理模块回退测试环境数据库数据到出现线上问题之前的时间t,重新开始同步gtid后的数据到测试环境。
21.进一步的,在步骤1之前,所述本地复现方法还包括:在线上环境部署select模块、管理模块,在测试环境部署load模块,并配置数据脱敏和映射的规则。
22.进一步的,在步骤3中,在管理模块自动执行或者由管理人员人工操作来执行时间t之后的用户操作。
23.进一步的,在步骤6中,所述管理模块向所述select模块和所述load模块发送启动指令,重新开始同步gtid后的数据到测试环境。
24.通过本技术实施例,可以获得如下技术效果:
25.(1)操作简单并且可以重复执行,降低了线上数据同步和线上问题复现的门槛。
26.(2)数据经过脱敏和映射导入测试环境,既保护了用户的隐私,也实现了测试环境的无缝对接。
附图说明
27.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
28.图1为本地复现系统的框架示意图;
29.图2为本地复现方法的流程示意图。
具体实施方式
30.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本技术保护的范围。
31.图1为本地复现系统的框架示意图。该本地复现系统包括select模块、load模块、管理模块、线上环境数据库、测试环境数据库;
32.所述管理模块部署在测试环境,分别与select模块、load模块、以及测试环境数据库相连,用于管理select、load模块的启停并记录全局事务标识符gtid(global transaction identifier),通过调用测试环境的接口进行用户操作复现以实现回退测试环境数据库到指定时间点;
33.所述select模块部署在生产环境,用于抽取生产环境的binlog日志;所述select模块依据管理模块的规则对生产数据进行脱敏,再将数据发送给load模块;
34.所述load模块部署在测试环境,依据管理模块的规则对收到的数据进行映射,使数据符合测试环境的配置,再将数据回放到测试环境数据库;
35.所述线上环境数据库和所述测试环境数据库均为mysql数据库并开启了binlog,所述线上环境数据库用于记录用户操作复现所需的数据。
36.在该本地复现系统中,管理select模块的启停,包括:所述select模块收到管理模块的暂停指令后,会暂停任务并返回当前的gtid;select模块收到管理模块的启动指令后,依据管理模块提供的gtid继续抽取数据;
37.管理load模块的启停,包括:所述load模块收到管理模块的暂停指令后,完成当前数据的回放,再停止任务,load模块收到管理模块的启动指令后,会继续回放数据;
38.所述管理模块设置了用户数据的脱敏和映射规则,将隐私信息加密和替换成测试环境的对应数据;所述隐私信息包括用户账户、邮箱、密码或者电话;
39.所述用户操作复现所需的数据包括线上业务数据、用户请求以及请求数据。
40.图2为本地复现方法的流程示意图。所述本地复现方法包括以下步骤:
41.步骤1、对线上环境进行实时监测,当线上业务出现问题时,管理模块向select模块、load模块发送暂停指令,并记录全局事务标识符gtid;
42.步骤2、管理模块回退测试环境数据库数据到线上业务出现问题之前的时间t;
43.步骤3、根据操作记录,再次执行所述时间t之后的用户操作,并判断引起线上业务出现问题的缺陷是否复现;若缺陷复现,则分析和确定缺陷产生的原因,在修复缺陷后将所述缺陷产生的原因发布到测试环境中,返回执行步骤2;若缺陷未复现,则继续执行步骤4;
44.步骤4、判断该缺陷是否是初次复现,若是初次复现,则查找导致缺陷的其他环境异常原因,执行步骤6;若不是初次复现,则在查找和确定缺陷原因之后,修复缺陷并发布版本到线上环境以修复线上数据,并继续执行步骤5;
45.步骤5、判断线上问题是否已经解决,若线上问题尚未解决,则查找导致缺陷的其他环境异常原因;若线上问题已解决,则继续执行步骤6;
46.上述步骤中,所述其他环境异常原因包括服务器配置、网络异常、主机io、网络、内存等异常等等导致缺陷;
47.步骤6、所述管理模块回退测试环境数据库数据到出现线上问题之前的时间t,并向所述select模块和所述load模块发送启动指令,重新开始同步gtid后的数据到测试环境。
48.在步骤1之前,所述本地复现方法还包括:在线上环境部署select模块、管理模块,在测试环境部署load模块,并配置数据脱敏和映射的规则;
49.在步骤3中,在管理模块自动执行或者由管理人员人工操作来执行时间t之后的用户操作。
50.综上所述,本技术采用binlog的方式向测试环境同步线上数据,不会影响线上数据库的性能,且能实时同步数据。本技术可以根据用户的操作记录和操作数据,自动复现用户操作,提高问题复现的效率。本技术可以反复重置测试环境的数据到任意时间点,便于反复验证缺陷。本技术用于帮助开发人员、测试人员在本地环境复现线上问题,缩短缺陷定位时间,快速解决线上问题。本技术也可以用于搭建准生产环境,版本发布前在准生产环境进行功能验证或者冒烟测试,极大限度的模拟真实线上环境,降低发版对存量业务的影响。
51.虽然以上描述了本技术的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本技术的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本技术的原理和实质的前提下,可以对这些实施方式作出多种变更或修改,但这些变更和修改均落入本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1