Document
拖动滑块完成拼图
个人中心

预订订单
服务订单
发布专利 发布成果 人才入驻 发布商标 发布需求

在线咨询

联系我们

龙图腾公众号
首页 专利交易 IP管家助手 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索
当前位置 : 首页 > 专利喜报 > 天津南大通用数据技术股份有限公司汪超英获国家专利权

天津南大通用数据技术股份有限公司汪超英获国家专利权

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

龙图腾网获悉天津南大通用数据技术股份有限公司申请的专利一种将数据库单实例用例自动转换为高可用用例的方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN120066979B

龙图腾网通过国家知识产权局官网在2025-08-12发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202510554431.0,技术领域涉及:G06F11/3668;该发明授权一种将数据库单实例用例自动转换为高可用用例的方法是由汪超英设计研发完成,并于2025-04-29向国家知识产权局提交的专利申请。

一种将数据库单实例用例自动转换为高可用用例的方法在说明书摘要公布了:本发明提供了一种将数据库单实例用例自动转换为高可用用例的方法,包括以下步骤:自动化测试框架启动后,先用parser对用例进行语法分析;给高可用转换器增加前置转换器;调用HaTransformer的apply方法开始转换用例。本发明有益效果:旨在提供动态修改测试用例的方法,让单实例的测试用例自动变为高可用用例。该方法可应用于基于DSL编写的数据库测试用例脚本。该方法的价值体现在:无需人工编写大量测试功能点一样的用例;简单易用,根据命令行一个参数动态转换用例。

本发明授权一种将数据库单实例用例自动转换为高可用用例的方法在权利要求书中公布了:1.一种将数据库单实例用例自动转换为高可用用例的方法,其特征在于:包括以下步骤: 步骤1:自动化测试框架启动后,先用parser对用例进行语法分析; 步骤2:给高可用转换器增加前置转换器; 步骤3:调用HaTransformer的apply方法开始转换用例; 在步骤1中,parser对用例进行语法分析,包括: 用例脚本作为输入流传给parser后,输入的字符流经过词法分析后,变为TOKEN; 识别TOKEN属于哪种语法规则,进入DSL语句对应的语法规则后,把语句中各元素作为一个DslStatement实现类的构造方法的各参数,构造出一个DslStatement实现类的对象; 遇到分号后认为当前DSL语句结束,再匹配下一个DSL语句; 用例的所有DSL语句经过parser分析后,就变为ListDslStatement; 在步骤2中,给高可用转换器增加前置转换器,包括: 单实例用例转为高可用用例,需做DSL语句替换,以及设置高可用集群的必要的前置条件,若GBase8s数据库是使用逻辑日志做主备同步,那么若单实例用例的建库语句是非日志模式,则需要转换; 转换过程包括: 调用函数apply,函数apply的参数是用例对象,用例对象包括ListDslStatement,函数apply的返回值也是一个用例对象,代表经过转换后的用例,函数apply的两个实现类包括LogModeTransformer和HaTransformer,LogModeTransformer和HaTransformer分别为日志模式转换器、高可用转换器; 在步骤3中,调用HaTransformer的apply方法开始转换用例,包括: 调用所有前置转换器的apply方法; 调用高可用转换器的核心转换逻辑; HaTransformer的构造方法中,首先添加一个LogModeTransformer作为前置转换器,两个参数分别是NONE、LOG,代表把非日志模式转为日志模式; 若高可用转换器的target是从节点,即把以前单实例变量名作为集群从节点的变量名使用,故对从节点的日志模式需要再添加一个LogModeTransformer作为前置转换器,两个参数分别是BUFFERED、LOG,代表把带缓冲日志模式变为不带缓冲的日志模式; 调用所有前置转换器的apply方法,包括: 设置两个前置转换器均为LogModeTransformer,apply方法直接用本转换器对应的visitor去转换用例; 其中,visitor的父类为DeepCopyVisitor,作用是深拷贝每个抽象语法树的节点;在用visitor对测试用例做深度优先遍历时,直接走父类的visit复制节点; 其中,日志模式转换器的DSL存在两个语句用来建库,建库方式包括普通建库和高级建库,普通建库和高级建库对应两个方法调用,方法调用对应的DSLStatement实现类均为DslMethodCallStatement,DslMethodCallStatement有一个元素代表方法名,只要判定方法名是getDatabase、getAdvancedDatabase,即可断定是建库语句; 遍历到方法调用语句时,进入visitor的具体过程,包括: 进入visitor的visit方法,从visit的stmt参数取方法名,若是getDatabase则进行getDatabase调用方法,若是getAdvanceDatabase则进行getAdvancedDatabase调用方法,若都不是,则直接调用走父类的visit方法复制语句; getDatabase调用方法,包括: 第一个参数设置为设定日志模式,具体包括: 创建一个新的参数列表,先把目标日志模式作为第一个列表元素,再把移除第一个元素的原参数列表各元素按原顺序添加到新参数列表,最后重新创建一个方法调用语句对象代替原对象; getAdvancedDatabase调用方法,包括: getAdvancedDatabase方法调用返回的db对象为一个空壳,后续采用set方法进行属性设置,若需要改变日志模式,无需关心之前set的日志模式,仅需再set一次覆盖原来日志模式; 调用高可用转换器的核心转换逻辑,包括: 首先,把获取单实例替换为获取集群,visit赋值语句时,进行判断: visit的方法参数是赋值语句对应的DslStatement实现类对象,通过DslStatement实现类对象取等号右边元素,若元素是方法调用语句并且调用对象是system并且方法名是getinstance,说明是获取单实例的DSL语句,则进行构建集群;若元素是方法调用语句并且方法名是getConnection,则进行处理getConnection;若都不是则直接调用父类visit方法,赋值该语句; 构建集群,包括: 定义cluster=system.getCluser;经parser解析后会得到DslStatement,然后手动构造: 构建一个system对象; 构建一个方法调用语句对象; 构建一个集群对象,用来接收方法调用语句对象的返回值; 构建一个赋值语句; 基于赋值语句中的clusterObj,获取集群中各节点: 获取主节点的DSL语句,手动构造步骤如下: 若高可用转换器的目标对象是主节点,那么集群的主节点对象直接使用原单实例节点对象,即使用原单实例节点的变量名; 若目标对象是从节点,那么主节点对象需要手动构建一个,得到primaryObj作为主节点对象; 构建一个方法调用语句对象,三个参数分别是:clusterObj,"getNode",参数列表,得到的语句对象变量名是getPrimaryExpression; 构建赋值语句对象,获取从节点的DSL语句; 然后对两个集群节点调用语句对象,三个参数分别是:节点对象,"setConfig",参数列表; 再构建一个方法调用语句对象,把集群实例化,三个参数分别是:clusterObj,"instantiate"、参数列表; 处理getConnection,包括: 用例脚本步骤是先获取实例,再获取连接getConnection,再用getConnection进行一系列操作: 若操作只能对主节点进行,当集群转换器目标是从节点并执行到这种操作时,需要临时切到主节点执行,执行完后恢复由从节点执行,故需要再有一个对主节点的连接,也是需要构建一个方法调用语句对象,三个参数分别是:primaryObj,"getConnection"以及原getConnection的参数列表,构建出的连接对象名为:_tempPrimConn; 在visit中,当检测到方法名是必须在主节点执行的方法名列表中的某一项时,把当前连接切到__tempPrimConn,具体步骤包括: I.保存当前连接; II.切换当前连接为__tempPrimConn; III.构建方法调用语句对象,获取当前连接所连数据库名称; IV.构建方法调用语句对象,切库为步骤III获取的库名; V.当前visit的语句之后,把步骤I保存的连接恢复。

如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人天津南大通用数据技术股份有限公司,其通讯地址为:300301 天津市滨海新区高新区滨海科技园高新六路39号2号楼2单元201-33号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。