CN110046288A - 从消息体中提取数据的方法及装置 - Google Patents

从消息体中提取数据的方法及装置 Download PDF

Info

Publication number
CN110046288A
CN110046288A CN201910318736.6A CN201910318736A CN110046288A CN 110046288 A CN110046288 A CN 110046288A CN 201910318736 A CN201910318736 A CN 201910318736A CN 110046288 A CN110046288 A CN 110046288A
Authority
CN
China
Prior art keywords
community
index
string index
value
message body
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
CN201910318736.6A
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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies 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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201910318736.6A priority Critical patent/CN110046288A/zh
Publication of CN110046288A publication Critical patent/CN110046288A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明涉及数据处理技术领域,具体涉及从消息体中提取数据的方法及装置,其中方法包括:获取字符串索引序列,字符串索引序列包括至少一个字符串索引,字符串索引分别与消息体的索引层次相对应,每个字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引;依次根据各个字符串索引的取值方法标识,在消息体的基础上提取取值索引对应的数据。将字符串索引序列作为从消息体中提取数据的参数变量,该字符串索引序列与待提取数据一一对应,同时字符串索引序列中的各个字符串索引与消息体的索引层次相对应,当待提取数据或消息体发生变化时,只需要获取不同的字符串索引序列即可,大大提高了数据提取的效率。

Description

从消息体中提取数据的方法及装置
技术领域
本发明涉及数据处理技术领域,具体涉及从消息体中提取数据的方法及装置。
背景技术
在数据处理技术领域中,通常需要基于各个软件程序接口返回的消息体中的数据进行后续的处理。因此,就需要从各个接口返回的消息体中提取出相应的数据。但是,由于各个接口返回的消息体中的数据结构各不相同,对应返回消息体内的数据获取方式也各不相同,就需要程序编写人员针对各个接口编写特定的方法以提取结构体中的指定数据。
以自动化接口测试为例,在发送接口请求后,会对接口返回的状态码和返回的消息体进行检查,以判断接口服务是否正常工作。对于不同的接口,一般需要自动化脚本编写人员编写对应的数据提取方法,在方法中按层解析接口返回的消息体,每层需依次调用对应的解析方法并传入特定的参数值。例如:对于某接口A返回的数据结构体A,从中如果需要获取某个数据信息,则需要编写一个脚本方法FuncionA;而针对接口B返回的数据结构体B,因为数据结构体B与数据结构体A结构并不相同,所以FunctionA无法适用于数据结构体B的取值,所以需要重新编写FunctionB,对于其他接口依次编写脚本,即可完成各个接口的自动化取值操作。
然而,在庞大的***中,往往拥有海量的接口,对不同的接口编写对应的脚本这无疑会带来很大的工作量;而且当接口返回数据结构产生变化时,对自动化脚本的维护工作也带来较大的困扰,需要自动化编写人员,针对改变接口逐一修改数据提取方法,这必然会导致数据提取的效率较低。
发明内容
有鉴于此,本发明实施例提供了一种数据提取方法及装置,以解决数据的提取效率低的问题。
根据第一方面,本发明实施例提供了一种数据提取方法,所述消息体包括至少一个索引层次,包括:
获取字符串索引序列,所述字符串索引序列包括至少一个字符串索引,所述字符串索引分别与所述消息体的所述索引层次相对应,每个所述字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引;
依次根据各个所述字符串索引的取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据。
本发明实施例提供的从消息体中提取数据的方法,将字符串索引序列作为从消息体中提取数据的参数变量,该字符串索引序列与待提取数据一一对应,同时字符串索引序列中的各个字符串索引与消息体的索引层次相对应,就相当于利用字符串索引序列确定了待提取数据在消息体中的位置以及提取方法,利用相应的取值方法标识以及取值索引即可实现从待提取数据的提取。当待提取数据或消息体发生变化时,只需要获取不同的字符串索引序列即可重新正常的提取数据,而不需要对提取数据的脚本函数进行调整,大大提高了数据提取的效率。
结合第一方面,在第一方面第一实施方式中,所述字符串索引的取值方法标识以及所述取值索引通过第一分割符连接;其中,所述根据各个所述字符串索引的所述取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据,包括:
遍历所述字符串索引,以确定所述第一分割符的位置;
基于所述第一分割符的位置,对所述字符串索引进行分割,以提取出所述字符串索引中的所述取值方法标识以及取值索引;
调用与提取出的所述取值方法标识对应的取值方法,在所述消息体的基础上提取与所述取值索引对应的数据。
本发明实施例提供的从消息体中提取数据的方法,对于同一个字符串索引而言,第一分割符位于取值方法标识以及取值索引之间,通过第一分割符即可实现取值方法标识以及取值索引的提取,而避免了对取值方法标识以及取值索引的分别查询,即采用一次分割,即可实现取值方法标识预计取值索引的提取,提高了数据提取的效率。
结合第一方面第一实施方式,在第一方面第二实施方式中,所述基于所述第一分割符的位置,对所述字符串索引进行分割的步骤之前,还包括:
遍历所述字符串索引,判断所述字符串索引中是否存在预设字符;其中,所述预设字符的优先级高于所述第一分割符;
当所述字符串索引中存在所述预设字符时,基于所述预设字符对所述字符串索引进行分割,以得到所述取值索引。
本发明实施例提供的从消息体中提取数据的方法,在利用第一分割符对字符串索引进行分割之前,通过对字符串索引中是否存在预设字符的判断,防止仅利用第一分割符作为分割依据所导致的字符串索引分割的错误,提高了字符串索引分割的正确性。
结合第一方面,在第一方面第三实施方式中,所述字符串索引序列为与所述索引层次对应的字符串索引通过第二分割符依次连接得到的,所述依次根据各个所述字符串索引的取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据的步骤之前,还包括:
遍历所述字符串索引序列,以确定所述第二分割符的位置;
基于所述第二分割符的位置对所述字符串索引序列进行分割,以得到与所述索引层次对应的字符串索引。
本发明实施例提供的从消息体中提取数据的方法,通过第二分割符将字符串索引进行连接,使得对应于待处理数据的所有字符串索引作为一个整体存在,避免了字符串索引之间顺序的混乱,为数据提取效率的提高提供了条件。
结合第一方面,在第一方面第四实施方式中,所述依次根据各个所述字符串索引的取值方法标识以及取值索引,在所述消息体的基础上提取所述取值索引对应的数据的步骤之前,还包括:
对所述消息体进行格式处理的步骤,以得到预设格式的消息体;其中,所述预设格式与所述取值方法标识对应。
本发明实施例提供的从消息体中提取数据的方法,由于消息体的格式可能与处理从消息体中提取数据的脚本语言之间存在不兼容的问题,因此,在进行数据提取之前,对消息体进行格式处理,以得到脚本语言能够处理的预设格式,提高了数据提取的效率。
根据第二方面,本发明实施例还提供了一种从消息体中提取数据的装置,所述消息体至少一个索引层次,包括:
获取模块,用于获取字符串索引序列,所述字符串索引序列包括至少一个字符串索引,所述字符串索引分别与所述消息体的所述索引层次相对应,每个所述字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引;
取值模块,用于依次根据各个所述字符串索引的取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据。
本发明实施例提供的从消息体中提取数据的装置,将字符串索引序列作为从消息体中提取数据的参数变量,该字符串索引序列与待提取数据一一对应,同时字符串索引序列中的各个字符串索引与消息体的索引层次相对应,就相当于利用字符串索引序列确定了待提取数据在消息体中的位置以及提取方法,利用相应的取值方法标识以及取值索引即可实现从待提取数据的提取。当待提取数据或消息体发生变化时,只需要获取不同的字符串索引序列即可重新正常的提取数据,而不需要对提取数据的脚本函数进行调整,大大提高了数据提取的效率。
结合第二方面,在第二方面第一实施方式中,所述字符串索引的取值方法标识以及所述取值索引通过第一分割符连接;其中,所述取值模块包括:
遍历单元,用于遍历所述字符串索引,以确定所述第一分割符的位置;
第一分割单元,用于基于所述第一分割符的位置,对所述字符串索引进行分割,以提取出所述字符串索引中的所述取值方法标识以及取值索引;
调用单元,用于调用与提取出的所述取值方法标识对应的取值方法,在所述消息体的基础上提取与所述取值索引对应的数据。
结合第二方面第一实施方式,在第二方面第二实施方式中,所述取值模块还包括:
判断单元,用于遍历所述字符串索引,判断所述字符串索引中是否存在预设字符;其中,所述预设字符的优先级高于所述第一分割符;
第二分割单元,用于当所述字符串索引中存在所述预设字符时,基于所述预设字符对所述字符串索引进行分割,以得到所述取值索引。
结合第二方面,在第二方面第三实施方式中,所述字符串索引序列为与所述索引层次对应的字符串索引通过第二分割符依次连接得到的;其中,所述装置还包括:
遍历模块,用于遍历所述字符串索引序列,以确定所述第二分割符的位置;
分割模块,用于基于所述第二分割符的位置对所述字符串索引序列进行分割,以得到与所述索引层次对应的字符串索引。
结合第二方面,在第二方面第四实施方式中,所述装置还包括:
格式处理模块,用于对所述消息体进行格式处理的步骤,以得到预设格式的消息体;其中,所述预设格式与所述取值方法标识对应。
根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的从消息体中提取数据的方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的从消息体中提取数据的方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的从消息体中提取数据的方法的流程图;
图2是根据本发明实施例的某接口的返回消息体;
图3是根据本发明实施例的从消息体中提取数据的方法的流程图;
图4a-图4b是根据本发明实施例的所提取的数据结构体的示意图;
图5是根据本发明实施例的从消息体中提取数据的方法的流程图;
图6是根据本发明实施例的接口1的返回消息体A;
图7是根据本发明实施例的接口2的返回消息体B;
图8是根据本发明实施例的接口1的返回消息体A1;
图9是根据本发明实施例从消息体中提取数据的装置的结构示意图;
图10是根据本发明实施例取值模块的结构示意图;
图11是根据本发明实施例取值模块的结构示意图;
图12是根据本发明实施例的从消息体中提取数据的装置的结构示意图;
图13是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所提供的从消息体中提取数据的方法,可以利用任何需要从消息体中进行数据提取的应用场景中,在本发明中对其具体应用场景并不做任何限制。在下文中,以应用场景为自动化接口测试为例,对本发明实施例所提供的从消息体中提取数据的方法进行详细的描述。
进一步地,自动化接口测试所能够使用的语言有多种,例如JAVA,Python等等,在下文中Python为例。具体地,对下文会涉及到的技术术语解释如下:
(1)字符串索引序列:本发明实施例中所申明的特定格式的字符串索引序列,用于引导查询接口返回的消息结构体中的特定值。
(2)字典:字典(dictionary)是一些元素的结合,每个元素有一个称作key的域,不同元素的key各不相同。例如,请参见图6,在本发明的实施例中字典可以表示为“{}”。
(3)列表:列表(list)是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合。例如,请参见图6,在本发明的实施例中列表可以表示为“[]”。
根据本发明实施例,提供了一种从消息体中提取数据的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种从消息体中提取数据的方法,该消息体包括至少一个索引层次,可用于电子设备,如手机、平板电脑等,图1是根据本发明实施例的从消息体中提取数据的方法的流程图,如图1所示,该流程包括如下步骤:
S11,获取字符串索引序列。
其中,所述字符串索引序列与待提取数据一一对应;所述字符串索引序列包括至少一个字符串索引,字符串索引分别与消息体的索引层次相对应,每个字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引。
具体地,请参见图2,对于消息体而言,该消息体所包括的索引层次与具体数据在其中的嵌套深度有关,例如,对于变量“id”而言,其位于该消息体的第一个索引层次中;对于变量“ipAddress”而言,其位于该消息体的第二个索引层次中,对应的第一个索引层次为该消息体的字典项“monitorParam”,变量“ipAddress”嵌套在字典项“monitorParam”的字典项中;对于变量“name”而言,其位于该消息体的第三个索引层次中,对应的第一个索引层次为该消息体的字典项“customParams”,第二个索引层次为字典项“customParams”的列表项,第三个索引层第为列表项中的字典项。
对于字符串索引序列而言,其与待提取数据对应。例如,需要从消息体中提取出“ipAddress”的数据项,那么该字符串索引序列所包括的字符串索引为:
key monitorParam 与第一个索引层次对应;
key ipAddress 与第二个索引层次对应。
再例如,需要从消息体中提取出“name为param1”对应的“value”的数据项,那么该字符串索引序列所包括的字符串索引为:
key customParams 与第一个索引层次对应;
list 0 与第二个索引层次对应;
key value 与第三个索引层次对应。
各个字符串索引在形成字符串索引序列时,可以按照索引层次的顺序依次排列;也可以按照索引层次的顺序通过分割符进行连接等等,在此对字符串索引形成字符串索引序列的方式并不做任何限制。
对于字符串索引而言,每个字符串索引包括取值方法标识以及取值索引。例如,字符串索引“key monitorParam”,对应的取值方法标识“key”,取值索引“monitorParam”。取值方法标识“key”表示采用与关键词“key”对应的取值方法进行取值,取值索引“monitorParam”表示的是取值的数据是对应于哪个变量的。可选的,字符串索引中还可以包括其他字符,在此不做任何限制。
S12,依次根据各个字符串索引的取值方法标识,在消息体的基础上提取取值索引对应的数据。
电子设备在取值时是在消息体的基础上进行循环取值的,所述的循环取值就是按照索引层次进行数据的取值,即下一次数据取值是从上一次所提取出的数据中进行数据提取。
例如,需要从消息体中提取出“ipAddress”的数据项,那么在进行数据提取时,首先在消息体中提取出“key monitorParam”对应的数据A,然后在数据A提取出“keyipAddress”对应的数据。
具体在进行数据提取时,可以先对各个字符串索引进行分析,以提取出相应的取值方法标识以及取值索引,在依次进行数据的提取;也可以是按照索引层次,依次提取字符串索引中的取值方法标识以及取值索引,进行数据的提取,在当前字符串索引处理完成之后,在进行下一个字符串索引的处理;也可以采用其他方式。
本实施例提供的从消息体中提取数据的方法,将字符串索引序列作为从消息体中提取数据的参数变量,该字符串索引序列与待提取数据一一对应,同时字符串索引序列中的各个字符串索引与消息体的索引层次相对应,就相当于利用字符串索引序列确定了待提取数据在消息体中的位置以及提取方法,利用相应的取值方法标识以及取值索引即可实现从待提取数据的提取。当待提取数据或消息体发生变化时,只需要获取不同的字符串索引序列即可重新正常的提取数据,而不需要对提取数据的脚本函数进行调整,大大提高了数据提取的效率。
在本实施例中还提供了一种从消息体中提取数据的方法,该消息体包括至少一个索引层次,可用于电子设备,如手机、平板电脑等,图3是根据本发明实施例的从消息体中提取数据的方法的流程图,如图3所示,该流程包括如下步骤:
S21,获取字符串索引序列。
其中,所述字符串索引序列与待提取数据一一对应;所述字符串索引序列包括至少一个字符串索引,字符串索引分别与消息体的索引层次相对应,每个字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引。
进一步地,在字符串索引中,字符串索引的取值方法标识以及取值索引通过第一分割符连接。例如:“key monitorParam”可以表示为“key:monitorParam”,“keyipAddress”可以表示为“key:ipAddress”。需要说明的是,所述的第一分割符并不限于上述的“:”,也可以为其他字符,例如“/”,或“*”等等。
其余详细请参见图1所示实施例的S11,在此不再赘述。
S22,依次根据各个字符串索引的取值方法标识,在消息体的基础上提取取值索引对应的数据。
电子设备在消息体的基础上进行循环取值时,按照索引层次依次处理字符串索引,只有在当前字符串索引处理完成之后,才进下一个字符串索引的处理。具体地,该步骤S22包括:步骤S221和步骤S222。
S221,在当前处理的索引层次中,利用字符串索引中的取值方法标识,在消息体的基础上提取字符串索引的取值索引对应的数据。
由于在处理时是以字符串索引为处理单元,那么就需要对字符串索引进行分割,以分割出取值方法标识以及取值索引。
具体地,该S221步骤包括:
S1.1,遍历字符串索引,以确定第一分割符的位置。
电子设备对字符串索引进行遍历,依次将字符串索引中的字符与第一分割符进行比较,以确定第一分割符在字符串索引中的位置。
S1.2,基于第一分割符的位置,对字符串索引进行分割,以提取出字符串索引中的取值方法标识以及取值索引。
电子设备在进行分割时,可以从字符串索引的第一个字符开始,依次提取出字符直至字符为第一分割符为止,即可得到对应于“key:monitorParam”中的取值方法标识“key”;再从第一分割符开始,依次提取后续的字符直至字符串索引结束为止,即可得到对应于“key:monitorParam”中的取值索引“monitorParam”。
S1.3,调用与提取出的取值方法标识对应的取值方法,在消息体的基础上提取与取值索引对应的数据。
由于取值方法标识是用于确定数据提取的方法,那么电子设备利用该取值方法标识调用对应的取值方法,即可提取出与取值索引对应的数据。
例如,“key”表示字典的取值方法,电子设备就需要调用字典取值方法进行取值,如python方法:dict.get(key,defult=None),或,dict[key]。
作为本实施例的一种可选实施方式,上述S221还可以采用如下步骤实现:
S2.1,遍历字符串索引,判断字符串索引中是否存在预设字符。
其中,所述预设字符的优先级高于第一分割符。
电子设备依次将字符串索引中的字符与预设字符进行比较,以判断字符串索引中是否存在预设字符。预设字符是根根据实际进行设置的,目的在于将多个字符组成取值索引。例如,list:[key:name:param2],所述的预设字符为“[]”,[key:name:param2]内的所有字符为该字符索引的取值索引,即“key:name:param2”。
当字符串索引中存在预设字符时,执行S2.2;否则,执行S2.3。
S2.2,基于预设字符对字符串索引进行分割,以得到取值索引。
在利用第一分割符进行分割之前时,就需要先利用预设字符对字符索引进行分割,以得到取值索引。
对应于字符串索引“list:[key:name:param2]”,若仅利用第一分割符“:”对字符串索引进行划分,则会导致取值索引被分割,从而导致取值索引的错误。因此,需要先利用“[]”对字符串索引进行分割,以得到取值索引;再利用第一分割符进行取值方法标识的提取。
在利用第一分割符对字符串索引进行分割之前,通过对字符串索引中是否存在预设字符的判断,防止仅利用第一分割符作为分割依据所导致的字符串索引分割的错误,提高了字符串索引分割的正确性。
S2.3,遍历字符串索引,以确定出第一分割符的位置。
详细请参见S1.1,在此不再赘述。
S2.4,基于第一分割符的位置,对字符串索引进行分割,以提取出字符串索引中的取值方法标识以及取值索引。
详细请参见S1.2,在此不再赘述。
S2.5,调用与提取出的取值方法标识对应的取值方法,在消息体的基础上提取与取值索引对应的数据。
详细请参见S1.3,在此不再赘述。
S222,判断当前已处理的字符串索引的数量是否小于字符串索引的总数。
当当前已处理的所述字符串索引的数量小于所述字符串索引的总数时,返回S221;否则,结束从消息体中提取数据。
作为本实施例的一个具体应用实例,以图2所示的消息体为例,电子设备所获取到的字符串索引序列为“key:customParams list:[key:name:param2]key:value”。
上述字符串索引序列中的第一分割符为空格(),根据该空格的位置,对字符串进行分割后,所得到的字符串索引为:
key:customParams;
list:[key:name:param2];
key:value;
按取值步骤进行循环取值,在各次循环中对字符串索引序列进行二次分割并对返回消息体进行递归取值。
以上述为例,首次循环中对key:customParams中以“:”分割,提取首位key(标志位),表明所需要调用的取值方法:调用传统字典取值方法(如python方法:dict.get(key,default=None)或dict[key]等)从字典中获取key为customParams的数据结构体,首次循环所获取到的数据结构体如图4a所示。
第二次循环针对第一次循环所获取的数据结构体进行解析,同理先按“:”分割字符串索引序列list:[key:name:param2](分割方法中采用先按[]分割,再针对分割后的字符串索引序列进行分别分割的方法,使[]内部结构不会被分割),提取首位list(标志位),表明所需要调用的取值方法:调用传统的列表取值方法(如:python中list[0]的形式)从列表中获取(如list:0,list:1则表明获取列表第1项,第2项,对应传统python取值方法list[0],list[1])。
而此处[key:name:param2]表明获取列表中字典里key键name的值为param2的列表项,对[]内部的结构则为对此方法的一个递归调用,对[]中的处理逻辑同此通用方法,综上list:[key:name:param2]即完成从图4a所示的数据结构体中所提取出的数据结构体如图4b所示。
第三次循环针对第二次循环所获取的数据结构体(如图4b所示)进行解析,同理先按“:”分割字符串索引序列key:value,提取首位key(标志位),表明所需要调用的取值方法:调用传统方法从字典中获取key键value的值,最终所获取的值为1。
本实施例提供的从消息体中提取数据的方法,对于同一个字符串索引而言,第一分割符位于取值方法标识以及取值索引之间,通过第一分割符即可实现取值方法标识以及取值索引的提取,而避免了对取值方法标识以及取值索引的分别查询,即采用一次分割,即可实现取值方法标识预计取值索引的提取,提高了数据提取的效率。
在本实施例中提供了一种从消息体中提取数据的方法,该消息体包括至少一个索引层次,可用于电子设备,如手机、平板电脑等,图5是根据本发明实施例的从消息体中提取数据的方法的流程图,如图5所示,该流程包括如下步骤:
S31,获取字符串索引序列。
其中,所述字符串索引序列与待提取数据一一对应;所述字符串索引序列包括至少一个字符串索引,字符串索引分别与消息体的索引层次相对应,每个字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引。
具体地,所述字符串索引序列为与索引层次对应的字符串索引通过第二分割符依次连接得到的。可以采用“-”作为第二分割符,也可以采用其他字符作为第二分割符等等,只需保证第二分割符与第一分割符不同即可。
例如,与索引层次对应的字符串索引依次为:
key:customParams;
list:[key:name:param2];
key:value;
所对应的字符串索引序列为:key:customParams-list:[key:name:param2]-key:value。
其余详细请参见图3所示实施例的S21,在此不再赘述。
S32,遍历字符串索引序列,以确定第二分割符的位置。
电子设备对字符串索引序列进行遍历,依次将字符串索引序列中的字符与第二分割符进行比较,以确定第二分割符在字符串索引序列中的位置。
S33,基于第二分割符的位置对字符串索引序列进行分割,以得到与索引层次对应的字符串索引。
电子设备在进行分割时,可以从字符串索引序列的第一个字符开始,依次提取出字符直至字符为第二分割符为止,即可与第一个索引层次对应的字符串索引“key:customParams”;再从第二分割符开始,依次提取后续的字符直至字符为第二分割符,即可得到第二个索引层次对应的字符串索引“list:[key:name:param2]”;依次类推,直至将字符串索引序列分割结束为止。
通过第二分割符将字符串索引进行连接,使得对应于待处理数据的所有字符串索引作为一个整体存在,避免了字符串索引之间顺序的混乱,为数据提取效率的提高提供了条件。
S34,对消息体进行格式处理的步骤,以得到预设格式的消息体。
其中,所述预设格式与取值方法标识对应。其中,对于步骤S34的执行顺序本实施例并不加以限定,例如步骤S34也可以在步骤S31之前执行。
所谓的去格式:将消息体处理成脚本语言能够处理的格式,(接口输出的为json,或xml;而自动化接口测试,用的是python)。
例如,如图2所示,消息体${Response_Body}进行去格式(将json或xml格式转换为脚本语言所能处理的格式,以python为例则转换为字典与列表的组合格式)。
具体的格式转换处理可以采用现有技术进行处理,例如,python框架中可以引入一些开源库(json,xml2json,xmltodic等),使用其中的loads,parse,dumps等方法即可完成对格式的转,又或Robot Framework框架中,使用RequestsLibrary库中To Json方法Xml与部分自定义方法相结合即可均可完成格式转换。
S35,依次根据各个字符串索引的取值方法标识,在消息体的基础上提取取值索引对应的数据。
详细请参见图3所示实施例的S22,在此不再赘述。
与图2所示实施例相比,本实施例提供的从消息体中提取数据的方法,由于消息体的格式可能与处理从消息体中提取数据的脚本语言之间存在不兼容的问题,因此,在进行数据提取之前,对消息体进行格式处理,以得到脚本语言能够处理的预设格式,提高了数据提取的效率。
为进一步陈述本发明实施例所提供的从消息体中提取数据的方法的有益效果,在下文中以图6以及图7所示的接口1返回消息体A、接口2返回消息体B为例,将传统的取值方法与本发明实施例中所提出的取值方法进行比较。
传统自动化接口测试的工程框架中,需要自动化开发人员针对不同的结构体做单独的处理。一般需要对接口A的结构体编写一个FunctionA,接口B的结构体编写一个FunctionB。在FunctionA和FunctionB中包含了结构体的结构信息(如最外层是一个字典,然后字典内嵌套列表或字典内嵌套字典等),在FunctionA或B中需要针对该结构使用现有技术进行取值:
例如,对于结构体A,使用Robot Framework自动化框架中的方法获取ipAddress信息时需要进行下面2个步骤:(其中${BodyA}对应结构体A)
${monitorParam}Get From Dictionary${BodyA}monitorParam
${ipAddress}Get From Dictionary${monitorParam}ipAddress
对于结构体B获取taskName的步骤如下:(其中${BodyB}对应结构体B)
${result}Get From Dictionary${BodyB}result
${data}Get From Dictionary${result}ipAddress
${taskName}Get From Dictionary${data[0]}taskName
如果结构体A因为开发需求或者其他原因产生了变化,变成了如图8所示的A1结构,此时再使用FunctionA获取ipAddress就会报错,需修改获取方法修改:
${Param}Get From Dictionary${Body}Param
${monitorParam}Get From Dictionary${Param[0]}monitorParam
${ipAddress}Get From Dictionary${monitorParam}ipAddress
因为结构体A中是2个字典结构嵌套,所以在传统方法中可以直接使用连续2次字典取值操作进而获得ipAddress的信息。
对本发明实施例中所提出的从消息体中提取数据的方法,此处将该方法采用函数“Function(${String},${body}”表示,在该函数中不包含任何结构体的结构信息,仅包括两个入参(即,字符串索引序列,以及消息体)。使用入参字符串索引来传递结构信息,引导Function函数进行取值操作,再使用循环、递归和判断等操作,对结构体中指定信息进行获取。
如图6以及7所示,使用如下:
从结构体A中获取id信息:
Function(”key:id”,${bodyA})=337
从结构体A中获取ipAddress信息:
Function(“key:monitorParam-key:ipAddress”,${bodyA})=172.50.2.34
从结构体B中获取code信息:
Function(“key:code”,${bodyB})=200
从结构体B中获取taskName信息:
Function(“key:result-key:data-list:0-key:taskName”,${bodyB})=AUTO_TEST
如果结构体A因为开发需求或者其他原因产生了变化,变成了如图8所示的A1结构。如果同样需要获取ipAddress,则只需修改输入参数,无需进行方法内部脚本修改:
Function(“key:Param-list:0-key:monitorParam-key:ipAddress”,A)=172.50.2.34
通过传统的取值方法相比可以看出,传统的取值方法由于针对不同接口需逐个开发各自结构体的取值脚本,接口返回数据结构体发生变化时,需要修改对应的取值脚本。
而本发明实施例中所提供的方法,不用针对各个接口编写取值脚本,并以“字符串索引序列”作为输入参数,因此可以大大减少自动化脚本编写的代码量,在接口返回数据结构体发生变化时可以通过调整“字符串索引序列”,无需进行脚本修改即可重新完成取值操作,由此可以节约接口自动化脚本开发和维护成本,提高自动化接口测试效率。
在本实施例中还提供了一种从消息体中提取数据的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种从消息体中提取数据的装置,如图9所示,包括:
获取模块41,用于获取字符串索引序列;其中,所述字符串索引序列与待提取数据一一对应;所述字符串索引序列包括至少一个字符串索引,所述字符串索引分别与所述消息体的所述索引层次相对应,每个所述字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引。
取值模块42,用于依次根据各个所述字符串索引的取值方法标识以及取值索引,在所述消息体的基础上进行循环取值。
本实施例提供的从消息体中提取数据的装置,将字符串索引序列作为从消息体中提取数据的参数变量,该字符串索引序列与待提取数据一一对应,同时字符串索引序列中的各个字符串索引与消息体的索引层次相对应,就相当于利用字符串索引序列确定了待提取数据在消息体中的位置以及提取方法,利用相应的取值方法标识以及取值索引即可实现从待提取数据的提取。当待提取数据或消息体发生变化时,只需要获取不同的字符串索引序列即可重新正常的提取数据,而不需要对提取数据的脚本函数进行调整,大大提高了数据提取的效率。
在本实施例的一些可选实施方式,如图10所示,上述的取值模块42包括:
遍历单元421,用于遍历所述字符串索引,以确定所述第一分割符的位置。
第一分割单元422,用于基于所述第一分割符的位置,对所述字符串索引进行分割,以提取出所述字符串索引中的所述取值方法标识以及取值索引。
调用单元423,用于调用与提取出的所述取值方法标识对应的取值方法,在所述消息体的基础上提取与所述取值索引对应的数据。
在本实施例的另一些可选实施方式,如图11所示,上述的取值模块42还可以包括:
判断单元424,用于遍历所述字符串索引,判断所述字符串索引中是否存在预设字符;其中,所述预设字符的优先级高于所述第一分割符。
第二分割单元425,用于当所述字符串索引中存在所述预设字符时,基于所述预设字符对所述字符串索引进行分割,以得到所述取值索引。
作为本实施例的一种可选实施方式,所述字符串索引序列为与所述索引层次对应的字符串索引通过第二分割符依次连接得到的。如图12所示,所述的从消息体中提取数据的装置还包括:
遍历模块43,用于遍历所述字符串索引序列,以确定所述第二分割符的位置;
分割模块44,用于基于所述第二分割符的位置对所述字符串索引序列进行分割,以得到与所述索引层次对应的字符串索引。
进一步可选地,请再次结合图12,所述的从消息体中提取数据的装置还包括:
格式处理模块45,用于对所述消息体进行格式处理的步骤,以得到预设格式的消息体;其中,所述预设格式与所述取值方法标识对应。
本实施例中的从消息体中提取数据的装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,具有上述图9所示的从消息体中提取数据的装置。
请参阅图13,图13是本发明可选实施例提供的一种电子设备的结构示意图,如图13所示,该电子设备可以包括:至少一个处理器51,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口53,存储器54,至少一个通信总线52。其中,通信总线52用于实现这些组件之间的连接通信。其中,通信接口53可以包括显示屏(Display)、键盘(Keyboard),可选通信接口53还可以包括标准的有线接口、无线接口。存储器54可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器54可选的还可以是至少一个位于远离前述处理器51的存储装置。其中处理器51可以结合图9所描述的装置,存储器54中存储应用程序,且处理器51调用存储器54中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线52可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线52可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器54可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器54还可以包括上述种类的存储器的组合。
其中,处理器51可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器51还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器54还用于存储程序指令。处理器51可以调用程序指令,实现如本申请图1、3以及5实施例中所示的从消息体中提取数据的方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的从消息体中提取数据的方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (12)

1.一种从消息体中提取数据的方法,所述消息体包括至少一个索引层次,其特征在于,包括:
获取字符串索引序列;其中,所述字符串索引序列与待提取数据一一对应;所述字符串索引序列包括至少一个字符串索引,所述字符串索引分别与所述消息体的所述索引层次相对应,每个所述字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引;
依次根据各个所述字符串索引的取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述字符串索引的取值方法标识以及所述取值索引通过第一分割符连接;其中,所述根据各个所述字符串索引的取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据,包括:
遍历所述字符串索引,以确定所述第一分割符的位置;
基于所述第一分割符的位置,对所述字符串索引进行分割,以提取出所述字符串索引中的所述取值方法标识以及取值索引;
调用与提取出的所述取值方法标识对应的取值方法,在所述消息体的基础上提取与所述取值索引对应的数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一分割符的位置,对所述字符串索引进行分割的步骤之前,还包括:
遍历所述字符串索引,判断所述字符串索引中是否存在预设字符;其中,所述预设字符的优先级高于所述第一分割符;
当所述字符串索引中存在所述预设字符时,基于所述预设字符对所述字符串索引进行分割,以得到所述取值索引。
4.根据权利要求1所述的方法,其特征在于,所述字符串索引序列为与所述索引层次对应的字符串索引通过第二分割符依次连接得到的,所述依次根据各个所述字符串索引的取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据的步骤之前,还包括:
遍历所述字符串索引序列,以确定所述第二分割符的位置;
基于所述第二分割符的位置对所述字符串索引序列进行分割,以得到与所述索引层次对应的字符串索引。
5.根据权利要求1所述的方法,其特征在于,所述依次根据各个所述字符串索引的取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据的步骤之前,还包括:
对所述消息体进行格式处理的步骤,以得到预设格式的消息体;其中,所述预设格式与所述取值方法标识对应。
6.一种从消息体中提取数据的装置,所述消息体至少一个索引层次,其特征在于,包括:
获取模块,用于获取字符串索引序列;其中,所述字符串索引序列与待提取数据一一对应;所述字符串索引序列包括至少一个字符串索引,所述字符串索引分别与所述消息体的所述索引层次相对应,每个所述字符串索引分别包括用于确定数据提取方法的取值方法标识和用于确定提取数据的取值索引;
取值模块,用于依次根据各个所述字符串索引的取值方法标识,在所述消息体的基础上提取所述取值索引对应的数据。
7.根据权利要求6所述的装置,其特征在于,所述字符串索引的取值方法标识以及所述取值索引通过第一分割符连接;其中,所述取值模块包括:
遍历单元,用于遍历所述字符串索引,以确定所述第一分割符的位置;
第一分割单元,用于基于所述第一分割符的位置,对所述字符串索引进行分割,以提取出所述字符串索引中的所述取值方法标识以及取值索引;
调用单元,用于调用与提取出的所述取值方法标识对应的取值方法,在所述消息体的基础上提取与所述取值索引对应的数据。
8.根据权利要求7所述的装置,其特征在于,所述取值模块还包括:
判断单元,用于遍历所述字符串索引,判断所述字符串索引中是否存在预设字符;其中,所述预设字符的优先级高于所述第一分割符;
第二分割单元,用于当所述字符串索引中存在所述预设字符时,基于所述预设字符对所述字符串索引进行分割,以得到所述取值索引。
9.根据权利要求6所述的装置,其特征在于,所述字符串索引序列为与所述索引层次对应的字符串索引通过第二分割符依次连接得到的;其中,所述装置还包括:
遍历模块,用于遍历所述字符串索引序列,以确定所述第二分割符的位置;
分割模块,用于基于所述第二分割符的位置对所述字符串索引序列进行分割,以得到与所述索引层次对应的字符串索引。
10.根据权利要求6所述的装置,其特征在于,还包括:
格式处理模块,用于对所述消息体进行格式处理的步骤,以得到预设格式的消息体;其中,所述预设格式与所述取值方法标识对应。
11.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-5中任一项所述的从消息体中提取数据的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的从消息体中提取数据的方法。
CN201910318736.6A 2019-04-19 2019-04-19 从消息体中提取数据的方法及装置 Pending CN110046288A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910318736.6A CN110046288A (zh) 2019-04-19 2019-04-19 从消息体中提取数据的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910318736.6A CN110046288A (zh) 2019-04-19 2019-04-19 从消息体中提取数据的方法及装置

Publications (1)

Publication Number Publication Date
CN110046288A true CN110046288A (zh) 2019-07-23

Family

ID=67278054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910318736.6A Pending CN110046288A (zh) 2019-04-19 2019-04-19 从消息体中提取数据的方法及装置

Country Status (1)

Country Link
CN (1) CN110046288A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328231A (zh) * 2020-10-14 2021-02-05 远江盛邦(北京)网络安全科技股份有限公司 python字典和结构体间的快速转换方法
CN112416356A (zh) * 2020-11-12 2021-02-26 北京三快在线科技有限公司 Json字符串的处理方法、装置、设备及存储介质
CN113448923A (zh) * 2020-04-17 2021-09-28 北京新氧科技有限公司 文件生成方法、装置及终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557794A (en) * 1991-09-02 1996-09-17 Fuji Xerox Co., Ltd. Data management system for a personal data base
CN105849726A (zh) * 2013-11-08 2016-08-10 甲骨文国际公司 用于高效地支持通过分层标记数据的即席查询的通用索引
CN107092535A (zh) * 2017-04-18 2017-08-25 上海雷腾软件股份有限公司 用于测试接口的数据存储的方法及设备
CN108073391A (zh) * 2016-11-11 2018-05-25 阿里巴巴集团控股有限公司 一种json字符串传输、处理的方法及设备
CN108334609A (zh) * 2018-02-02 2018-07-27 广东蜂助手网络技术股份有限公司 Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557794A (en) * 1991-09-02 1996-09-17 Fuji Xerox Co., Ltd. Data management system for a personal data base
CN105849726A (zh) * 2013-11-08 2016-08-10 甲骨文国际公司 用于高效地支持通过分层标记数据的即席查询的通用索引
CN108073391A (zh) * 2016-11-11 2018-05-25 阿里巴巴集团控股有限公司 一种json字符串传输、处理的方法及设备
CN107092535A (zh) * 2017-04-18 2017-08-25 上海雷腾软件股份有限公司 用于测试接口的数据存储的方法及设备
CN108334609A (zh) * 2018-02-02 2018-07-27 广东蜂助手网络技术股份有限公司 Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沈建华: "《CC3200Wi-Fi微控制器原理与实践 基于MiCO物联网操作***》", 30 November 2018 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448923A (zh) * 2020-04-17 2021-09-28 北京新氧科技有限公司 文件生成方法、装置及终端
CN113448923B (zh) * 2020-04-17 2023-09-12 北京新氧科技有限公司 文件生成方法、装置及终端
CN112328231A (zh) * 2020-10-14 2021-02-05 远江盛邦(北京)网络安全科技股份有限公司 python字典和结构体间的快速转换方法
CN112328231B (zh) * 2020-10-14 2024-02-23 远江盛邦(北京)网络安全科技股份有限公司 python字典和结构体间的快速转换方法
CN112416356A (zh) * 2020-11-12 2021-02-26 北京三快在线科技有限公司 Json字符串的处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US10176239B2 (en) Automation-assisted curation of technical support information
CN110046288A (zh) 从消息体中提取数据的方法及装置
CN107203473A (zh) 自动扩展接口测试用例的自动化测试***与方法
CN107526676B (zh) 一种跨***测试方法及装置
CN109558128A (zh) json数据解析方法、装置及计算机可读存储介质
US20150089415A1 (en) Method of processing big data, apparatus performing the same and storage media storing the same
US11176169B2 (en) Recommending visual and execution templates to enable automation of control and data exploration across systems
US10387124B2 (en) System and method for creating domain specific language
CN112527676A (zh) 模型自动化测试方法、装置及存储介质
CN110414450A (zh) 关键词检测方法、装置、存储介质及电子设备
CN112818937A (zh) Excel文件的识别方法、装置、电子设备及可读存储介质
CN111061466A (zh) 行为控制脚本语言的自动化转化方法、***、终端及介质
CN106034119A (zh) 应用安装包的加密混淆方法及装置
CN109634660A (zh) 程序结构可视化方法、设备、存储介质及装置
CN114416533A (zh) 基于人工智能的车载电子产品的用例生成方法和***
WO2021121130A1 (zh) 信息采集方法、装置、计算机设备及存储介质
CN109683994B (zh) 确定视图构建时间的方法、装置、存储介质及电子设备
KR102262279B1 (ko) 이상치 탐지를 위한 데이터 처리 방법 및 장치
CN113672509A (zh) 自动化测试方法、装置、测试平台及存储介质
CN110781092A (zh) 一种脚本测试方法、装置、终端及存储介质
CN110879699A (zh) 领域专用语言dsl的图形化处理方法和设备
CN117573561B (zh) 一种自动化测试***、方法、电子设备和存储介质
KR102615660B1 (ko) 그래프 데이터베이스에 기반한 데이터 관계 추적 방법및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
CN108958654B (zh) 一种存储***的管理方法及相关装置
CN110990050B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190723