一种界面中控件测试的方法和装置与流程

文档序号:15229749发布日期:2018-08-21 19:15阅读:111来源:国知局
本发明涉及软件测试
技术领域
:,尤其涉及一种界面中控件测试的方法和装置。
背景技术
::软件测试是一项旨在帮助软件项目从业者评估被测软件的质量状况的探究性活动。软件项目从业者通过软件测试活动对项目所开发的软件质量与可用性进行评估,从而获得有借鉴意义的评估结果。软件自动化测试中最为重要的就是测试脚本的构建,也是决定测试自动化实现成本的最重要的方面之一。目前,待测试软件的测试脚本的创建,针对控件的测试,一个关键字只能定位一个控件,针对不同的控件需要分别创建关键字,测试脚本的构建效率低。技术实现要素:本发明实施例提供一种界面中控件测试的方法、装置、终端及计算机可读存储介质,可以提高测试脚本的构建效率。第一方面,本发明实施例提供了一种界面中控件测试的方法,该方法包括:确定待测试软件的界面中控件的种类;根据所述控件的种类确定所述控件的定位变量;将与所述控件对应的参数赋值给所述定位变量;驱动调用所述定位变量的关键字来控制所述控件执行测试动作。第二方面,本发明实施例提供了一种界面中控件测试的装置,该装置包括:第一确定单元,用于确定待测试软件的界面中控件的种类;第二确定单元,用于根据所述控件的种类确定所述控件的定位变量;赋值单元,用于将与所述控件对应的参数赋值给所述定位变量;驱动单元,用于驱动调用所述定位变量的关键字来控制所述控件执行测试动作。第三方面,本发明实施例提供了一种终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。本发明实施例通过确定人机交互界面中控件的操作类型;将具有相同种类的控件设置成对应同一个定位变量,使得调用该定位变量的关键字能够同时定位多个控件,从而实现一个关键字定位多个控件,减少了关键字的创建过程,提高了测试脚本的构建效率。附图说明为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种界面中控件测试的方法的示意流程图;图2是本发明实施例提供的另一种界面中控件测试的方法的示意流程图;图3是本发明实施例提供的一种界面中控件测试的装置的示意性框图;图4是本发明实施例提供的另一种界面中控件测试的装置的示意性框图;图5是本发明实施例提供的一种终端示意性框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。如在本说明书和所附权利要求书中所使用的那样,术语“若”可以依据上下文被解释为“如果”或“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“若确定”或“若检测到[所描述条件或事件]”可以依据上下文被解释为意指“如果确定”或“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。参见图1,是本发明实施例提供一种界面中控件测试的方法的示意流程图,适用于测试界面中控件的情形,该方法由界面中控件测试的装置执行,该装置通常配置于终端,可由软件和/或硬件实现。如图1所示的方法可包括步骤:s101至s104。s101,确定待测试软件的界面中控件的种类。其中,界面为打开待测试软件后显示的主界面、或二级界面、或更低级别的界面。每个界面都包含有控件,触发所述控件对所述界面执行相应操作。触发不同的控件,对所述界面执行不同的操作。所述控件的种类包括输入框、点击按钮、和下拉框等。其中,输入框包括文本和/或数字输入框。例如,文本和数字输入框可对应“账号名称”、“账号密码”、“合同编号”、“客户编号”、“客户姓名”、和“身份证号”等参数,相应地,可在输入框中输入具体的账号名称、账号密码、合同编号、客户编号、客户姓名、或身份证号等测试数据。如,参数为“合同编号”的输入框,可在该输入框中输入“36524585620”的测试数据。界面中文本和数字输入框控件旁边,一般会显示所述文本和数字输入框控件的参数,用于提示用户该文本和数字输入框控件的参数。点击按钮可对应“查询”、“确定”、“关闭”、和“提交”等参数。点击按钮控件上一般显示有参数,用于提示用户该控件的参数。相应地,通过点击按钮控件,可执行查询、确定、关闭或提交等操作。下拉框可对应“性别”、“月份”、“省份”和“城市”等参数。界面中下拉选择框控件旁边一般显示有参数,用于提示用户该控件的参数。相应地,通过下拉框控件,可在多个选项中执行选中某一性别、某一月份、某一省份或某一城市等参数的操作。本领域技术人员知晓,此处仅为示例性描述,不能解释为对发明的具体限制。在本发明一种实施方式中,步骤s101具体包括:确定待测试软件的界面中控件的元素属性,所述元素属性对应所述控件的种类。其中,对象库中存储有每个控件所在的对象树,对象树为基于可扩展标记语言(extensiblemarkuplanguage,xml)文档格式的树状结构。所述元素为在对象树中所述控件对应的元素,所述元素属性对应所述控件的种类。所述元素属性,也可称为元素属性名。例如:id、button和input。这些元素属性可设置成分别对应控件种类如下拉框、点击按钮和输入框。因此,若确定待测试软件的界面中控件的元素属性为input,则所述元素属性对应所述控件的种类为输入框。本领域技术人员知晓,这种设置仅为示例性描述,不能解释为对发明的具体限制。在本发明另一种实施方式中,步骤s101具体包括:确定待测试软件的界面中控件的测试动作,根据所述测试动作确定所述控件的种类。本发明实施例基于robotframework的测试框架,robotframework是一种基于python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发。这里所说的关键字,是一种函数,可以执行预设动作。测试用例可以使用超级文本标记语言(hypertextmarkuplanguage,html)或者制表符分隔值(tabseparatedvalues,tsv)文件来编制,通过调用关键字来实现测试。每个控件在测试之前,软件工程师都会设计包括该控件的应用场景,一个应用场景中通常包括一个或多个测试动作,一个或多个测试动作组合成完整的测试用例。例如,包括参数为“合同编号”的输入框控件编写的测试用例,如,tc152模糊的“合同编号”查询失败:输入合同编号:为35393195点击查询按钮35393195校验成功!-失败用例上述测试用例包括多个测试动作。对于“输入合同编号:为35393195”的测试动作,确定该测试动作为“输入……为……”这种结构,进而确定该控件的种类为输入框。在本发明其他实施方式中,步骤s101具体包括:通过获取用户输入的种类信息来确定待测试软件的界面中控件的种类。其中,用户通常指的是进行软件测试的软件工程师。例如,用户事先知晓参数为“合同编号”的控件执行输入某一合同编号的操作,基于此,用户确定该控件的种类为输入框,从而将种类信息输入终端。终端通过获取种类信息,从而确定待测试软件的界面中控件的种类。可选地,如图2所示,在步骤s101之前,该方法还包括步骤s100。s100,创建关键字,并根据待测试软件的界面中控件的测试动作,按照自然语言的结构命名所述关键字。如前所述,关键字为一种事先编制的、可以执行预设动作的函数,其可以在测试库中进行创建。测试库包括:标准库、扩展库和用户自定义的库文件。例如:标准库如builtin、operatingsystem、telnet、collections、string、dialogs、screenshot和remote,标准库的函数可以直接导入使用。扩展库如selenium2library:web方面测试的扩展库,需要下载安装后才能使用。用户自定义的库文件如testlibrary,自定义的库文件是将待测软件包括的所有接口函数提出来,使用python语言写的一个library文件。通过根据待测试软件的界面中控件的测试动作,按照自然语言的结构命名所述关键字。关键字中会使用变量。例如,包括界面中输入框控件的测试用例中的某个测试动作:在参数为“合同编号”的输入框中输入35393195。其对应的采用自然语言的结构命名的关键字为“输入${name}:为${value}”,其中,${name}和${value}为该关键字使用的两个变量。此外,针对该测试动作,考虑可以使用的其他词语,关键字还可以有其他命名方式,如“键入${name}:为${value}”或“插入${name}:为${value}”等。只要关键字的名称能表达该测试动作即可。可以理解的是,根据需要,一个关键字可以对应2个或等多数量的名称。由于关键字采用自然语言的结构命名,关键字的名称结构就与测试动作的词语结构相对应。所述确定待测试软件的界面中控件的种类的,可以通过根据待测试软件的界面中控件的测试动作匹配对应的关键字,根据所述关键字确定所述控件的种类。也就是,根据测试动作中的词语结构,即可匹配到对应结构命名的关键字,进而确定测试动作对应的控件所属种类。例如:测试动作“输入合同编号:为35393195”,其词语结构为“输入...为...”,即可匹配对对应名称结构的关键字“输入${name}:为${value}”,则可确定所述控件的种类为输入框控件。当测试动作匹配到与之对应的关键字时,则确定出驱动该关键字能执行该测试动作。因而,通过按照自然语言的结构命名所述关键字的方式,使得即使不是软件工程师,也能很好理解关键字所对应的测试动作的含义,降低了编写测试用例的难度。可以理解的,当一个关键字可以对应2个或等多数量的名称时,该关键字就可以匹配更多词语构建的测试动作,有效降低了测试动作或者测试用例的编写难度。s102,根据所述控件的种类确定所述控件的定位变量。其中,确定了界面中控件的种类之后,根据所述控件的种类确定所述控件的定位变量。对于不同种类的控件,其定位变量不相同。可选地,所述控件的定位变量的值为路径地址,根据所述控件的种类和亲属特征关系确定。这里定位变量的值,是根据控件的种类和亲属特征关系确定路径地址。这个路径地址是一个基于可扩展标记语言路径语言(xmlpathlanguage,xpath)定位的路径地址,表征了同一种类的所有控件的相对位置。所述路径地址包括一个需要被具体控件的参数赋值的名称变量。对象树中元素的亲属关系为树状结构中体现的层级关系。在树状结构中的任何一个元素都不是孤立的。通常元素之间的归属关系归结为一种亲属关系,如父、子、祖先、后代、兄弟等。例如://input/parent::*表示所有input元素的父元素,其中input即表示控件的种类,或者说是元素的属性;//input/ancestor::*表示所有input元素的祖先元素;/input/child::*表示input元素的子元素,以及没有任何属性的元素;/input/descendant::*表示input元素的所有后代元素;/input/following-sibling::*表示input元素的下一个同级节点元素。通常情况下,用“/”指示节点路径;用“//”表示所有路径以"//"后指定的子路径结尾的元素;用“*”表示路径的通配符。例如:/table/tbody/tr[0]/td[0]。基于可扩展标记语言路径语言(xmlpathlanguage,xpath)的元素定位方法,根据该控件对应的元素在对象树中的特征亲属关系及其种类(元素属性),可以构建一个用于在对象树中定位该控件的路径。相似的,通过对相同种类控件的种类和特征亲属关系分析,即可得到在对象树中定位该种类控件的路径地址,即可构成定位变量的值。所述路径地址包括一个需要被具体控件的参数赋值的名称变量。不同种类的控件对应的定位变量不相同,也就是根据控件的种类和各自种类的特征亲属关系确定的该种类控件的定位变量的值是不同的。例如:针对参数为“合同编号”的输入框控件,其定位变量为“${input_text_template0}”,定位变量“${input_text_template0}”的值,//*[text()="template_value"]/following-sibling::*[1]/descendant::input[2],即是根据输入框控件的种类和亲属特征关系确定的路径地址,其中template_value是需要控件的参数赋值的名称变量,input是控件的种类(或元素属性),following-sibling::*[1]/descendant::input[2]表示输入框控件的亲属特征关系。不同种类的控件对应的路径地址,控件的种类、亲属特征关系中至少一个是不相同的。s103,将与所述控件对应的参数赋值给所述定位变量。得到定位变量之后,结合测试动作对应的控件的参数,即可得到确定所述测试动作对应的控件的赋值路径。这里所说的将与所述控件对应的参数赋值给所述定位变量,是指将该控件的实际参数,赋值给定位变量中的名称变量,以得到确定该控件的赋值路径。所谓赋值路径,是指在对象树中定位具体控件的路径。通过该赋值路径,即可找到具体的目标控件。举例来说,在输入框控件的测试中,确定对应控件的赋值路径时,需要利用该测试动作对应的控件实际的参数,给定位变量${input_text_template0}的值中的名称变量“template_value”赋值。最终,参数为“合同编号”的输入框控件的赋值路径为://*[text()="合同编号"]/following-sibling::*[1]/descendant::input[2]举例来说,对于测试动作“输入合同编号:为35393195”,其对应的控件是参数为“合同编号”的输入框控件,其参数为“合同编号”,需要赋值给对应的定位变量的值中的名称变量“template_value”,以得到参数为“合同编号”的输入框控件的赋值路径://*[text()="客户编号"]/following-sibling::*[1]/descendant::input[2]。又如:针对参数为“客户编号”的输入框控件,由于其控件种类也为输入框,因而其定位变量也为“${input_text_template0}”;利用该输入框控件实际的参数“客户编号”赋值给定位变量${input_text_template0}中的名称变量“template_value”,得到的该输入框控件的赋值路径为://*[text()="客户编号"]/following-sibling::*[1]/descendant::input[2]。再如:针对参数为“客户姓名”和“身份证号”的输入框控件,由于其控件种类也为输入框,因而其定位变量也为“${input_text_template0}”;分别利用该输入框控件实际的参数“客户姓名”和“身份证号”赋值定位变量${input_text_template0}中的名称变量“template_value”,得到各自的赋值路径为://*[text()="客户姓名"]/following-sibling::*[1]/descendant::input[2];//*[text()="身份证号"]/following-sibling::*[1]/descendant::input[2]。概括来说,就是将输入框控件实际的参数“合同编号”、“客户编号”、“客户姓名”或“身份证号”赋值给所述定位变量${input_text_template0}中的名称变量“template_value”://*[text()="合同编号"]/following-sibling::*[1]/descendant::input[2];//*[text()="客户编号"]/following-sibling::*[1]/descendant::input[2];//*[text()="客户姓名"]/following-sibling::*[1]/descendant::input[2];//*[text()="身份证号"]/following-sibling::*[1]/descendant::input[2]。s104,驱动调用所述定位变量的关键字来控制所述控件执行测试动作。其中,测试脚本是自动执行测试过程(或部分测试过程)的计算机可读指令。为了提高测试脚本的可维护性和可复用性,必须在执行测试脚本之前对它们进行构建。测试脚本可以通过调用关键字的方式实现待测软件的自动化测试。驱动调用所述定位变量的关键字来了控制所述控件执行测试动作是自动化测试中的一个步骤。例如:种类都为输入框的控件,参数名称分别为“合同编号”、“客户编号”、“客户姓名”、和“身份证号”的4个控件,对应同一个关键字“键入${name}为${value}”,该关键词“键入${name}为${value}”调用了定位变量“${input_text_template0}”,驱动该关键词“键入${name}为${value}”控制所述输入框控件执行输入某一个测试数据的动作,如:在参数为“合同编号”的输入框中输入测试数据“35393195”、“3554689553”或“!@#$%^&*()”。需要说明的是,此处举例是4个输入框控件对应同一个定位变量的,根据实际情况的不同,可以视被测系统实际环境改变输入框控件的数量,本发明对一个输入框控件数量不做具体限定。需要说明的是,尽管前述举例均是输入框控件,本实施例中的方案也可以适用于其他类型的控件的测试。本发明实施例中,通过确定所述控件的种类,确定所述控件的定位变量,从而实现相同种类的控件对应一个定位变量,使得调用该定位变量的关键字能够同时定位多个控件,从而实现一个关键字定位多个控件,减少了关键字的创建过程,提高了测试脚本的构建效率。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。本发明实施例还提供一种界面中控件测试的装置,该装置用于执行上述的界面中控件测试的方法。该装置配置于终端,可由软件和/或硬件实现。该装置实施例中未详细描述之处,请参见前述的方法实施例。具体地,参见图3,是本发明实施例提供的一种界面中控件测试的装置的示意框图。本实施例的装置包括:第一确定单元31、第二确定单元32、赋值单元33和驱动单元34。其中,第一确定单元31,用于确定待测试软件的界面中控件的种类;第二确定单元32,用于根据所述控件的种类确定所述控件的定位变量;赋值单元33,用于将与所述控件对应的参数赋值给所述定位变量;驱动单元34,用于驱动调用所述定位变量的关键字来控制所述控件执行测试动作。可选,所述第一确定单元31,具体用于:确定待测试软件的界面中控件的元素属性,所述元素属性对应所述控件的种类;和/或确定待测试软件的界面中控件的测试动作,根据所述测试动作确定所述控件的种类。可选地,所述控件的定位变量的值为路径地址,根据所述控件的种类和亲属特征关系确定;所述赋值单元,具体用于:根据所述控件对应的参数与所述定位变量的值,得到用于确定所述控件的赋值路径。可选地,如图4所示,所述装置还包括创建单元30,所述创建单元30用于创建关键字,并根据待测试软件的界面中控件的测试动作,按照自然语言的结构命名所述关键字;所述第一确定单元31,具体用于:根据待测试软件的界面中控件的测试动作匹配对应的关键字,根据所述关键字确定所述控件的种类。参见图5,是本发明另一实施例提供的一种终端示意框图。如图所示的本实施例中的终端5可以包括:一个或多个处理器51;一个或多个输入设备52,一个或多个输出设备53和存储器54。上述处理器51、输入设备52、输出设备53和存储器54通过总线55连接。存储器54用于存储计算机程序,所述计算机程序包括程序指令,处理器51用于执行存储器54存储的程序指令。其中,处理器51被配置用于调用所述程序指令执行:确定待测试软件的界面中控件的种类;根据所述控件的种类确定所述控件的定位变量;将与所述控件对应的参数赋值给所述定位变量;驱动调用所述定位变量的关键字来控制所述控件执行测试动作。所述终端5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,图5仅仅是终端5的示例,并不构成对终端5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。应当理解,在本发明实施例中,所称处理器51可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。输入设备52可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备53可以包括显示器(lcd等)、扬声器等。该存储器54可以包括只读存储器和随机存取存储器,并向处理器51提供指令和数据。存储器54的一部分还可以包括非易失性随机存取存储器。例如,存储器54还可以存储设备类型的信息。具体实现中,本发明实施例中所描述的处理器51、输入设备52、输出设备53可执行本发明实施例提供的控件测试的方法的中所描述的实现方式,也可执行本发明实施例所描述的界面中控件测试的装置的实现方式,在此不再赘述。在本发明的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:确定待测试软件的界面中控件的种类;根据所述控件的种类确定所述控件的定位变量;将与所述控件对应的参数赋值给所述定位变量;驱动调用所述定位变量的关键字来控制所述控件执行测试动作。所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置、终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的装置、终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1