CN115629803A - 基于对比平台和测试平台的代码迁移方法及其相关设备 - Google Patents

基于对比平台和测试平台的代码迁移方法及其相关设备 Download PDF

Info

Publication number
CN115629803A
CN115629803A CN202211374112.4A CN202211374112A CN115629803A CN 115629803 A CN115629803 A CN 115629803A CN 202211374112 A CN202211374112 A CN 202211374112A CN 115629803 A CN115629803 A CN 115629803A
Authority
CN
China
Prior art keywords
platform
test
comparison
test platform
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211374112.4A
Other languages
English (en)
Inventor
王少坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202211374112.4A priority Critical patent/CN115629803A/zh
Publication of CN115629803A publication Critical patent/CN115629803A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种基于对比平台和测试平台的代码迁移方法及其相关设备,其中方法包括:获取测试平台的第一前端传入的至少一项测试参数,并将至少一项测试参数封装成预设格式的字符串;根据预设格式的字符串,自动生成与测试平台的第一后端对应的第一控制类;将测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口;通过统一的第三接口直接调用对比平台的第二后端对应的第二控制类;基于第一控制类以及第二控制类将对比平台的代码迁移至测试平台。本申请通过统一不同平台的接口,能够提升不同平台之间代码迁移的效率,同时提高不同平台之间代码迁移的便捷性以及灵活性。

Description

基于对比平台和测试平台的代码迁移方法及其相关设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于对比平台和测试平台的代码迁移方法及其相关设备。
背景技术
相关技术中,对比平台的代码需要迁移至测试工具平台,以对迁移后的代码进行测试。在代码迁移的过程中,业内一般直接将对比平台的所有代码全部拷贝至测试工具平台的对应代码项目中,或者将对比平台改造成微服务后,通过测试工具平台直接对改造后的微服务进行调用。
然而,一方面,直接将对比平台的所有代码全部拷贝至测试工具平台的对应代码项目中,测试工具平台的代码改动量较大。而且,在代码迁移过程中,数据量大,可能涉及诸如上万行的大量代码改动,同时涉及数据库中所有数据的迁移和同步工作,在迁移后还需要解决数据库同步后的数据冲突问题。当后续对比平台有任何改动,均需要重新进行代码迁移。
另一方面,将对比平台改造成微服务,涉及的对比平台的代码改动量仍然较大,改动难度高。在改造微服务过程中,需要进行代码服务拆分、服务器搭建以及服务之间的访问等工作,这需要多名测试人员协作完成,而且参与迁移及后续维护等工作的测试人员必须了解微服务相关技术,技能要求高,不利于项目的维护和更新。因此,如何提升对比平台的代码迁移至测试工具平台的效率,是一个亟待解决的问题。
发明内容
有鉴于此,本申请提出了一种基于对比平台和测试平台的代码迁移方法及其相关设备,能够缩短不同平台之间代码迁移的时间,进而提升不同平台之间代码迁移的效率,同时降低将对比平台的代码迁移至测试平台过程中代码修改的数量,提高不同平台之间代码迁移的便捷性,并通过接口的直接调用,提升了不同平台之间代码迁移的灵活性。
根据本申请的一方面,提供了一种基于对比平台和测试平台的代码迁移方法,所述方法包括:获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串;根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类;将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口;通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类;基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台。
进一步地,获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串,包括:实时监听测试平台的第一前端传入的至少一项测试参数;获取所述测试平台的配置文件中预先配置的封装格式,其中,所述封装格式为JSON格式;将所述至少一项测试参数统一封装成所述封装格式的字符串。
进一步地,根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类,包括:根据所述预设格式的字符串,解析该字符串的树结构,得到与所述字符串对应的结构集合;利用所述结构集合,自动生成与所述测试平台的第一后端对应的第一控制类。
进一步地,利用所述结构集合,自动生成与所述测试平台的第一后端对应的第一控制类,包括:判断所述字符串是否包括空集合类型;若所述字符串包括空集合类型,统一将所述字符串转换为Object类型;若所述字符串不包括空集合类型,保持所述字符串的当前类型不变。
进一步地,将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口,包括:获取所述对比平台的第二后端的至少一个后端业务;采用合并操作符,将所述至少一个后端业务对应的接口与所述测试平台的第一后端的接口合并,以形成统一的第三接口。
进一步地,通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类,包括:获取所述对比平台的第二前端的所有代码,并将所述对比平台的第二前端的全部代码转移至所述测试平台;通过所述统一的第三端口生成与所述第二前端对应的前端入口;利用所述前端入口直接调用所述对比平台的第二后端对应的第二控制类。
进一步地,基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台,包括:根据所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类返回与该调用对应的处理结果;基于所述与该调用对应的处理结果将所述对比平台的代码迁移至所述测试平台,其中,若所述处理结果为调用成功,直接将所述对比平台的代码迁移至所述测试平台;若所述处理结果为调用失败,停止将所述对比平台的代码迁移至所述测试平台。
根据本申请的又一方面,提供了一种基于对比平台和测试平台的代码迁移装置,所述基于对比平台和测试平台的代码迁移装置包括:参数传入模块,用于获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串;控制类生成模块,用于根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类;融合模块,用于将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口;调用模块,用于通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类;代码迁移模块,用于基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台。
根据本申请的又一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于对比平台和测试平台的代码迁移方法。
根据本申请的又一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述基于对比平台和测试平台的代码迁移方法。
通过获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串,接着根据所述预设格式的字符串自动生成与所述测试平台的第一后端对应的第一控制类,然后将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口,进而通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类,最后基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台,根据本申请的各方面能够缩短不同平台之间代码迁移的时间,进而提升不同平台之间代码迁移的效率,同时降低将对比平台的代码迁移至测试平台过程中代码修改的数量,提高不同平台之间代码迁移的便捷性,并通过接口的直接调用,提升了不同平台之间代码迁移的灵活性。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。
图1示出本申请实施例的基于对比平台和测试平台的代码迁移方法的流程图。
图2示出本申请实施例的基于对比平台和测试平台的代码迁移方法的示意图。
图3示出本申请实施例的基于对比平台和测试平台的代码迁移装置的框图。
图4示出本申请实施例的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接连接,也可以通过中间媒介间接连接,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
下文的公开提供了许多不同的实施方式或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅为示例,并且目的不在于限制本申请。此外,本申请可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本申请提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
图1示出本申请实施例的基于对比平台和测试平台的代码迁移方法的流程图。如图1所示,所述基于对比平台和测试平台的代码迁移方法可包括:
步骤S1:获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串;
其中,本申请实施例主要涉及对比平台以及测试平台这两个平台。对比平台可用于比较原始数据和目标数据之间的差异,测试平台可根据对比后的目标数据进行各项测试。所述对比平台以及测试平台是示例性的。在本申请中,可以将对比平台以及测试平台替换为其他类似的平台,本申请对于代码迁移的具体平台并不限定。
具体的,在大数据开发过程中,经常会遇到数据迁移或修改的情况,此时需要利用对比平台验证数据迁移或修改前后的一致性。不同于手动编写脚本,本申请实施例的对比平台可实现自动对迁移或修改前后的数据进行校验和比对。相应地,经过对比平台对比后的代码可迁移至测试平台中。当然,对比平台也可以比对迁移至测试平台前的数据以及迁移至测试平台后的数据,本申请对于具体的对比对象以及测试对象并不限定。
在一个示例中,所述测试平台可包括第一前端以及第一后端。所述第一前端可包括对应第一后端接口的信息、页面展示文件、页面接口文件、页面数据类型定义文件等,所述第一后端可包括Entity实体类、Bean实体类、数据访问接口层(DAO)、数据服务层(Service)、前端控制器(Controller)、配置文件等。
所述对比平台可包括第二前端以及第二后端。在一个示例中,所述对比平台的第二前端可针对数据校验对比选择表和字段,生成校验任务;所述对比平台的第二后端可以采用诸如Spring Boot、MyBatis等框架将第二前端的配置数据写入MySQL表中,然后启动MapReduce或者Spark任务来进行校验。启动的任务可基于计算引擎和存储引擎进行处理。其中,所述计算引擎可包括MapReduce、Spark等,所述存储引擎可包括:HDFS、Hive等。在实际应用过程中,也可以考虑扩展更多的数据引擎和存储引擎。通过所述计算引擎和比对引擎比对后的结果可存入MySQL数据库中。
在具体的对比过程中,可以利用所述对比平台选择需要对比的库和表,然后选择对比条件,例如是对主键进行对比,还是对字段进行全部对比,并将对比结果保存至相应的数据库中。对比结果可包括基准数据、对照表数据、数据一致性、差异显示等。
进一步地,获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串,包括:
步骤S11:实时监听测试平台的第一前端传入的至少一项测试参数;
其中,所述测试参数可以有一项,也可以有多项。所述测试参数可以从所述第一前端传入的测试请求中获取。在实际工作过程中,测试人员可控制所述测试平台发起测试请求,该测试请求中可以已封装有与所述测试平台相兼容的一项或多项测试参数。可以理解,对于如何从所述测试请求获取对应的至少一项测试参数,本申请并不限定。
步骤S12:获取所述测试平台的配置文件中预先配置的封装格式,其中,所述封装格式为JSON格式;
具体的,所述测试平台的配置文件中配置有预先设置的封装格式,该封装格式可以是JSON格式。JS对象简谱(JavaScript Object Notation,JSON)是一种轻量级的数据交换格式,基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。采用JSON格式来进行封装处理,能够使得代码的层次结构更加简洁和清晰。由于JSON格式易于机器解析和生成,也能够提高数据传输效率。
步骤S13:将所述至少一项测试参数统一封装成所述封装格式的字符串。
示例性的,可以先调用业务层查询与所述至少一项测试参数对应的对象方法,接着创建数组存储所述对象方法,然后创建数据返回实体,利用该数据返回实体传入对应的所述至少一项测试参数。最后调用与JSON格式相关的包,将所述至少一项测试参数封装成所述封装格式的字符串。在步骤S13中,将所述至少一项测试参数统一封装成所述封装格式的字符串可以自动进行。
步骤S2:根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类;
示例性的,所述第一控制类为Controller类。在实际应用中,所述第一控制类也可根据实际需要进行调整。例如,根据业务场景的不同,所述第一控制类也可以为嵌套类或自定义类等其他类型。可以理解,本申请对于所述第一控制类的具体类型并不限定。
进一步地,根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类,包括:
步骤S21:根据所述预设格式的字符串,解析该字符串的树结构,得到与所述字符串对应的结构集合;
具体的,可以利用Gson工具根据所述预设格式的字符串解析该字符串的树结构。Gson工具可用于提供在Java对象和JSON数据之间进行映射的Java类库。利用Gson工具可以将一个JSON字符转成一个Java对象,或者将一个Java对象转化为JSON字符串,从而解析该字符串的树结构,得到与所述字符串对应的结构集合。
步骤S22:利用所述结构集合,自动生成与所述测试平台的第一后端对应的第一控制类。
其中,所述结构集合可包括多个所述字符串的树结构。在自动生成与所述测试平台的第一后端对应的第一控制类之前,还可以将所述字符串提前拷贝至所述测试平台的预设文件中,然后在自动生成与所述测试平台的第一后端对应的第一控制类时,将所述字符串的位置信息作为参数之一传入与第一控制类生成有关的函数中。可以理解,利用所述结构集合,自动生成与所述测试平台的第一后端对应的第一控制类可以采用自定义函数实现,也可以采用Java中的预置函数实现,本申请并不限定。
进一步地,利用所述结构集合,自动生成与所述测试平台的第一后端对应的第一控制类,包括:
步骤S221:判断所述字符串是否包括空集合类型;
在一个示例中,所述空集合类型为null类型。在所述字符串包括空集合类型的情况下,该字符串的类型难以被准确判断。因此,可以在自动生成与所述测试平台的第一后端对应的第一控制类前,先判断所述字符串是否包括空集合类型,然后根据对应于所述字符串是否包括空集合类型的判断结果来进行下一步处理。
步骤S222:若所述字符串包括空集合类型,统一将所述字符串转换为Object类型;若所述字符串不包括空集合类型,保持所述字符串的当前类型不变。
具体的,在所述字符串包括空集合类型的情况下,说明该字符串的类型难以被准确判断,此时可统一将所述字符串转换为Object类型,以便进一步处理;而在所述字符串不包括空集合类型的情况下,说明所述字符串的类型判断较为容易,此时可保存所述字符串的当前类型不变。
步骤S3:将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口;
其中,所述第三接口既可以兼容所述第一后端的接口,也可以兼容所述第二后端的接口。所述第三接口可以装载于所述测试平台的第一后端上。在实际应用中,也可以直接将对比平台的第二后端的接口直接融合至所述第一后端的接口,并利用融合后的接口来替换所述第一后端的接口。
进一步地,将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口,包括:
步骤S31:获取所述对比平台的第二后端的至少一个后端业务;
具体来说,所述后端业务可以有一个,也可以有多个。所述后端业务与所述测试平台的具体测试场景相关联。不同的测试场景中,测试对象和测试目的也有所不同。本申请通过获取所述对比平台的第二后端的至少一个后端业务,能够将测试场景的相关因素加入至后端业务的考虑范围,从而提高代码迁移的精准度。
步骤S32:采用合并操作符,将所述至少一个后端业务对应的接口与所述测试平台的第一后端的接口合并,以形成统一的第三接口。
其中,所述合并操作符可以是merge操作符。在实际使用过程中,也可以采用自定义的操作符进行接口合并。示例性的,所述至少一个后端业务对应的接口与所述测试平台的第一后端的接口均可分别包括函数成员以及非函数成员。将所述至少一个后端业务对应的接口与所述测试平台的第一后端的接口合并实际上可以通过将这两个接口的所有成员放入一个同名的接口实现,这个同名的接口即所述统一的第三接口。
步骤S4:通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类;
在本申请中,无论是所述第一控制类,还是所述第二控制类,均可包括若干行代码,用于实现调用功能。具体的,对于所述测试平台,该测试平台的第一控制类可以通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类。也就是说,本申请实施例可以通过请求透传利用第一前端直接使用第二后端的逻辑。测试平台可以作为A端,对比平台可以作为B端,换句话说,本申请实施例可以使A端页面通过请求透传直接使用B端逻辑,从而提升代码迁移的效率。
进一步地,通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类,包括:
步骤S41:获取所述对比平台的第二前端的所有代码,并将所述对比平台的第二前端的全部代码转移至所述测试平台;
其中,在获取所述对比平台的第二前端的所有代码前,可以在所述测试平台的代码项目中新建一个固定的目录,在该目录下将所述至少一项测试参数封装成预设格式的字符串。同时,在将所述对比平台的第二前端的全部代码转移至所述测试平台的过程中,可以保持相对目录不变。
步骤S42:通过所述统一的第三端口生成与所述第二前端对应的前端入口;
示例性的,所述前端入口可以是index.js文件。所述前端入口可以是所述测试平台整个代码项目的入口。所述前端入口可以接收通过所述统一的第三端口传递过来的调用请求。需要说明的是,在某些场景中,也可以根据需要不设置所述前端入口,而是直接通过所述统一的第三端口调用所述对比平台的第二后端对应的第二控制类,本申请并不限定。
步骤S43:利用所述前端入口直接调用所述对比平台的第二后端对应的第二控制类。
在步骤S43中,当利用所述前端入口接收对应的调用请求后,可以直接调用所述对比平台的第二后端对应的第二控制类。此时,无需处理前端传入的所有参数,转而处理的是对应于所述至少一项测试参数的调用请求,因此能够进一步提高代码迁移的效率。
步骤S5:基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台。
具体的,基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台,可包括:
步骤S51:根据所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类返回与该调用对应的处理结果;
其中,所述第一控制类以及所述第二控制类之间可以正向调用,也可以反向调用,并根据调用结果来将所述对比平台的代码迁移至所述测试平台。
步骤S52:基于所述与该调用对应的处理结果将所述对比平台的代码迁移至所述测试平台,其中,若所述处理结果为调用成功,直接将所述对比平台的代码迁移至所述测试平台;若所述处理结果为调用失败,停止将所述对比平台的代码迁移至所述测试平台。
在步骤S52中,本申请实施例设置了对于所述与该调用对应的处理结果的进一步处理。所述处理结果可以返回至前端。通过判断所述处理结果是否调用成功,来确定是否将所述对比平台的代码迁移至所述测试平台,能够进一步降低由于调用错误所带来的代码错误迁移的风险。
图2示出本申请实施例的基于对比平台和测试平台的代码迁移方法的示意图。
如图2所示,示例性的,本申请实施例的基于对比平台和测试平台的代码迁移方法可按照测试平台的第一前端、测试平台的第一后端、对比平台的第二后端对应的接口以及对比平台的第二后端的业务处理的顺序依次访问。具体来说,测试平台的第一前端可向测试平台的第一后端发出测试请求,测试平台的第一后端可向对比平台的第二后端对应的接口发出访问请求,该对比平台的第二后端对应的接口可以是所述第三接口,然后通过对比平台的第二后端对应的接口向对比平台的第二后端的业务处理模块发出处理请求,以直接调用对比平台的第二后端的逻辑。对于以上各个请求阶段,均可以返回与各请求对应的处理结果,以判断各请求是否得到正确响应。
综上,一方面,本申请将原本计划三个月才能完成的迁移工作缩短至两周内完成,并且后续如仅改动现有接口内的功能,测试平台无需进行代码修改,即可使用对比平台新功能,而且对比平台每新增一个接口,测试平台的代码迭代周期可缩短至半小时内完成,提升了代码迁移的时效性;另一方面,本申请将前端传入的多项参数统一封装为一个JSON格式的字符串,可根据不同场景灵活透传至对比平台接口,无需处理前端传入的所有参数,使得接口调用更加灵活,提升了代码迁移的灵活性;此外,本申请对于后续对比平台功能的修改,仅需在原有代码逻辑上进行修改并部署,测试平台即可调用,而无需在测试工具平台再次进行修改。若后续对比平台需下线,也仅需要在测试工具关闭访问入口,无需更多操作,真正做到模块化管理,提升了代码迁移的便捷性。
图3示出本申请实施例的基于对比平台和测试平台的代码迁移装置的框图。
如图3所示,本申请实施例的基于对比平台和测试平台的代码迁移装置30可包括:
参数传入模块31,用于获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串;
控制类生成模块32,用于根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类;
融合模块33,用于将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口;
调用模块34,用于通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类;
代码迁移模块35,用于基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台。
此外,本申请提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于对比平台和测试平台的代码迁移方法。
进一步地,本申请还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述基于对比平台和测试平台的代码迁移方法。
图4示出本申请实施例的电子设备的结构示意图。
如图4所示,所述电子设备可用于实现所述基于业务代码的测试方法。具体的,所述电子设备可以包括计算机系统。需要说明的是,图4示出的电子设备仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统包括中央处理单元(Central Processing Unit,CPU)1801,其可以根据存储在只读存储器(Read-Only Memory,ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(Random Access Memory,RAM)1803中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1803中,还存储有系统操作所需的各种程序和数据。CPU 1801、ROM 1802以及RAM 1803通过总线1804彼此相连。输入/输出(Input/Output,I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(CPU)1801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上对本申请实施例所提供的基于业务代码的测试方法及其相关设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例的技术方案的范围。

Claims (10)

1.一种基于对比平台和测试平台的代码迁移方法,其特征在于,所述方法包括:
获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串;
根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类;
将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口;
通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类;
基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台。
2.根据权利要求1所述的基于对比平台和测试平台的代码迁移方法,其特征在于,获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串,包括:
实时监听测试平台的第一前端传入的至少一项测试参数;
获取所述测试平台的配置文件中预先配置的封装格式,其中,所述封装格式为JSON格式;
将所述至少一项测试参数统一封装成所述封装格式的字符串。
3.根据权利要求1所述的基于对比平台和测试平台的代码迁移方法,其特征在于,根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类,包括:
根据所述预设格式的字符串,解析该字符串的树结构,得到与所述字符串对应的结构集合;
利用所述结构集合,自动生成与所述测试平台的第一后端对应的第一控制类。
4.根据权利要求3所述的基于对比平台和测试平台的代码迁移方法,其特征在于,利用所述结构集合,自动生成与所述测试平台的第一后端对应的第一控制类,包括:
判断所述字符串是否包括空集合类型;
若所述字符串包括空集合类型,统一将所述字符串转换为Object类型;若所述字符串不包括空集合类型,保持所述字符串的当前类型不变。
5.根据权利要求1所述的基于对比平台和测试平台的代码迁移方法,其特征在于,将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口,包括:
获取所述对比平台的第二后端的至少一个后端业务;
采用合并操作符,将所述至少一个后端业务对应的接口与所述测试平台的第一后端的接口合并,以形成统一的第三接口。
6.根据权利要求1所述的基于对比平台和测试平台的代码迁移方法,其特征在于,通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类,包括:
获取所述对比平台的第二前端的所有代码,并将所述对比平台的第二前端的全部代码转移至所述测试平台;
通过所述统一的第三端口生成与所述第二前端对应的前端入口;
利用所述前端入口直接调用所述对比平台的第二后端对应的第二控制类。
7.根据权利要求1所述的基于对比平台和测试平台的代码迁移方法,其特征在于,基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台,包括:
根据所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类返回与该调用对应的处理结果;
基于所述与该调用对应的处理结果将所述对比平台的代码迁移至所述测试平台,其中,若所述处理结果为调用成功,直接将所述对比平台的代码迁移至所述测试平台;若所述处理结果为调用失败,停止将所述对比平台的代码迁移至所述测试平台。
8.一种基于对比平台和测试平台的代码迁移装置,其特征在于,所述基于对比平台和测试平台的代码迁移装置包括:
参数传入模块,用于获取测试平台的第一前端传入的至少一项测试参数,并将所述至少一项测试参数封装成预设格式的字符串;
控制类生成模块,用于根据所述预设格式的字符串,自动生成与所述测试平台的第一后端对应的第一控制类;
融合模块,用于将所述测试平台的第一后端的接口与对比平台的第二后端的接口融合为统一的第三接口;
调用模块,用于通过所述统一的第三接口直接调用所述对比平台的第二后端对应的第二控制类;
代码迁移模块,用于基于所述第一控制类以及所述第二控制类将所述对比平台的代码迁移至所述测试平台。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于对比平台和测试平台的代码迁移方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的基于对比平台和测试平台的代码迁移方法。
CN202211374112.4A 2022-11-03 2022-11-03 基于对比平台和测试平台的代码迁移方法及其相关设备 Pending CN115629803A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211374112.4A CN115629803A (zh) 2022-11-03 2022-11-03 基于对比平台和测试平台的代码迁移方法及其相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211374112.4A CN115629803A (zh) 2022-11-03 2022-11-03 基于对比平台和测试平台的代码迁移方法及其相关设备

Publications (1)

Publication Number Publication Date
CN115629803A true CN115629803A (zh) 2023-01-20

Family

ID=84909021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211374112.4A Pending CN115629803A (zh) 2022-11-03 2022-11-03 基于对比平台和测试平台的代码迁移方法及其相关设备

Country Status (1)

Country Link
CN (1) CN115629803A (zh)

Similar Documents

Publication Publication Date Title
CN110688142B (zh) 应用程序编程接口的发布方法、设备及存储介质
CN112286779B (zh) 测试任务处理方法、装置、存储介质和计算机设备
WO2019029160A1 (zh) 应用程序构建方法、系统、计算机设备和存储介质
US10354031B2 (en) Information processing by interpenetrating signal transmission channel in design for testability of chip
CN109614325B (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN110865889A (zh) 组件间传递事件的方法和装置
CN110071822A (zh) 一种针对5g核心网基础设施的测试装置及测试方法
CN110532182A (zh) 一种虚拟化平台的自动化测试方法及装置
CN112988578A (zh) 一种自动化测试方法和装置
CN113836014A (zh) 一种接口测试方法、装置、电子设备和存储介质
CN111967137B (zh) 一种半导体设备建模方法及装置
CN117632710A (zh) 测试代码的生成方法、装置、设备及存储介质
CN112579569A (zh) 一种数据迁移方法和装置
CN112561690A (zh) 信用卡分期业务接口的测试方法、系统、设备及存储介质
CN111949543A (zh) 基于分布式平台的测试方法、装置、电子设备及存储介质
CN116719735A (zh) 一种测试用例生成方法及装置
US11182272B2 (en) Application state monitoring
CN115629803A (zh) 基于对比平台和测试平台的代码迁移方法及其相关设备
CN115248680A (zh) 软件构建方法、系统、设备、介质和程序产品
CN113360365B (zh) 一种流程测试方法和流程测试系统
CN114115982A (zh) 代码发布方法、装置、设备及存储介质
CN114579466A (zh) 构建测试用例和代码测试的方法、装置、设备及介质
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN113392002A (zh) 一种测试系统构建方法、装置、设备及存储介质
CN113392024A (zh) 存储过程的测试方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination