CN112860562A - 自动化测试方法和装置 - Google Patents
自动化测试方法和装置 Download PDFInfo
- Publication number
- CN112860562A CN112860562A CN202110202565.8A CN202110202565A CN112860562A CN 112860562 A CN112860562 A CN 112860562A CN 202110202565 A CN202110202565 A CN 202110202565A CN 112860562 A CN112860562 A CN 112860562A
- Authority
- CN
- China
- Prior art keywords
- test
- request
- interface
- interactive
- data
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 464
- 230000002452 interceptive effect Effects 0.000 claims abstract description 195
- 230000003993 interaction Effects 0.000 claims abstract description 71
- 230000004044 response Effects 0.000 claims abstract description 57
- 238000012545 processing Methods 0.000 claims description 72
- 238000000034 method Methods 0.000 claims description 38
- 230000009471 action Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 11
- 230000015654 memory Effects 0.000 claims description 6
- 238000004088 simulation Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 238000012423 maintenance Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种自动化测试方法,包括:获取接口测试请求,所述测试请求指示待测试的交互接口;根据所述测试请求,从预设测试用例集合中确定适用于所述交互接口的测试用例,所述测试用例包括基础请求数据和参考响应数据;获取用于对所述交互接口进行测试的交互请求参数;利用所述交互请求参数,对所述基础请求数据中的可替换字段进行置换处理,得到测试请求数据;基于所述测试请求数据和所述参考响应数据,进行针对所述交互接口的自动化测试。本公开还提供了一种自动化测试装置、一种电子设备及一种计算机存储介质。
Description
技术领域
本公开涉及计算机技术领域,特别是涉及一种自动化测试方法及装置。
背景技术
接口测试主要用于对外部系统与内部系统之间的交互接口、内部系统中的不同交互接口进行测试,接口测试主要用于测试接口参数传递的正确性,以及用于验证接口功能实现的合理性。
在实现本公开技术方案过程中,发明人发现相关技术中需由人工编写接口测试框架,形成用于接口测试的测试用例,这存在专业性要求高、测试用例维护难度大的问题。
发明内容
本公开的一个方面提供了一种自动化测试方法,包括:获取接口测试请求,所述测试请求指示待测试的交互接口;根据所述测试请求,从预设测试用例集合中确定适用于所述交互接口的测试用例,所述测试用例包括基础请求数据和参考响应数据;获取用于对所述交互接口进行测试的交互请求参数;利用所述交互请求参数,对所述基础请求数据中的可替换字段进行置换处理,得到测试请求数据;基于所述测试请求数据和所述参考响应数据,进行针对所述交互接口的自动化测试。
可选地,所述根据所述测试请求,从预设测试用例集合中确定适用于所述交互接口的测试用例,包括:对预设测试用例表格进行解析,得到所述测试用例集合;根据所述测试请求描述的交互接口参数和自动测试动作,在所述测试用例集合中确定满足所述测试请求的至少一个测试用例。
可选地,在所述测试用例的测试配置文件包含XML格式和/或JSON报文格式文件的情况下,所述根据所述测试请求描述的交互接口参数和自动测试动作,在所述测试用例集合中确定满足所述测试请求的至少一个测试用例,包括:对所述测试配置文件中的通信参数标签进行解析,以确定满足所述交互接口参数的测试用例;在所述满足所述交互接口参数的测试用例中,对所述测试配置文件中的测试请求体和断言参数进行解析,确定满足所述自动测试动作的测试用例,以得到所述满足所述测试请求的至少一个测试用例。
可选地,所述基于所述测试请求数据和所述参考响应数据,进行针对所述交互接口的自动化测试,包括:将所述测试请求数据发送给与所述交互接口关联的系统服务器;接收所述系统服务器基于所述测试请求数据返回的交互响应数据;判断所述交互响应数据与所述参考响应数据是否一致,是则确定针对所述交互接口的自动化测试通过。
可选地,所述将所述测试请求数据发送给与所述交互接口关联的系统服务器,包括:利用模拟输入工具,在与所述交互接口关联的测试页面中,模拟用户进行输入操作,以实现将所述测试请求数据填充在所述测试页面表单中;以及在所述测试页面中触发交互请求选项,以实现将所述测试请求数据发送给所述系统服务器。
可选地,所述获取用于对所述交互接口进行测试的交互请求参数,包括:从预设用户数据库中查找与所述交互接口关联的交互请求参数;和/或,进行针对所述交互接口的交互请求注册,所述交互请求注册包含基于所述交互接口进行交互的交互请求参数。
可选地,所述对预设测试用例表格进行解析,得到所述测试用例集合,包括:对所述测试用例表格的每一行测试数据进行解析,得到与各行测试数据关联的测试用例;与各行测试数据关联的测试用例,构成所述测试用例集合,其中,所述测试用例集合中的测试用例之间的关系为非耦合关系,不同测试用例在执行过程中不互相调用。
本公开的另一方面提供了一种自动化测试装置,包括:第一获取模块,用于获取接口测试请求,所述测试请求指示待测试的交互接口;第一处理模块,用于根据所述测试请求,从预设测试用例集合中确定适用于所述交互接口的测试用例,所述测试用例包括基础请求数据和参考响应数据;第二获取模块,用于获取用于对所述交互接口进行测试的交互请求参数;第二处理模块,用于利用所述交互请求参数,对所述基础请求数据中的可替换字段进行置换处理,得到测试请求数据;第三处理模块,用于基于所述测试请求数据和所述参考响应数据,进行针对所述交互接口的自动化测试。
可选地,所述第一处理模块包括:第一处理子模块,用于对预设测试用例表格进行解析,得到所述测试用例集合;第二处理子模块,用于根据所述测试请求描述的交互接口参数和自动测试动作,在所述测试用例集合中确定满足所述测试请求的至少一个测试用例。
可选地,所述第二处理子模块包括:第一处理单元,用于在所述测试用例的测试配置文件包含XML格式和/或JSON报文格式文件的情况下,对所述测试配置文件中的通信参数标签进行解析,以确定满足所述交互接口参数的测试用例;第二处理单元,用于在所述满足所述交互接口参数的测试用例中,对所述测试配置文件中的测试请求体和断言参数进行解析,确定满足所述自动测试动作的测试用例,以得到所述满足所述测试请求的至少一个测试用例。
可选地,所述第三处理模块包括:第三处理子模块,用于将所述测试请求数据发送给与所述交互接口关联的系统服务器;第四处理子模块,用于接收所述系统服务器基于所述测试请求数据返回的交互响应数据;第五处理子模块,用于判断所述交互响应数据与所述参考响应数据是否一致,是则确定针对所述交互接口的自动化测试通过。
可选地,所述第三处理子模块包括:第三处理单元,用于利用模拟输入工具,在与所述交互接口关联的测试页面中,模拟用户进行输入操作,以实现将所述测试请求数据填充在所述测试页面表单中;以及第四处理单元,用于在所述测试页面中触发交互请求选项,以实现将所述测试请求数据发送给所述系统服务器。
可选地,所述第二获取模块包括:第六处理子模块,用于从预设用户数据库中查找与所述交互接口关联的交互请求参数;第七处理子模块,用于进行针对所述交互接口的交互请求注册,所述交互请求注册包含基于所述交互接口进行交互的交互请求参数。
可选地,所述第一处理单元用于对所述测试用例表格的每一行测试数据进行解析,得到与各行测试数据关联的测试用例,与各行测试数据关联的测试用例,构成所述测试用例集合,其中,所述测试用例集合中的测试用例之间的关系为非耦合关系,不同测试用例在执行过程中不互相调用。
本公开的另一方面提供了一种电子设备,包括一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本公开实施例的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现本公开实施例的方法。
本公开的另一方面提供了一种计算机程序产品,包括计算机可读指令,其中,所述计算机可读指令被执行时用于执行本公开实施例的自动化测试方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中,
图1示意性示出了根据本公开实施例的自动化测试方法和装置的系统架构;
图2示意性示出了根据本公开实施例的一种自动化测试方法的流程图;
图3示意性示出了根据本公开实施例的另一自动化测试方法的流程图;
图4示意性示出了根据本公开实施例的一种自动化测试系统的示意图;
图5示意性示出了根据本公开实施例的一种自动化测试装置的框图;
图6示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性地,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、操作、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、操作、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程自动化测试装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种自动化测试方法以及能够运用该方法的测试装置。该方法具体可以包括如下操作,首先,获取接口测试请求,测试请求指示待测试的交互接口,然后根据测试请求,从预设测试用例集合中确定适用于交互接口的测试用例,测试用例包括基础请求数据和参考响应数据,接下来获取用于对交互接口进行测试的交互请求参数,以及利用交互请求参数,对基础请求数据中的可替换字段进行置换处理,得到测试请求数据,最后,基于测试请求数据和参考响应数据,进行针对交互接口的自动化测试。
图1示意性示出了根据本公开实施例的自动化测试方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该系统架构100包括终端(图中示出了多个,如终端101、102、103)和服务器(如服务器104),服务器与应用端之间通信连接。服务器104获取终端(如终端101、102、103)的接口测试请求,测试请求指示待测试的交互接口,服务器104根据测试请求,从预设测试用例集合中确定适用于交互接口的测试用例,测试用例包括基础请求数据和参考响应数据,接下来,服务器104获取用于对交互接口进行测试的交互请求参数,以及利用交互请求参数,对基础请求数据中的可替换字段进行置换处理,得到测试请求数据,最后,服务器104基于测试请求数据和参考响应数据,进行针对终端(如终端101、102、103)中交互接口的自动化测试。
需要说明的是,本公开实施例的自动化测试方法和装置可用于金融领域,也可用于除金融领域之外的任意领域。以下将结合附图和具体实施例详细阐述本公开。
图2示意性示出了根据本公开实施例的一种自动化测试方法的流程图。如图2所示,方法200可以包括操作S210~S250。
在操作S210,获取接口测试请求,测试请求指示待测试的交互接口。
在本实施例中,具体地,获取接口测试请求,测试请求指示待测试的交互接口。待测试的交互接口具体可以是内部系统与外部系统间的交互接口,也可以是内部系统中的不同交互接口。测试请求描述待测试的交互接口参数,以及描述待进行的自动测试动作。交互接口参数具体可以包括接口标识、接口位置描述、接口功能描述等内容,接口功能描述例如可以是手机银行APP的用户登录接口。自动测试动作描述对交互接口进行逻辑测试的测试流程,例如可以包括对交互接口进行正常输入测试和异常输入测试等内容。
接下来,在操作S220,根据测试请求,从预设测试用例集合中确定适用于交互接口的测试用例,测试用例包括基础请求数据和参考响应数据。
在本实施例中,具体地,根据测试请求描述的交互接口参数和自动测试动作,在测试用例集合中确定用于对交互接口进行测试的至少一个测试用例。测试用例集合具体可以是由专业人员事先编写的可共享测试用例集合,测试用例集合中的测试用例之间的关系为非耦合关系,不同测试用例在被执行过程中不互相调用,测试用例与测试结果之间具有一一对应关系。
测试用例包括基础请求数据和参考响应数据,基础请求数据中包含预设可替换字段,在实际应用中,可以利用不同交互请求参数对基础请求数据中的可替换字段进行置换处理,以得到不同交互请求数据。交互请求数据中可以包含正确输入内容,正确输入内容用于测试交互接口在正常输入的情况下,能否返回正确的响应结果。此外,交互请求数据中还可以包含错误输入内容,错误输入内容用于测试交互接口在异常输入的情况下,能否进行异常输入报错。
接下来,在操作S230,获取用于对交互接口进行测试的交互请求参数。
在本实施例中,具体地,获取用于对交互接口进行测试的交互请求参数,具体可以从预设用户数据库中查找与交互接口关联的交互请求参数,或者进行针对交互接口的交互请求注册,交互请求注册包含基于交互接口进行交互时的交互请求参数。用户数据库中存储有用户在实际交互活动中所使用的交互请求参数,例如存储有用户通过交易查询接口进行订单查询时所使用的订单号。此外,还可以进行针对交互接口的模拟注册操作,模拟注册操作同样可以产生基于交互接口进行交互的交互请求参数。示例性地,进行针对手机银行APP的用户登录接口的模拟注册操作,得到基于用户登录接口进入手机银行APP的用户名、密码等数据。
接下来,在操作S240,利用交互请求参数,对基础请求数据中的可替换字段进行置换处理,得到测试请求数据。
在本实施例中,具体地,利用获取的交互请求参数,对基础请求数据中的可替换字段进行置换处理,得到可作为请求报文的测试请求数据。不同交互接口通过向系统服务器发送不同请求报文以实现不同业务功能,因此,在对交互接口进行自动化测试过程中,与不同类型交互接口关联的测试请求数据内容可能不同,与同一交互接口关联的测试请求数据也可以具有多样性,多样性的测试请求数据可用于对交互接口进行不同逻辑测试。
接下来,在操作S250,基于测试请求数据和参考响应数据,进行针对交互接口的自动化测试。
在本实施例中,具体地,利用开源的自动化运行框架执行测试用例,具体地,将测试请求数据以请求报文的形式发送给与交互接口关联的系统服务器。系统服务器在接收到测试请求数据后进行逻辑处理,得到交互响应数据,并将交互响应数据返回交互接口。为验证交互接口能否正确传递测试请求数据,以及验证交互接口功能是否能够完整实现,可以将实际获取的交互响应数据与参考响应数据进行一致性比对。当交互响应数据与参考响应数据一致时,确定交互接口自动化测试通过;当交互响应数据与参考响应数据不一致时,确定交互接口自动化测试失败。
在本公开实施例中,获取接口测试请求,测试请求指示待测试的交互接口;根据测试请求,从预设测试用例集合中确定适用于交互接口的测试用例,测试用例包括基础请求数据和参考响应数据;获取用于对交互接口进行测试的交互请求参数;利用交互请求参数,对基础请求数据中的可替换字段进行置换处理,得到测试请求数据;基于测试请求数据和参考响应数据,进行针对交互接口的自动化测试。通过在预设测试用例集合中确定适用于交互接口的测试用例,对测试用例中的基础请求数据进行替换处理,得到可用于自动化测试的测试请求数据。在基于交互接口进行的自动化测试流程中,由于不需测试人员单独编写测试用例,能够有效降低接口测试的专业性要求,降低测试用例维护难度,和提升接口自动化测试效率。
图3示意性示出了根据本公开实施例的另一自动化测试方法的流程图。
如图3所示,方法300可以包括操作S210、S310、S230~S240和S320。
在操作S210,获取接口测试请求,测试请求指示待测试的交互接口。
在本实施例中,具体地,响应于获取的测试请求,根据测试请求描述的交互接口参数,确定用户请求测试的交互接口。不同交互接口与系统服务器之间的交互内容、交互方式可能不同,不同交互接口与系统服务器交互所实现的业务功能也可能不同。由于针对交互接口的自动化测试为模拟交互接口与系统服务器间的交互过程,因此,适用于不同交互接口的测试用例可能不同。
接下来,在操作S310,对预设测试用例表格进行解析,得到测试用例集合,以及根据测试请求描述的交互接口参数和自动测试动作,在测试用例集合中确定满足测试请求的至少一个测试用例,测试用例包括基础请求数据和参考响应数据。
在本实施例中,具体地,对XLS格式的测试用例表格进行解析,具体对测试用例表格中的每一行测试数据进行解析,得到与各行测试数据关联的测试用例,与各行测试数据关联的测试用例构成前述测试用例集合。测试用例表格中集成有由专业人员事先编写的多个可共享测试用例,通过利用测试用例表格管理用于接口自动化测试的可共享测试用例,这能够有效降低测试用例维护难度,减少测试用例维护成本,同时还有利于降低接口自动化测试的专业性要求,有利于改善接口自动化测试效率,和提高自动化测试便捷性。
根据测试请求描述的交互接口参数和自动测试动作,在测试用例集合中确定适用于待测试交互接口的测试用例,测试用例包括基础请求数据和参考响应数据。可选地,在测试用例的测试配置文件中包含XML(一种可扩展标记语言)格式和/或JSON(一种轻量级数据交换格式)报文格式文件的情况下,对测试配置文件中的通信参数标签进行解析,同时结合测试请求中描述的交互接口参数,确定满足交互接口参数的测试用例。然后,在满足交互接口参数的测试用例中,对测试配置文件中的请求体和断言参数进行解析,同时结合测试请求中描述的自动测试动作,确定满足自动测试动作的测试用例,以作为适用于交互接口的至少一个测试用例。
接下来,在操作S230,获取用于对交互接口进行测试的交互请求参数。
接下来,在操作S240,利用交互请求参数,对基础请求数据中的可替换字段进行置换处理,得到测试请求数据。
在本实施例中,具体地,利用获取的交互请求参数,对测试用例的基础请求数据中的可替换字段进行置换处理,得到可进行实际测试的测试请求数据。不同交互请求参数可用于对交互接口的同一功能进行多轮测试,也可以用于对交互接口的不同功能进行测试。对交互接口进行自动化测试的内容具体可以包括测试交互接口能否正确完整传递交互请求参数、测试交互接口能否通过预设路径传递交互请求参数、测试交互接口功能能否正常实现等内容。用于对可替换字段进行置换处理的交互请求参数可以是正确输入参数,也可以是错误输入参数,通过对交互接口进行正常逻辑测试和出错逻辑测试,可用于验证交互接口功能实现的完整性,以及验证对各种异常情况的容错处理的合理性。
接下来,在操作S320,将测试请求数据发送给与交互接口关联的系统服务器,以及接收系统服务器基于测试请求数据返回的交互响应数据,以实现进行针对交互接口的自动化测试。
在本实施例中,具体地,利用开源的自动化运行框架,以自动化方式运行确定出的适用于待测试的交互接口的测试用例。示例性地,利用TestNG工具自动化运行测试用例,实现基于交互接口自动发送交互请求,例如基于交互接口自动发送Http Get请求、Http Post请求、RestAPIPost请求、Https Get请求、Https Post请求、RPC请求等,通过与系统服务器自动进行交互,实现进行针对交互接口的自动化测试。
具体地,可以利用模拟输入工具,在与交互接口关联的测试页面中,模拟用户进行输入操作,以实现将测试请求数据填充在测试页面表单中,然后,通过在测试页面中触发交互请求选项,以实现将测试请求数据发送给系统服务器。其中,触发交互请求选项的动作具体可以是点击动作、选择动作或者其他触控动作。系统服务器在接收到测试请求数据后进行逻辑处理,得到实际响应结果,并将实际响应结果以返回交互接口的测试页面。
示例性地,待测试的交互接口为交易查询接口,利用模拟输入工具,在与交易查询接口关联的测试页面表单中,模拟用户操作输入交易单号,并且触发交互请求选项,实现将交易单号发送给与交易查询接口关联的系统服务器。系统服务器在接收到交易单号后,进行订单查询得到实际响应结果,实际响应结果具体可以是查询到的订单明细。将系统服务器返回的交互响应数据与参考响应数据进行比对,得到测试结果,测试结果的标识包括通过标识和未通过标识。可选地,还可利用数据采集工具,对执行测试用例中产生的性能数据进行采集,以及基于采集的性能数据,验证交互接口能否正常进行逻辑功能,以及验证交互接口功能实现的完整性,其中,性能数据例如可以包括处理器使用率、实际使用内存数、数据传输速率等内容。
在进行针对交互接口的自动化测试时,测试人员在无需编码的情况下,直接通过编辑XLS测试用例文件实现完成接口自动化测试流程。当交互接口参数和/或自动测试方法发生修改时,测试人员只需维护XLS测试用例文件,这可以大幅降低测试用例的维护成本,有利于实现一种门槛低、易维护、无编码化的接口自动化测试方法,有利于大幅提高接口自动化测试效率。
图4示意性示出了根据本公开实施例的一种自动化测试系统的示意图。如图4所示,系统400可以包括用例解析模块401、文件解析模块402、参数配置模块403、用例执行模块404和接口请求处理模块405。
具体地,用例解析模块401响应于获取的测试请求,读取XLS格式的预设测试用例表格,并对测试用例表格进行解析,以确定适用于待测试的交互接口的测试用例。文件解析模块402用于对确定出的测试用例进行解析,以确定测试用例中的基础请求数据和参考响应数据。参数配置模块403用于通过读取用户数据库或进行模拟注册操作得到交互请求参数,并利用交互请求参数对基础请求数据中的预设可替换字段进行置换处理,得到交互请求数据。用例执行模块404用于执行测试用例,具体用于将交互请求数据发送给与交互接口关联的系统服务器。接口请求处理模块405用于在案例执行过程中,通过交互接口自动发送交互请求,例如基于交互接口自动发送Http Get请求、Http Post请求、RestAPI Post请求、Https Get请求、Https Post请求、RPC请求,通过与系统服务器自动进行交互,实现进行针对交互接口的自动化测试。
图5示意性示出了根据本公开实施例的一种自动化测试装置的框图。
如图5所示,装置500可以包括第一获取模块501、第一处理模块502、第二获取模块503、第二处理模块504和第三处理模块505。
第一获取模块501,用于获取接口测试请求,测试请求指示待测试的交互接口;第一处理模块502,用于根据测试请求,从预设测试用例集合中确定适用于交互接口的测试用例,测试用例包括基础请求数据和参考响应数据;第二获取模块503,用于获取用于对交互接口进行测试的交互请求参数;第二处理模块504,用于利用交互请求参数,对基础请求数据中的可替换字段进行置换处理,得到测试请求数据;第三处理模块505,用于基于测试请求数据和参考响应数据,进行针对交互接口的自动化测试。
在本公开实施例中,获取接口测试请求,测试请求指示待测试的交互接口;根据测试请求,从预设测试用例集合中确定适用于交互接口的测试用例,测试用例包括基础请求数据和参考响应数据;获取用于对交互接口进行测试的交互请求参数;利用交互请求参数,对基础请求数据中的可替换字段进行置换处理,得到测试请求数据;基于测试请求数据和参考响应数据,进行针对交互接口的自动化测试。通过在预设测试用例集合中确定适用于交互接口的测试用例,对测试用例中的基础请求数据进行替换处理,得到可用于自动化测试的测试请求数据。在基于交互接口进行的自动化测试流程中,由于不需测试人员单独编写测试用例,能够有效降低接口测试的专业性要求,降低测试用例维护难度,和提升接口自动化测试效率。
作为一种可行的实施例,第一处理模块包括:第一处理子模块,用于对预设测试用例表格进行解析,得到测试用例集合;第二处理子模块,用于根据测试请求描述的交互接口参数和自动测试动作,在测试用例集合中确定满足测试请求的至少一个测试用例。
作为一种可行的实施例,第二处理子模块包括:第一处理单元,用于在测试用例的测试配置文件包含XML格式和/或JSON报文格式文件的情况下,对测试配置文件中的通信参数标签进行解析,以确定满足交互接口参数的测试用例;第二处理单元,用于在满足交互接口参数的测试用例中,对测试配置文件中的测试请求体和断言参数进行解析,确定满足自动测试动作的测试用例,以得到满足测试请求的至少一个测试用例。
作为一种可行的实施例,第三处理模块包括:第三处理子模块,用于将测试请求数据发送给与交互接口关联的系统服务器;第四处理子模块,用于接收系统服务器基于测试请求数据返回的交互响应数据;第五处理子模块,用于判断交互响应数据与参考响应数据是否一致,是则确定针对交互接口的自动化测试通过。
作为一种可行的实施例,第三处理子模块包括:第三处理单元,用于利用模拟输入工具,在与交互接口关联的测试页面中,模拟用户进行输入操作,以实现将测试请求数据填充在测试页面表单中;以及第四处理单元,用于在测试页面中触发交互请求选项,以实现将测试请求数据发送给系统服务器。
作为一种可行的实施例,第二获取模块包括:第六处理子模块,用于从预设用户数据库中查找与交互接口关联的交互请求参数;第七处理子模块,用于进行针对交互接口的交互请求注册,交互请求注册包含基于交互接口进行交互的交互请求参数。
作为一种可行的实施例,第一处理单元用于对测试用例表格的每一行测试数据进行解析,得到与各行测试数据关联的测试用例,与各行测试数据关联的测试用例,构成测试用例集合,其中,测试用例集合中的测试用例之间的关系为非耦合关系,不同测试用例在执行过程中不互相调用。
需要说明的是,在本公开实施例中,装置部分的实施方式与方法部分的实施方式相同或类似,在此不再赘述。
根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块501、第一处理模块502、第二获取模块503、第二处理模块504和第三处理模块505中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块501、第一处理模块502、第二获取模块503、第二处理模块504和第三处理模块505中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。第一获取模块501、第一处理模块502、第二获取模块503、第二处理模块504和第三处理模块505中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的电子设备的框图。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600包括处理器610、计算机可读存储介质620。该电子设备600可以执行根据本公开实施例的方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理模块或者是多个处理模块。
计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、......。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,第一获取模块501、第一处理模块502、第二获取模块503、第二处理模块504和第三处理模块505中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (11)
1.一种自动化测试方法,包括:
获取接口测试请求,所述测试请求指示待测试的交互接口;
根据所述测试请求,从预设测试用例集合中确定适用于所述交互接口的测试用例,所述测试用例包括基础请求数据和参考响应数据;
获取用于对所述交互接口进行测试的交互请求参数;
利用所述交互请求参数,对所述基础请求数据中的可替换字段进行置换处理,得到测试请求数据;
基于所述测试请求数据和所述参考响应数据,进行针对所述交互接口的自动化测试。
2.根据权利要求1所述的方法,其中,所述根据所述测试请求,从预设测试用例集合中确定适用于所述交互接口的测试用例,包括:
对预设测试用例表格进行解析,得到所述测试用例集合;
根据所述测试请求描述的交互接口参数和自动测试动作,在所述测试用例集合中确定满足所述测试请求的至少一个测试用例。
3.根据权利要求2所述的方法,其中,
在所述测试用例的测试配置文件包含XML格式和/或JSON报文格式文件的情况下,
所述根据所述测试请求描述的交互接口参数和自动测试动作,在所述测试用例集合中确定满足所述测试请求的至少一个测试用例,包括:
对所述测试配置文件中的通信参数标签进行解析,以确定满足所述交互接口参数的测试用例;
在所述满足所述交互接口参数的测试用例中,对所述测试配置文件中的测试请求体和断言参数进行解析,确定满足所述自动测试动作的测试用例,以得到所述满足所述测试请求的至少一个测试用例。
4.根据权利要求1所述的方法,其中,所述基于所述测试请求数据和所述参考响应数据,进行针对所述交互接口的自动化测试,包括:
将所述测试请求数据发送给与所述交互接口关联的系统服务器;
接收所述系统服务器基于所述测试请求数据返回的交互响应数据;
判断所述交互响应数据与所述参考响应数据是否一致,是则确定针对所述交互接口的自动化测试通过。
5.根据权利要求4所述的方法,其中,所述将所述测试请求数据发送给与所述交互接口关联的系统服务器,包括:
利用模拟输入工具,在与所述交互接口关联的测试页面中,模拟用户进行输入操作,以实现将所述测试请求数据填充在所述测试页面表单中;以及
在所述测试页面中触发交互请求选项,以实现将所述测试请求数据发送给所述系统服务器。
6.根据权利要求1所述的方法,其中,所述获取用于对所述交互接口进行测试的交互请求参数,包括:
从预设用户数据库中查找与所述交互接口关联的交互请求参数;和/或,
进行针对所述交互接口的交互请求注册,所述交互请求注册包含基于所述交互接口进行交互的交互请求参数。
7.根据权利要求2所述的方法,其中,所述对预设测试用例表格进行解析,得到所述测试用例集合,包括:
对所述测试用例表格的每一行测试数据进行解析,得到与各行测试数据关联的测试用例;
与各行测试数据关联的测试用例,构成所述测试用例集合,
其中,所述测试用例集合中的测试用例之间的关系为非耦合关系,不同测试用例在执行过程中不互相调用。
8.一种自动化测试方法,包括:
第一获取模块,用于获取接口测试请求,所述测试请求指示待测试的交互接口;
第一处理模块,用于根据所述测试请求,从预设测试用例集合中确定适用于所述交互接口的测试用例,所述测试用例包括基础请求数据和参考响应数据;
第二获取模块,用于获取用于对所述交互接口进行测试的交互请求参数;
第二处理模块,用于利用所述交互请求参数,对所述基础请求数据中的可替换字段进行置换处理,得到测试请求数据;
第三处理模块,用于基于所述测试请求数据和所述参考响应数据,进行针对所述交互接口的自动化测试。
9.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至7中任一项所述的方法。
11.一种计算机程序产品,包括计算机可读指令,其中,所述计算机可读指令被执行时用于执行根据权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110202565.8A CN112860562B (zh) | 2021-02-23 | 2021-02-23 | 自动化测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110202565.8A CN112860562B (zh) | 2021-02-23 | 2021-02-23 | 自动化测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860562A true CN112860562A (zh) | 2021-05-28 |
CN112860562B CN112860562B (zh) | 2024-02-02 |
Family
ID=75990421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110202565.8A Active CN112860562B (zh) | 2021-02-23 | 2021-02-23 | 自动化测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860562B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880049A (zh) * | 2022-03-09 | 2022-08-09 | 深圳萨摩耶数字科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020000706A1 (zh) * | 2018-06-25 | 2020-01-02 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、系统、设备和存储介质 |
CN111124871A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 接口测试方法及装置 |
CN111625473A (zh) * | 2020-07-01 | 2020-09-04 | 北京字节跳动网络技术有限公司 | 接口测试用例生成方法、装置、存储介质和电子设备 |
-
2021
- 2021-02-23 CN CN202110202565.8A patent/CN112860562B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020000706A1 (zh) * | 2018-06-25 | 2020-01-02 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、系统、设备和存储介质 |
CN111124871A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 接口测试方法及装置 |
CN111625473A (zh) * | 2020-07-01 | 2020-09-04 | 北京字节跳动网络技术有限公司 | 接口测试用例生成方法、装置、存储介质和电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880049A (zh) * | 2022-03-09 | 2022-08-09 | 深圳萨摩耶数字科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112860562B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534699B2 (en) | Method, device and computer program product for executing test cases | |
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN107704392B (zh) | 一种测试用例的处理方法及服务器 | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
US9842045B2 (en) | Failure recovery testing framework for microservice-based applications | |
US9672137B1 (en) | Shadow test replay service | |
CN107122258B (zh) | 用于测试接口的状态码校验的方法及设备 | |
KR101881804B1 (ko) | 게임 테스트 자동화 장치 및 방법 | |
CN108984389B (zh) | 一种应用程序测试方法及终端设备 | |
CN111897724B (zh) | 一种适用于云平台的自动化测试方法及装置 | |
CN108628746A (zh) | 接口自动化测试方法与系统 | |
CN103049371A (zh) | Android应用程序测试方法和测试装置 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN111597120A (zh) | 接口测试装置、方法、电子设备和计算机可读存储介质 | |
CN110737631A (zh) | 一种基于Flink引擎的数据解析方法及装置 | |
CN114816993A (zh) | 一种全链路接口测试方法、系统、介质及电子设备 | |
US9170905B2 (en) | Base protocol layer testing device | |
CN112860562A (zh) | 自动化测试方法和装置 | |
CN112131127A (zh) | 接口测试方法、装置、系统及电子设备 | |
CN113238940B (zh) | 一种接口测试结果的比对方法、装置、设备和存储介质 | |
CN111061258B (zh) | 一种基于列车控制系统的功能测试方法及装置 | |
Wang et al. | Application of model-based testing on a quorum-based distributed storage | |
CN114238123A (zh) | 压力测试脚本生成方法、装置、设备及介质 | |
Varghese et al. | Can commercial testing automation tools work for iot? A case study of selenium and node-red | |
CN115473832B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |