CN111506511A - 一种测试用例生成方法、装置、电子设备及介质 - Google Patents
一种测试用例生成方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN111506511A CN111506511A CN202010316948.3A CN202010316948A CN111506511A CN 111506511 A CN111506511 A CN 111506511A CN 202010316948 A CN202010316948 A CN 202010316948A CN 111506511 A CN111506511 A CN 111506511A
- Authority
- CN
- China
- Prior art keywords
- service
- test
- information
- test case
- service request
- 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
Links
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
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
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种测试用例生成方法、装置、电子设备及介质。
背景技术
随着互联网通信技术的不断发展,利用互联网通信技术提供各类业务服务已经成为主流趋势。在业务服务的实现中,往往需要通过调用对应的服务对象以进行支持。为保证业务功能的有效实现,需要对此进行相关测试。
相关技术中,对服务对象进行测试往往需要由工作人员手工编写对应的测试用例。比如,工作人员基于关键字驱动的思想为待测试服务对象手工编写测试用例,向该服务对象输入编写好的测试用例,进而利用该服务对象返回的关键字信息进行结构校验。然而,手工编写测试用例的工作量是巨大的,相应的,测试用例的生成速度低下,很难满足需要进行快速测试的场景的需求。因此,需要提供对测试用例更有效的生成方案。
发明内容
为了解决现有技术应用在进行测试用例生成时,效率低等问题,本发明提供了一种测试用例生成方法、装置、电子设备及介质:
一方面,本发明提供了一种测试用例生成方法,所述方法包括:
接收业务请求;
执行所述业务请求,以及基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息;
根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点;
基于所述测试节点和所述数据库调用信息得到目标关联数据;
基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例。
另一方面提供了一种测试用例生成装置,所述装置包括:
请求接收模块:用于接收业务请求;
信息获取模块:用于执行所述业务请求,以及基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息;
节点选取模块:用于根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点;
数据得到模块:用于基于所述测试节点和所述数据库调用信息得到目标关联数据;
用例生成模块:用于基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例。
另一方面提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的测试用例生成方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的测试用例生成方法。
本发明提供的一种测试用例生成方法、装置、电子设备及介质,具有如下技术效果:
本发明基于业务请求自动生成目标测试用例,不需要关注该业务请求执行中相关联的硬件层服务对象以及硬件层服务对象涉及的库表结构,能够提高测试用例的生成效率,可以更好的满足需要进行快速测试的场景的需求。基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息,实现对业务请求的执行状态的有效追踪,相应的,这些更具全局性的数据为生成更具准确度的测试用例提供了保障。根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点,在测试规则的指导下选取测试节点,可以保证生成的测试用例更具针对性和实用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明实施例提供的一种应用环境的示意图;
图2是本发明实施例提供的一种测试用例生成方法的流程示意图;
图3是本发明实施例提供基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例的一种流程示意图;
图4也是本发明实施例提供的一种测试用例生成方法的流程示意图;
图5是本发明实施例提供的测试用例生成平台的架构示意图;
图6是本发明实施例提供的架构设计中web层的一种流程示意图;
图7是本发明实施例提供的架构设计中业务逻辑层的一种流程示意图;
图8是本发明实施例提供的一种测试用例生成装置的组成框图;
图9是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本发明实施例提供的一种应用环境的示意图,可以包括客户端01和服务端02,客户端与服务端通过网络连接。工作人员可以通过客户端向服务端发送业务请求,服务端基于接收到的业务请求进行目标测试用例的生成。需要说明的是,图1仅仅是一种示例。
具体的,客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,比如计算机程序。客户端01上运行的操作系统可以包括但不限于安卓系统(Android系统)、IOS系统(是由苹果公司开发的移动操作系统)、linux(一种操作系统)、MicrosoftWindows(微软视窗操作系统)等。
具体的,服务端02可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。服务端02可以包括有网络通信单元、处理器和存储器等等。所述服务端02可以为上述客户端提供后台服务。
以下介绍本发明一种测试用例生成方法的具体实施例,图2是本发明实施例提供的一种测试用例生成方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201:接收业务请求;
本发明实施例中,服务端接收由客户端发送的业务请求。服务端和客户端指向同一业务平台,该业务平台为用户提供相关业务服务,比如金融业务服务。金融业务服务提供的业务服务可以包括B2C(Business-to-Consumer,一种商户对用户的电子商务模式)的第三方支付、B2B(Business-to-Business,一种商户对商户的电子商务模式)的第三方支付等。相应的,业务请求可以是支付请求、退款请求、生成订单请求等。
该业务请求由客户端发送,运行有该客户端的电子设备可以是智能手机、台式电脑、平板电脑、笔记本电脑、增强现实/虚拟现实设备、数字助理、智能可穿戴设备等类型的实体设备。该实体设备搭载的操作系统可以是安卓系统、IOS系统、linux、MicrosoftWindows等。利用该客户端进行业务请求发送的触发对象可以是真实用户和测试工具,真实用户作为触发对象时可以对应真实环境和测试环境(比如测试人员),测试工具作为触发对象时可以对应测试环境。可以不对触发对象进行业务请求发送时该客户端所处的地理位置、网络状态等作限制。进一步的,实体设备的类型、操作系统的类型、上述地理位置、上述网络状态等可以作为业务请求所携带的基础参数,这样可以便于后续对目标测试用例的执行情况进行分析。
S202:执行所述业务请求,以及基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息;
本发明实施例中,服务端执行业务请求得到的响应结果可以是成功,也可以是失败。业务请求的接收时间、执行过程所处时间可以对应当前时间段,也可以对应历史时间段。相应的,当对应当前时间段时,服务端基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息的时机可以是实时的,也可以是在确认响应结果之后。当对应历史时间段时,服务端基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息的时机是在确认响应结果之后。
服务调用链路信息表征了执行业务请求中涉及的业务层服务对象的调用顺序。数据库调用信息记录了执行业务请求中服务对象(不论业务层、硬件层)所引用的库表内容,数据库调用信息中包括了存储于数据库中的中间数据和结果数据。获取得到的服务调用链路信息和数据库调用信息保证了对业务请求的执行状态的全面追踪。
在实际应用中,比如业务请求A对应由商户B向用户C转账,服务端执行业务请求A的过程首先调用A服务的A端口、然后调用B服务的B端口、最后调用C服务的C端口。那么,服务调用链路信息(对应业务请求A)所指示的链路为A服务的A端口——》B服务的B端口——》调用C服务的C端口,数据库调用信息(对应业务请求A)记录A服务的A端口所引用的库表内容、B服务的B端口所引用的库表内容以及C服务的C端口所引用的库表内容。
在一个具体的实施例中,可以在获取所述数据库调用信息之前,基于数据库复制协议在服务端配置监控文件。相应的,可以通过运行所述监控文件来获取所述数据库调用信息。
具体的,可以基于MySQL(关系型数据库管理系统)复制协议来封装用于监控数据库的数据收集代理模块(slave_agent),并将数据收集代理模块安装在服务端的具体设备(搭建有数据库)上。由数据收集代理模块收集执行业务请求中对应设备所涉及的所有库表内容,所有库表内容可以包括执行业务请求从开始到结束的整个阶段的相关db(数据库)信息。数据收集代理模块相当于将自身伪装成了对应数据库(MySQL)的备机,作为备机将会被同步一份数据。需要说明的是,为保证对库表内容的顺利收集,数据库需要开启日志功能,比如binlog(MySQL的二进制日志)功能。
在另一个具体的实施例中,可以在服务端的具体设备上部署模调收集代理模块(moudel_agent),模调收集代理模块可以实时监测执行业务请求中业务层服务对象与业务层服务对象之间的调用关系链。当然,模调收集代理模块也可以实时监测执行业务请求中硬件层服务对象与硬件层服务对象之间的调用关系链
S203:根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点;
本发明实施例中,测试规则可以是通用规则,也可以是个性化规则,是可以灵活选择的。所述测试规则包括以下至少之一:测试类型和被测对象的属性。测试类型可以对应功能测试(比如测试参数类型、边界值)、性能测试(比如测试响应时间、并发数和吞吐量)以及安全测试(比如测试敏感信息是否加密、接口是否防恶意请求)等。被测对象的属性可以对应业务层服务对象、硬件层服务对象的相关属性。以接口属性作为硬件层服务对象的一种相关属性可以包括输入输出(IO)端口属性、内存映射输入输出(MMIO)端口属性、命名管道属性、共享内存属性和虚拟总线属性。
根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点,测试节点可以对应所述所指示的链路包括的全部业务层服务对象,也可以是部分业务层服务对象。通用规则可以是预先配置于服务端的,服务端可以自动根据通用规则从所述服务调用链路信息所指示的链路中选取出测试节点。
在实际应用中,可以基于前述得到的服务调用链路信息生成业务层面的服务调用关系图。相比于服务调用链路信息所指示的链路,向测试人员返回服务调用关系图能够更直观的呈现服务对象间的调用关系,更方便测试人员选取合适的通用规则或者制定个性化规则。相应的,基于前述选取或者制定的规则在服务调用关系图上确定出测试节点。
在一个具体的实施例中,可以在根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点之前,先获取本地环境配置信息;再根据本地环境配置信息对所述所指示的链路作标注处理,得到标注结果。相应的,可以根据所述测试规则从经标注的链路中选取出测试节点。
具体的,对于本地环境配置信息的获取过程:1)可以在所述获取本地环境配置信息之前,先确定业务属性;再基于所述业务属性构建运行环境;2)可以基于所述运行环境获取所述本地环境配置信息,所述本地环境配置信息包括以下至少之一:设备名称、设备所属的集群信息、设备的接口信息、设备的网络信息以及数据库的字段支持信息。在实际应用中,构建得到的运行环境可以对应支持业务服务正常实现的环境组网,该环境组网包括有电子设备以及分布部署于不同电子设备上的程序集合。本地环境配置信息可以是由相关人员录入的硬件层信息。
参考前述步骤S202中对服务调用链路信息(对应业务请求A)的相关记载,这里不再赘述。可知,服务调用链路信息(对应业务请求A)指向业务层服务对象的调用顺序,这里经标注的链路指向硬件层服务对象调用顺序,相当于作了一次硬件化标注处理。比如,将业务层的A服务的A端口硬件化标注处理至服务器乙的c接口,将业务层的B服务的B端口硬件化标注处理至服务器甲的e接口,这样经标注的链路中包括服务器乙的c接口——》服务器甲的e接口。
基于硬件化标注处理得到了执行业务请求中涉及的硬件层服务对象的调用顺序,利用测试规则选出的测试节点也指向硬件层服务对象,这样可以便于执行后续生成的目标测试用例时检查接口路由信息。
S204:基于所述测试节点和所述数据库调用信息得到目标关联数据;
本发明实施例中,由于数据库调用信息所记录的库表内容较为全面,这里可以从所述数据库调用信息中提取出与所述测试节点对应的目标数据库信息,将所述目标数据库信息作为所述目标关联数据。相比数据库调用信息,目标关联数据更关注库表内容与测试节点之间的相关程度,这样后续生成的目标测试用例对测试节点的针对性更强。
参考前述步骤S203中“硬件化标注处理”的相关记载,这里不再赘述。当测试节点为根据测试规则从经标注的链路中选取出的时,从数据库调用信息中提取出目标关联数据时考虑的是硬件层服务对象所涉及的库表内容。比如,执行业务请求中相关接口涉及的库表内容:相关接口的传入参数、相关接口的传出参数等。这样测试人员不需要提前了解硬件层服务对象(比如接口)以及硬件层服务对象涉及的库表结构,不需要提前对查询接口进行单独封装处理,不需要对业务代码进行改造。
S205:基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例。
本发明实施例中,可以利用unittest(一种单元测试框架)结合业务请求、服务调用链路信息和目标关联数据来编写目标测试用例。其中,将所述业务请求作为输入条件;将所述业务请求携带的业务参数、所述服务调用链路信息和所述目标关联数据作为预期结果;基于所述输入条件和所述预期结果生成所述目标测试用例。这样在利用目标测试用例进行测试时可以比照同一业务请求的之前执行情况,更主动、更多维度的对相关服务对象进行测试。
在一个具体的实施例中,参考前述步骤S203中“硬件化标注处理”的相关记载,这里不再赘述。相应的,如图3所示,所述基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例,包括:
S301:将所述业务请求作为输入条件;
S302:将所述业务请求携带的业务参数、所述服务调用链路信息、所述标注结果和所述目标关联数据作为预期结果;
S303:基于所述输入条件和所述预期结果生成所述目标测试用例。
比如,服务调用链路信息(对应业务请求A)所指示的链路为A服务的A端口——》B服务的B端口——》调用C服务的C端口,数据库调用信息(对应业务请求A)记录A服务的A端口所引用的库表内容、B服务的B端口所引用的库表内容以及C服务的C端口所引用的库表内容。将业务层的A服务的A端口硬件化标注处理至服务器乙的c接口,将业务层的B服务的B端口硬件化标注处理至服务器甲的e接口,将业务层的C服务的C端口硬件化标注处理至服务器丁的a接口,这样经标注的链路为服务器乙的c接口——》服务器甲的e接口——》服务器丁的a接口。若选取服务器乙的c接口作为测试节点,那么目标关联数据为数据库调用信息中该c接口所述涉及的库表内容。将上述信息以及业务请求携带的业务参数作为目标测试用例的预期结果,可以验证执行该目标测试用例得到的响应结果是否与业务请求的响应结果匹配、获取的测试节点的相关参数是否与目标关联数据一致、获取的业务层服务对象调用顺序是否与服务调用链路信息一致以及获取的硬件层服务对象调用顺序是否与标注结果匹配。
其中,在利用unittest生成目标测试用例时可以为每个接口创建一个独立的文件,不论该接口是否被选取作为测试节点。当该接口被选取作为测试节点时,可以将表征作为测试节点的信息封装进对应的文件中。通过对这些文件进行扫描实现目标测试用例的生成。
在另一个具体的实施例中,服务端可以将生成的目标测试用例返回给测试客户端(区别于步骤S201所记载的客户端),测试客户端为测试人员提供有用户交互界面以便其查看。在用户交互界面中可以向测试人员呈现:1)目标测试用例所涉及的服务对象,服务对象可以指向业务层服务对象或者硬件层服务对象的一个大类(比如A服务、服务器甲),服务对象也可以指向业务层服务对象或者硬件层服务对象的一个小类(比如A服务的A端口、服务器甲的e接口);2)目标测试用例所涉及的硬件层服务对象的机器属性;3)目标测试用例所涉及的数据库调用信息、这些数据库对应的库表结构以及这些数据库架设于哪些服务器上。其中,1)和2)为实现服务调用链路的自动化展示提供了保障。
当同一业务请求的数量更多和或存在更多不同的业务请求时,对应生成的目标测试用例数量也更多,进而得到测试集。可以在用户交互界面采用脑图模式展示该测试集。在该展示中可以为每个服务对象配置有不同的测试用例,这样可以更清晰的展示测试集的结构性。测试人员可以进行测试用例选择以及触发所选择的测试用例执行,比如通过在用户交互界面点击目标按钮的形式。相应的,用户交互界面为继续为测试人员提供的执行所选择的测试用例的实时过程。其中,可以为每个服务对象设计对应的更细粒度的测试规则进行检查点选择,进而完善原有测试用例。
如图4所示,所述方法还包括:
S206:执行所述目标测试用例;
S207:基于所述目标测试用例的执行情况得到测试数据;
S208:将所述测试数据与所述目标测试用例的预期结果进行对比,得到对比结果。
在一个具体的实施例中,当所述预期结果包括所述业务请求的响应结果、所述服务调用链路信息以及指示标志节点的参数信息时,所述将所述测试数据与所述目标测试用例的预期结果进行对比,得到对比结果,包括:基于所述测试数据确定所述目标测试用例的响应结果,以及对比所述目标测试用例的响应结果与所述业务请求的响应结果,得到第一结果;基于所述测试数据确定所述标志节点的实际关联参数,以及对比所述实际关联参数与所述参数信息,得到第二结果;基于所述测试数据确定获取实际调用链路信息,以及对比所述实际调用链路信息和所述服务调用链路信息,得到第三结果;将所述第一结果、所述第二结果和所述第三结果作为所述对比结果。
比如,业务请求A对应由商户B向用户C转账100元。若在预期结果中:业务请求的响应结果为成功;服务调用链路信息所指示的链路为1服务的1端口-2服务的2端口-3服务的3端口;指示标志节点的参数信息包括经标注的链路为a服务器的a接口-b服务器的b接口-c服务器的c接口、c服务器的c接口(或者说3服务的3端口)为测试节点、测试节点的传入参数等。那么,目标测试用例的响应结果需要指示完成了由商户B向用户C转账100元(参与转账的双方正确、转账路径正确和转账金额正确),则第一结果为合格。标志节点的实际关联参数需要反映执行目标测试用例中调用了上述三个接口、调用顺序与上述经标注的链路一致以及测试节点的传入参数无异,则第二结果为合格。实际调用链路信息需要反映调用顺序与上述所指示的链路一致,则第三结果为合格。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中基于业务请求自动生成目标测试用例,不需要关注该业务请求执行中相关联的硬件层服务对象以及硬件层服务对象涉及的库表结构,能够提高测试用例的生成效率,可以更好的满足需要进行快速测试的场景的需求。基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息,实现对业务请求的执行状态的有效追踪,相应的,这些更具全局性的数据为生成更具准确度的测试用例提供了保障。根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点,在测试规则的指导下选取测试节点,可以保证生成的测试用例更具针对性和实用性。
本发明实施例还提供了一种测试用例生成平台,所述测试用例生成平台包括服务端和测试客户端。服务端基于业务请求执行上述实施例所提供的测试用例生成方法。
在图5所示的架构中,为测试用例生成平台所设计的架构包括三层:
1、web层:用于提供用户交互界面,可以接收测试人员的输入数据。具体的,该web层可以对应测试客户端。当然,业务请求可以由测试人员通过测试客户端发送给服务端。如图6所述,web层可以展示生成测试用例、以测试用例创建测试任务以及检查测试任务的执行结果的相关流程,在相关流程中测试人员可以进行数据输入。
2、业务逻辑层:该层集中了业务规则的制定、业务流程的实现等与业务需求有关的系统设计,可参见图7。其中,库表监控模块可以对应前述数据收集代理模块。接口生成模块可用于将业务层服务对象作接口抽象。
参照步骤S201-S208的相关记载,模调收集代理模块还可以监控接口的返回结果以及服务对象调用链路中的耗时信息等。
3、数据层:该层负责数据库的访问管理,对目标测试用例的执行结果进行持久落地,对执行目标测试用例中调用的服务对象信息以及服务对象涉及的库表内容作非持久性存储。可以利用redis(一个键-值存储系统)来存储需要作非持久性存储的数据,设置过期时间实现自动过期。参照步骤S202的相关记载,作为备机的数据收集代理模块将同步得到的数据写入redis中以便这些数据在后续对比中使用。需要说明的是,在生成目标测试用例(可以作持久性存储)后,对对应业务请求的执行结果、执行对应业务请求中调用的服务对象信息以及服务对象涉及的库表内容可以作非持久性存储。
基于上述架构设计,环境组网信息可维护多套(比如11套)针对商户、用户、订单等业务逻辑处理的核心测试环境,每套测试环境的部署时长短,可以保持在10分钟以内。用例生成模块提高了测试用例的生成速度,在部分项目版本测试过程中发挥着重要作用。比如,全量命令字测试时间在实际应用中可以从4天的时长缩短为15分钟,效果明显。此外,对于容灾相关用例,根据模调收集代理模块收集的数据自动检查接口路由信息也可以从3天的时长缩短为40分钟。
本发明实施例还提供了一种测试用例生成装置,如图8所示,所述装置包括:
请求接收模块810:用于接收业务请求;
信息获取模块820:用于执行所述业务请求,以及基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息;
节点选取模块830:用于根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点;
数据得到模块840:用于基于所述测试节点和所述数据库调用信息得到目标关联数据;
用例生成模块850:用于基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例。
需要说明的,所述装置实施例中的装置与方法实施例基于同样的发明构思。
本发明实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的测试用例生成方法。
进一步地,图9示出了一种用于实现本发明实施例所提供的测试用例生成方法的电子设备的硬件结构示意图,所述电子设备可以参与构成或包含本发明实施例所提供的测试用例生成装置。如图9所示,电子设备90可以包括一个或多个(图中采用902a、902b,……,902n来示出)处理器902(处理器902可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器904、以及用于通信功能的传输装置906。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图9所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备90还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。
应当注意到的是上述一个或多个处理器902和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到电子设备90(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器904可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器902通过运行存储在存储器94内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种测试用例生成方法。存储器904可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器904可进一步包括相对于处理器902远程设置的存储器,这些远程存储器可以通过网络连接至电子设备90。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置906用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备90的通信供应商提供的无线网络。在一个实例中,传输装置906包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实施例中,传输装置906可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与电子设备90(或移动设备)的用户界面进行交互。
本发明的实施例还提供了一种存储介质,所述存储介质可设置于电子设备之中以保存用于实现方法实施例中一种测试用例生成方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的测试用例生成方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种测试用例生成方法,其特征在于,所述方法包括:
接收业务请求;
执行所述业务请求,以及基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息;
根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点;
基于所述测试节点和所述数据库调用信息得到目标关联数据;
基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例。
2.根据权利要求1所述的方法,其特征在于,所述根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点之前,所述方法还包括:
获取本地环境配置信息;
根据本地环境配置信息对所述所指示的链路作标注处理,得到标注结果;
相应的,所述根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点,包括:
根据所述测试规则从经标注的链路中选取出所述测试节点;
所述基于所述测试节点和所述数据库调用信息得到目标关联数据,包括:
从所述数据库调用信息中提取出与所述测试节点对应的目标数据库信息;
将所述目标数据库信息作为所述目标关联数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例,包括:
将所述业务请求作为输入条件;
将所述业务请求携带的业务参数、所述服务调用链路信息、所述标注结果和所述目标关联数据作为预期结果;
基于所述输入条件和所述预期结果生成所述目标测试用例。
4.根据权利要求2所述的方法,其特征在于,所述获取本地环境配置信息之前,所述方法还包括:
确定业务属性;
基于所述业务属性构建运行环境;
相应的,所述获取本地环境配置信息,包括:
基于所述运行环境获取所述本地环境配置信息,所述本地环境配置信息包括以下至少之一:设备名称、设备所属的集群信息、设备的接口信息、设备的网络信息以及数据库的字段支持信息。
5.根据权利要求1所述的方法,其特征在于,所述基于所述业务请求、所述服务调用链路信息和所述数据库调用信息得到目标测试用例之后,所述方法还包括:
执行所述目标测试用例;
基于所述目标测试用例的执行情况得到测试数据;
将所述测试数据与所述目标测试用例的预期结果进行对比,得到对比结果。
6.根据权利要求5所述的方法,其特征在于,当所述预期结果包括所述业务请求的响应结果、所述服务调用链路信息以及指示标志节点的参数信息时,所述将所述测试数据与所述目标测试用例的预期结果进行对比,得到对比结果,包括:
基于所述测试数据确定所述目标测试用例的响应结果,以及对比所述目标测试用例的响应结果与所述业务请求的响应结果,得到第一结果;
基于所述测试数据确定所述标志节点的实际关联参数,以及对比所述实际关联参数与所述参数信息,得到第二结果;
基于所述测试数据确定获取实际调用链路信息,以及对比所述实际调用链路信息和所述服务调用链路信息,得到第三结果;
将所述第一结果、所述第二结果和所述第三结果作为所述对比结果。
7.根据权利要求1所述的方法,其特征在于,所述获取所述数据库调用信息之前,所述方法还包括:
基于数据库复制协议配置监控文件;
相应的,所述获取所述数据库调用信息,包括:
运行所述监控文件获取所述数据库调用信息。
8.一种测试用例生成装置,其特征在于,所述装置包括:
请求接收模块:用于接收业务请求;
信息获取模块:用于执行所述业务请求,以及基于所述业务请求的执行情况获取服务调用链路信息和数据库调用信息;
节点选取模块:用于根据测试规则从所述服务调用链路信息所指示的链路中选取出测试节点;
数据得到模块:用于基于所述测试节点和所述数据库调用信息得到目标关联数据;
用例生成模块:用于基于所述业务请求、所述服务调用链路信息和所述目标关联数据生成所述目标测试用例。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-7任一所述的测试用例生成方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-7任一所述的测试用例生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010316948.3A CN111506511A (zh) | 2020-04-21 | 2020-04-21 | 一种测试用例生成方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010316948.3A CN111506511A (zh) | 2020-04-21 | 2020-04-21 | 一种测试用例生成方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111506511A true CN111506511A (zh) | 2020-08-07 |
Family
ID=71877777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010316948.3A Pending CN111506511A (zh) | 2020-04-21 | 2020-04-21 | 一种测试用例生成方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506511A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256591A (zh) * | 2020-11-12 | 2021-01-22 | 北京联创信安科技股份有限公司 | 一种测试用例生成方法、装置、测试设备及存储介质 |
CN112286803A (zh) * | 2020-10-23 | 2021-01-29 | 北京三快在线科技有限公司 | 一种测试用例的检测方法及装置 |
CN112559361A (zh) * | 2020-12-22 | 2021-03-26 | 京东数字科技控股股份有限公司 | 流量回放方法、装置、设备及计算机可读介质 |
CN112817847A (zh) * | 2021-01-28 | 2021-05-18 | 杭州网易再顾科技有限公司 | 数据处理任务的测试方法、装置、电子设备及存储介质 |
CN113032263A (zh) * | 2021-03-25 | 2021-06-25 | 成都新希望金融信息有限公司 | 用例测试处理方法、装置、服务器及可读存储介质 |
CN113448844A (zh) * | 2021-06-21 | 2021-09-28 | 青岛海尔科技有限公司 | 用于回归测试的方法及装置、电子设备 |
CN113590453A (zh) * | 2021-01-28 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 测试用例的生成方法、装置与存储介质 |
CN113849361A (zh) * | 2021-09-28 | 2021-12-28 | 北京百度网讯科技有限公司 | 测试服务节点的方法、装置、设备以及存储介质 |
CN114268569A (zh) * | 2020-09-16 | 2022-04-01 | 中盈优创资讯科技有限公司 | 一种可配置的网络运维验收测试方法及装置 |
CN114741274A (zh) * | 2021-01-08 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 一种异常测试方法及装置 |
WO2023093702A1 (zh) * | 2021-11-25 | 2023-06-01 | 华为技术有限公司 | 一种网络测量方法以及相关装置 |
CN116756044A (zh) * | 2023-08-11 | 2023-09-15 | 杭州罗莱迪思科技股份有限公司 | 一种基于数据链路追踪的rpc远程调试方法、装置及应用 |
-
2020
- 2020-04-21 CN CN202010316948.3A patent/CN111506511A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114268569A (zh) * | 2020-09-16 | 2022-04-01 | 中盈优创资讯科技有限公司 | 一种可配置的网络运维验收测试方法及装置 |
CN114268569B (zh) * | 2020-09-16 | 2023-10-31 | 中盈优创资讯科技有限公司 | 一种可配置的网络运维验收测试方法及装置 |
CN112286803A (zh) * | 2020-10-23 | 2021-01-29 | 北京三快在线科技有限公司 | 一种测试用例的检测方法及装置 |
CN112256591A (zh) * | 2020-11-12 | 2021-01-22 | 北京联创信安科技股份有限公司 | 一种测试用例生成方法、装置、测试设备及存储介质 |
CN112559361A (zh) * | 2020-12-22 | 2021-03-26 | 京东数字科技控股股份有限公司 | 流量回放方法、装置、设备及计算机可读介质 |
CN114741274A (zh) * | 2021-01-08 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 一种异常测试方法及装置 |
CN112817847A (zh) * | 2021-01-28 | 2021-05-18 | 杭州网易再顾科技有限公司 | 数据处理任务的测试方法、装置、电子设备及存储介质 |
CN113590453A (zh) * | 2021-01-28 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 测试用例的生成方法、装置与存储介质 |
CN113032263A (zh) * | 2021-03-25 | 2021-06-25 | 成都新希望金融信息有限公司 | 用例测试处理方法、装置、服务器及可读存储介质 |
CN113448844A (zh) * | 2021-06-21 | 2021-09-28 | 青岛海尔科技有限公司 | 用于回归测试的方法及装置、电子设备 |
CN113849361A (zh) * | 2021-09-28 | 2021-12-28 | 北京百度网讯科技有限公司 | 测试服务节点的方法、装置、设备以及存储介质 |
CN113849361B (zh) * | 2021-09-28 | 2023-08-08 | 北京百度网讯科技有限公司 | 测试服务节点的方法、装置、设备以及存储介质 |
WO2023093702A1 (zh) * | 2021-11-25 | 2023-06-01 | 华为技术有限公司 | 一种网络测量方法以及相关装置 |
CN116756044A (zh) * | 2023-08-11 | 2023-09-15 | 杭州罗莱迪思科技股份有限公司 | 一种基于数据链路追踪的rpc远程调试方法、装置及应用 |
CN116756044B (zh) * | 2023-08-11 | 2023-11-21 | 杭州罗莱迪思科技股份有限公司 | 一种基于数据链路追踪的rpc远程调试方法、装置及应用 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506511A (zh) | 一种测试用例生成方法、装置、电子设备及介质 | |
US10545857B2 (en) | Controlling executions of synchronous and/or non-synchronous operations with asynchronous messages | |
CN114070883B (zh) | 测试资源访问方法、装置、电子设备及存储介质 | |
CN112036577B (zh) | 基于数据形式的应用机器学习的方法、装置和电子设备 | |
CN112035350B (zh) | 针对区块链系统的测试方法、装置及计算机设备 | |
CN109241722A (zh) | 用于获取信息的方法、电子设备和计算机可读介质 | |
CN110795697A (zh) | 逻辑表达式的获取方法、装置、存储介质以及电子装置 | |
CN110007921A (zh) | 一种代码发布方法及装置 | |
US11232019B1 (en) | Machine learning based test coverage in a production environment | |
CN113778442A (zh) | 一种系统菜单生成方法、装置、设备及存储介质 | |
CN110019363A (zh) | 一种校验数据的方法和装置 | |
CN115705190A (zh) | 依赖程度的确定方法及装置 | |
EP2835774A1 (en) | A method and device for executing an enterprise process | |
CN113420288B (zh) | 一种容器镜像敏感信息检测系统及方法 | |
CN112579406A (zh) | 一种日志调用链生成方法和装置 | |
CN113392002B (zh) | 一种测试系统构建方法、装置、设备及存储介质 | |
CN109656825A (zh) | 美术资源处理的方法及装置、电子设备、存储介质 | |
CN114648323A (zh) | 面向业务场景的调用链处理方法、装置及介质 | |
CN112306848B (zh) | 微服务系统的架构视图生成方法及装置 | |
CN113495498A (zh) | 用于硬件设备的模拟方法、模拟器、设备和介质 | |
CN114428723A (zh) | 测试系统、系统测试方法、相关设备及存储介质 | |
CN113992664A (zh) | 一种集群通信的方法、相关装置及存储介质 | |
CN109614566A (zh) | 流量来源分析方法、系统和装置 | |
US20230394026A1 (en) | Techniques for learning the best order of identifiers system in an online manner | |
CN116627812A (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 |