CN112463605B - 自动化测试方法及装置、存储介质、电子设备 - Google Patents

自动化测试方法及装置、存储介质、电子设备 Download PDF

Info

Publication number
CN112463605B
CN112463605B CN202011345860.0A CN202011345860A CN112463605B CN 112463605 B CN112463605 B CN 112463605B CN 202011345860 A CN202011345860 A CN 202011345860A CN 112463605 B CN112463605 B CN 112463605B
Authority
CN
China
Prior art keywords
test
scene
tested
data
configuration parameters
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.)
Active
Application number
CN202011345860.0A
Other languages
English (en)
Other versions
CN112463605A (zh
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.)
Hangzhou Netease Cloud Music Technology Co Ltd
Original Assignee
Hangzhou Netease Cloud Music Technology 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 Hangzhou Netease Cloud Music Technology Co Ltd filed Critical Hangzhou Netease Cloud Music Technology Co Ltd
Priority to CN202011345860.0A priority Critical patent/CN112463605B/zh
Publication of CN112463605A publication Critical patent/CN112463605A/zh
Application granted granted Critical
Publication of CN112463605B publication Critical patent/CN112463605B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3672Test management
    • G06F11/3692Test management for test results analysis
    • 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/3672Test management
    • G06F11/3676Test management for coverage analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明的实施方式提供了一种自动化测试方法及装置、存储介质、电子设备,涉及软件测试技术领域,该方法包括:对客户端发送的测试请求进行拦截,并根据所述测试请求中包括的待测试场景,查询与所述测试请求对应的配置参数;根据所述配置参数确定所述待测试场景的数据获取路径,并根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,所述场景测试数据是通过对线上接口的真实数据进行录制得到的;根据所述场景测试数据生成测试用例,并将所述测试用例发送至所述客户端,以使得所述客户端根据所述测试用例完成对待测试场景的测试,本发明提高了测试结果的准确率。

Description

自动化测试方法及装置、存储介质、电子设备
技术领域
本发明的实施方式涉及软件测试技术领域,更具体地,本发明的实施方式涉及一种自动化测试方法、自动化测试装置、计算机可读存储介质以及电子设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
客户端的测试,依赖于服务端产生数据,服务端通过http接口为客户端提供数据,不同的场景数据在客户端的功能表现又不一样,要实现客户端不同场景的测试必须先有对应的服务端数据提供。
在一些技术方案中,可以通过直接对接口返回的结果进行模拟,以达到对不同场景的测试。也就是说,在客户端需要对不同场景进行测试时,可以直接利用与该场景对应的预设的值作为请求响应值代替接口真实执行。
但是,预设值并不能完全反应该场景的真实测试情况。
发明内容
但是,在一些技术中,一方面,对于数据结构较为复杂的场景,预设值并不能完全反应该场景的真实测试情况,进而使得测试结果的准确率较低;另一方面,由于只能利用与场景对应的预设的值作为请求响应值代替接口真实执行,不能对该场景在服务端的真实执行结果进行模拟,进而使得该场景的测试结果与真实执行结果之间的差距较大,导致该场景在上线以后容易出现漏洞;再一方面,在对场景对应的预设的值进行模拟的过程中,并不能对该预设的值是否有效进行确认,进而使得该预设的值的精确度较低。
因此在现有技术中,不能通过待测试场景所包括的关键词,直接获取与该关键词对应的场景测试数据,进而根据该场景测试数据对待测试场景进行测试,这是非常令人烦恼的过程。
为此,非常需要一种改进的自动化测试方法、自动化测试装置、计算机可读存储介质以及电子设备,以使测试人员可以直接通过待测试场景所包括的关键词,获取与该关键词对应的场景测试数据,进而根据该场景测试数据对待测试场景进行测试,避免了对于数据结构较为复杂的场景,预设值并不能完全反应该场景的真实测试情况,进而使得测试结果的准确率较低的问题,提高了测试结果的准确率。
在本上下文中,本发明的实施方式期望提供一种自动化测试方法、自动化测试装置、计算机可读存储介质以及电子设备。
根据本公开的一个方面,提供一种自动化测试方法,包括:
对客户端发送的测试请求进行拦截,并根据所述测试请求中包括的待测试场景,查询与所述测试请求对应的配置参数;
根据所述配置参数确定所述待测试场景的数据获取路径,并根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,所述场景测试数据是通过对线上接口的真实数据进行录制得到的;
根据所述场景测试数据生成测试用例,并将所述测试用例发送至所述客户端,以使得所述客户端根据所述测试用例完成对待测试场景的测试。
在本公开的一种示例性实施例中,所述配置参数包括与所述待测试场景对应的接口名称、与所述待测试场景对应的测试用例、测试所述待测试场景所需的关键词以及所述待测试场景需要的目标测试结果。
在本公开的一种示例性实施例中,根据所述配置参数确定所述待测试场景的数据获取路径,包括:
根据所述接口名称,确定是否需要对与所述待测试场景对应的测试用例进行模拟;
其中,所述数据获取路径包括需要对与所述待测试场景对应的测试用例进行模拟,或者不需要对所述测试用例进行模拟。
在本公开的一种示例性实施例中,根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据,包括:
在确定所述数据获取路径为需要对与所述待测试场景对应的测试用例进行模拟时,根据测试所述待测试场景所需要的关键词,从预设的录制回放平台的流量数据库中查询与所述关键词对应的场景测试数据。
在本公开的一种示例性实施例中,所述自动化测试方法还包括:
在确定所述数据获取路径为不需要对所述测试用例进行模拟时,调用所述录制回放平台的应用程序接口,对与所述待测试场景对应的真实流量数据进行回放,得到执行结果;
在确定所述待测试场景中包括子调用集时,判断是否需要利用所述待测试场景所需要的目标测试结果对与所述子调用集对应的所述执行结果进行替换;
在确定不需要利用所述目标测试结果对所述执行结果进行替换时,将所述真实流量数据作为所述场景测试数据。
在本公开的一种示例性实施例中,所述自动化测试方法还包括:
在确定需要利用所述目标测试结果对所述执行结果进行替换时,利用所述目标测试结果对所述执行结果进行替换,并将结果替换后的真实流量数据作为所述场景测试数据。
在本公开的一种示例性实施例中,利用所述目标测试结果对所述执行结果进行替换,包括:
利用所述目标测试结果中包括的目标令牌和/或目标时间戳,对所述执行结果中所包括的当前令牌和/或当前时间戳进行替换。
在本公开的一种示例性实施例中,所述自动化测试方法还包括:
对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据。
在本公开的一种示例性实施例中,所述线上接口包括HTTP接口、远程过程调用接口以及Java方法接口中的一种或多种。
在本公开的一种示例性实施例中,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据,包括:
当检测到所述预设的数据库升级后,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行重新复制,得到新的场景测试数据,以便于对所述场景测试数据进行获取。
根据本公开的一个方面,提供一种自动化测试装置,包括:
参数查询模块,用于对客户端发送的测试请求进行拦截,并根据所述测试请求中包括的待测试场景,查询与所述测试请求对应的配置参数;
测试数据获取模块,用于根据所述配置参数确定所述待测试场景的数据获取路径,并根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,所述场景测试数据是通过对线上接口的真实数据进行录制得到的;
测试用例生成模块,用于根据所述场景测试数据生成测试用例,并将所述测试用例发送至所述客户端,以使得所述客户端根据所述测试用例完成对待测试场景的测试。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的自动化测试方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的自动化测试方法。
根据本发明实施方式的自动化测试方法和自动化测试装置,通过对客户端发送的测试请求进行拦截,并根据测试请求中包括的待测试场景,查询与测试请求对应的配置参数;然后根据配置参数确定待测试场景的数据获取路径,并根据数据获取路径以及配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,场景测试数据是通过对线上接口的真实数据进行录制得到的;最后根据场景测试数据生成测试用例,并将测试用例发送至客户端,以使得客户端根据测试用例完成对待测试的测试,而无需通过与该待测试场景对应的预设的值进行测试,从而显著地降低了由于需要对各待测试场景的预设的值进行模拟导致的时间成本以及人力成本,并且避免了由于对于数据结构较为复杂的场景,预设值并不能完全反应该场景的真实测试情况,进而使得测试结果的准确率较低的问题,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的一种自动化测试方法的流程图;
图2示意性地示出了根据本发明一实施例的一种自动化测试系统的框图;
图3示意性地示出了根据本发明一实施例的一种待测试场景的示例图;
图4示意性地示出了根据本发明一实施例的另一种自动化测试方法的流程图;
图5示意性地示出了根据本发明一实施例的一种对流量数据进行回放的方法流程图;
图6示意性地示出了根据本发明一实施例的一种对流量数据进行录制的方法流程图;
图7示意性地示出了根据本发明一实施例的另一种自动化测试方法的流程图;
图8示意性地示出了根据本发明实施方式的一种自动化测试装置的框图;
图9示意性地示出了根据本发明实施方式的一种用于实现上述自动化测试方法的计算机可读存储介质;
图10示意性地示出了根据本发明实施方式的一种用于实现上述自动化测试方法的电子设备。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种自动化测试方法、自动化测试装置、计算机可读存储介质以及电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,在现有的自动化测试方案中,客户端的测试,依赖于服务端产生数据,服务端通过http接口为客户端提供数据,不同的场景数据在客户端的的功能表现又不一样,要实现客户端不同场景的测试必须先有对应的服务端数据提供;那么如何构建客户端场景需要的服务端数据呢?通常可以通过如下方式进行:一种是,直接Mock掉http接口返回的结果;另一种是,通过数据工厂造出在服务端真实存储的数据;再一种是,利用网关保存的线上http请求数据做Mock使用。其中:
在第一种方式中,Mock是指在测试过程中,对于某些不容易构造或者不容易获取的数据,用一个预设的数据取代正常执行产生的数据的测试方法。用在客户端的测试,就是拿预设的值作为请求响应值代替http接口真实执行。但是,一方面,由于数据产生于服务端,客户端测试人员可能并不了解HTTP接口的逻辑和返回值数据结构,构造Mock值会有一定的沟通调试成本;另一方面,新的Mock值是否有效,不能立刻知道,需要调试确认,有一定时间成本;再一方面,人工设计的Mock值,对于数据结构较复杂的时候,可能不能完全反应真实情况,如个别字段格式不对,客户端按照错误的数据格式测试可能会漏测或者提交无效的bug;进一步的,只能Mock查询接口的响应值,不能Mock服务端方法的执行结果。
在第二种方式中,测试人员(或者开发人员)总是需要构造各种各样的测试数据来满足自己的需求;数据工厂的作用就是提供统一的UI,让测试人员或者开发人员能够快速、简单地生成测试数据,提高测试效率。所谓快速、简单,是指对于其他的(不是这条业务线的)测试、开发人员来说,都能通过简单的输入,生成自己需要的测试数据,而不用去了解接口或者数据库的设计,通过调用接口或者直接写数据库来构造数据;但是,一方面,用户真实使用应用程序时,可能会有很多种无法预料的场景出现,数据工厂只能造已知的场景,场景数注定有限;另一方面,有些场景会非常复杂,如果跨多个应用的多个接口,打通这些本身需要较高的时间成本,数据工厂不一定能立刻支持,进而使得测试效率较低;再一方面,数据工厂依赖服务的稳定,如果是测试环境可能常会遇到服务宕机、服务不稳定的情况,数据工厂也就不能再工作,进而导致测试失败;进一步的,服务经常迭代更新,那么数据工厂也会经常的更新,会有产生维护成本;
在第三种方式中,应用程序和服务器之间存在网关,网关保存所有来自于页面的请求参数和响应值,如果拿网关存储的接口访问数据用在客户端测试场景的数据Mock中,也行的通;而且,网关保存的是真实的用户数据,比人设计Mock数据和数据工厂制造的数据更加符合真实的场景,测试领域追求的场景的真实性用网关记录的http接口数据更能实现。但是,一方面,网关记录的请求数据目前只能用在客户端页面展示功能的测试上,对于需要提交到服务端的功能无法测试,如复杂表单的提交功能,理由如下:一方面是,缺少干预能力,如token验证由于无法干预结果会验证失败,这样造成整个提交到服务端的功能执行失败;另一方面是,缺少数据创建能力,例如页面要校验时间戳,这个时间戳是服务端算法实时生成的,由于无法执行到这个算法,因此时间戳会校验失败。
基于此,本发明的基本思想在于:一方面,通过对客户端发送的测试请求进行拦截,并根据测试请求中包括的待测试场景,查询与测试请求对应的配置参数;然后根据配置参数确定待测试场景的数据获取路径,并根据数据获取路径以及配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,场景测试数据是通过对线上接口的真实数据进行录制得到的;最后根据场景测试数据生成测试用例,并将测试用例发送至客户端,以使得客户端根据测试用例完成对待测试的测试,而无需通过与该待测试场景对应的预设的值进行测试,从而显著地降低了由于需要对各待测试场景的预设的值进行模拟导致的时间成本以及人力成本,并且避免了由于对于数据结构较为复杂的场景,预设值并不能完全反应该场景的真实测试情况,进而使得测试结果的准确率较低的问题,为用户带来了更好的体验;另一方面,通过根据配置参数确定待测试场景的数据获取路径,并根据数据获取路径以及配置参数从预设的数据库中获取待测试场景所需的场景测试数据,再根据场景测试数据生成测试用例,并将测试用例发送至客户端,以使得客户端根据测试用例完成对待测试的测试,避免了在测试环境可能常会遇到服务宕机、服务不稳定的时,数据工厂也就不能再工作,进而导致测试失败的问题;再一方面,通过对客户端发送的测试请求进行拦截,并根据测试请求中包括的待测试场景,查询与测试请求对应的配置参数,进而根据配置参数确定待测试场景的数据获取路径以获取对应的场景测试数据,不再需要对场景测试数据进行人工构造,提高了场景测试数据的获取效率,进而提高了测试效率。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面结合图1来描述根据本发明示例性实施方式的自动化测试方法,该方法可以运行于服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。
参考图1所示,该自动化测试方法可以包括以下步骤:
步骤S110.对客户端发送的测试请求进行拦截,并根据所述测试请求中包括的待测试场景,查询与所述测试请求对应的配置参数;
步骤S120.根据所述配置参数确定所述待测试场景的数据获取路径,并根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,所述场景测试数据是通过对线上接口的真实数据进行录制得到的;
步骤S130.根据所述场景测试数据生成测试用例,并将所述测试用例发送至所述客户端,以使得所述客户端根据所述测试用例完成对待测试场景的测试。
上述自动化测试方法中,通过对客户端发送的测试请求进行拦截,并根据测试请求中包括的待测试场景,查询与测试请求对应的配置参数;然后根据配置参数确定待测试场景的数据获取路径,并根据数据获取路径以及配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,场景测试数据是通过对线上接口的真实数据进行录制得到的;最后根据场景测试数据生成测试用例,并将测试用例发送至客户端,以使得客户端根据测试用例完成对待测试的测试,而无需通过与该待测试场景对应的预设的值进行测试,从而显著地降低了由于需要对各待测试场景的预设的值进行模拟导致的时间成本以及人力成本,并且避免了由于对于数据结构较为复杂的场景,预设值并不能完全反应该场景的真实测试情况,进而使得测试结果的准确率较低的问题,为用户带来了更好的体验。
以下,将结合附图对本发明示例实施例自动化测试方法中涉及的步骤进行详细的解释以及说明。
首先,对本发明中所涉及的专有名词进行如下解释:
Http接口:客户端和服务端通讯的接口,为客户端页面提供数据展示,为用户在客户端填写的数据提交到系统提供入口。
测试场景:从用户使用角度出发,抽象归纳的功能点,如用户登录是一种场景;其中,测试场景实现依赖于接口,复杂场景可能需要很多个接口协同才能实现。
客户端:或称为用户端,为客户提供本地服务的程序,如移动互联网时代广泛使用的应用程序页面,页面上场景的功能可以包括数据展示、数据删除以及数据修改等等。在页面上操作功能可以向服务器端发送一个Http请求,解析该Http请求并做出答复的Java方法即为上述Http接口。
服务端:相对于客户端只在客户本地运行,服务端在服务提供商的服务器上运行,利用网络协议与客户端进行通讯。
线上流量:线上服务器收集到的数据,这些数据是用户在客户端上使用产生的数据通过网络协议传输到线上服务器。
其次,对本发明的发明目的进行解释以及说明。具体的,在移动互联网行业中,客户端(本地软件以及应用程序)更新频繁,一周一个版本、甚至一周多个版本发布,测试工作量巨大。如何快速的构建客户端的测试场景,让测试更容易更迅速呢,问题的核心变成了如何快速给出客户端需要的数据。传统方法费时费力、受服务器限制、且构造的数据不一定就符合真实的场景,用传统方法不能很好的解决快速测试的切实需要。基于此,本发明提出一种利用线上流量数据构造客户端Mock测试的方案。
进一步的,对本发明中所涉及的自动化测试系统进行解释以及说明。
参考图2所示,该自动化测试系统可以包括客户端210、以及服务器端220,客户端以及服务器端通信连接。其中,服务器端可以包括控制器221、拦截器222、应用服务器223、数据库224以及录制回放平台225;控制器、拦截器、应用服务器、数据库以及录制回放平台依次通信连接。其中,控制器用于控制拦截器对客户端发送的测试请求进行拦截,应用服务器用于根据数据获取路径从数据库中获取待测试场景所需的场景测试数据,以及生成测试用例;拦截器负责应用服务器与客户端的通信,并根据配置参数确定待测试场景的数据获取路径,例如对测试请求进行拦截以及将测试用例发送至客户端;数据库用于对场景测试数据进行存储,录制回放平台用于将录制到的场景测试数据存储至数据库中。
举例来说,控制器控制拦截器拦截客户端发来的http接口请求(测试请求),并根据接口名查询配置参数以确定是否走Mock(数据获取路径);同时,拦截器可以利用代理服务器实现,正常http接口执行是客户端与服务端之间的通讯,使用了代理服务器后,变成客户端-代理服务器-应用服务器,代理服务器代管http接口请求走向,客户端只和代理服务器通讯不再和服务端通讯,代理服务器把请求响应值给到客户端。
以下,结合图2对步骤S110-步骤S130进行解释以及说明。
在步骤S110中,对客户端发送的测试请求进行拦截,并根据所述测试请求中包括的待测试场景,查询与所述测试请求对应的配置参数。
在本示例实施例中,当客户端需要对一个或者多个场景进行测试时,可以向服务器端发送测试请求,当测试人员触控该待测试场景对应的控件时,即可发起测试请求,该测试请求可以通过Http接口进行发送。具体的,以某一个音乐类的应用程序为例,参考图3所示,该待测试场景可以包括消息中心、会员信息、发现、我的音乐、账户、游戏中心等等,当然也可以包括其他待测试场景,本示例对此不做特殊限制。
进一步的,当服务器端接收到该测试请求以后,控制器会控制拦截器对该测试请求进行拦截;其中,此处的控制器以及拦截器均为代理服务器;然后,在根据测试请求中包括的待测试场景,查询与该测试请求对应的配置参数;其中,该配置参数包括与所述待测试场景对应的接口名称、与所述待测试场景对应的测试用例、测试所述待测试场景所需的关键词以及所述待测试场景需要的目标测试结果。
举例来说,当测试请求中所包括的待测试场景为测试消息中心时,其对应的接口名称为Http接口,例如可以是/api/info/get,测试用例为需要对所获取到的场景测试数据进行模拟(Mock),关键词可以包括{k1:v1,k2:v2,k3:v3},目标测试结果为不需要利用目标测试结果对场景测试数据的执行结果进行替换。进一步的,当测试请求中所包括的待测试场景为测试会员信息时,其对应的接口名称为Http接口,例如可以是/api/vip/get,测试用例为不需要对所获取到的场景测试数据进行模拟(Mock),关键词为空(由于存在子调用集,每一个子调用集所对应的关键词不同,例如,其中的一个子调用集为用户真实性验证,另一个子调用集为会员信息字段组装),目标测试结果为需要利用目标测试结果对场景测试数据的执行结果进行替换。
此处需要补充说明的是,上述所列举的待测试场景仅仅起到示例性作用,同时,每一个待测试场景所需要的配置参数均预先存储在代理服务器中,当拦截器对测试请求拦截以后,可以直接对各测试请求的配置参数进行查询。
在步骤S120中,根据所述配置参数确定所述待测试场景的数据获取路径,并根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,所述场景测试数据是通过对线上接口的真实数据进行录制得到的。
在本示例实施例中,首先,根据配置参数确定待测试场景的数据获取路径,具体的可以包括:根据所述接口名称,确定是否需要对与所述待测试场景对应的测试用例进行模拟;其中,所述数据获取路径包括需要对与所述待测试场景对应的测试用例进行模拟,或者不需要对所述测试用例进行模拟。
其中,具体的路径确定过程中可以参考如下表1所示:
表1
例如,在表1中,当接口名称为:/api/info/get,则确定需要对与待测试场景对应的测试用例进行模拟;当接口名称为:/api/vip/get时,则确定不需要对与待测试场景对应的测试用例进行模拟。此处需要补充说明的是,该接口名称是根据测试场景生成的,是否需要对测试用例进行模拟都是事先配置好了的,直接查询即可。
进一步的,在本示例实施例中,当得到数据获取路径以后,还需要根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据。具体的,在确定所述数据获取路径为需要对与所述待测试场景对应的测试用例进行模拟时,根据测试所述待测试场景所需要的关键词,从预设的录制回放平台的流量数据库中查询与所述关键词对应的场景测试数据;其中,该流量数据库可以包括Redis、DataBase以及MemCache等等。具体的,继续参考上述表1所示,其对应的关键词可以为:k1、k2以及k3,当得到该关键词以后,即可从预设的流量数据库中查询对应的场景测试数据(流量数据),也即v1、v2以及v3。
举例来说,当需要对会员信息进行测试时,其对应的关键词可以包括:会员每个月的费用、会员权限、会员所剩的时间、当前的会员等级等等;当需要对消息中心进行测试时,其对应的关键词可以包括消息数量、已读消息数量、未读消息数量、来自XX的消息等等。当然,此处所列举的关键词仅起到示例性作用,并未有任何的技术参考作用。
进一步的,当不需要对所述测试用例进行模拟时,参考图4所示,该自动化测试方法还可以包括步骤S410-步骤S430。其中:
在步骤S410中,在确定所述数据获取路径为不需要对所述测试用例进行模拟时,调用所述录制回放平台的应用程序接口,对与所述待测试场景对应的真实流量数据进行回放,得到执行结果。
在步骤S420中,在确定所述待测试场景中包括子调用集时,判断是否需要利用所述待测试场景所需要的目标测试结果对与所述子调用集对应的所述执行结果进行替换。
在步骤S430中,在确定不需要利用所述目标测试结果对所述执行结果进行替换时,将所述真实流量数据作为所述场景测试数据。
以下,将对步骤S410-步骤S430进行解释以及说明。具体的,继续参考表1所示,当对会员信息进行测试时,其数据获取路径为不需要对测试用例进行模拟,则可以直接调用录制回放平台的应用程序接口,对与待测试场景对应的真实流量数据进行回放,进而得到执行结果。其中,对真实流量数据进行回放可以基于jvm-sandbox-repeater工具进行实现,其中,jvm-sandbox-repeater是一种利用字节码增强技术实现的录制回放工具,可对http接口、java方法做录制回放。参考图5所示,具体的回放过程可以包括以下步骤:
步骤S510,以http接口为入口,调用录制回放平台的应用程序接口,该应用程序接口可以是repeater-console的回放接口;
步骤S520,repeater-console通过调用repeater提供的回放任务(真实流量数据)接收接口下发回放任务;
步骤S530,对真实流量数据进行回放,得到上述执行结果,并对该执行结果进行保存。
此处需要补充说明的是,具体的回放过程是通过线下服务进行的,其目的是为了减少应用服务器的负担。其中,线下服务指的是测试环境、回归测试环境,部署着和线上服务相似的代码,区别是线下服务访问线下数据库、线下中间件。
进一步的,当得到执行结果以后,在确定待测试场景中包括子调用集(例如用户真实性验证)时,判断是否需要利用待测试场景所需要的目标测试结果对与子调用集对应的执行结果进行替换;如果不需要替换,则直接将该真实流量数据作为场景测试数据;
同时,在确定需要利用所述目标测试结果对所述执行结果进行替换时,利用所述目标测试结果对所述执行结果进行替换,并将结果替换后的真实流量数据作为所述场景测试数据;其中,利用目标测试结果对执行结果进行替换可以包括:利用所述目标测试结果中包括的目标令牌和/或目标时间戳,对所述执行结果中所包括的当前令牌和/或当前时间戳进行替换。
举例来说,当需要利用目标测试结果对用户真实性验证结果或者会员信息字段组装进行替换时,则可以直接利用所需要的目标测试结果对其进行替换即可。具体的替换方法为,在执行结果前后插入代码,以实现替换。通过该方法,可以解决现有技术中由于缺少干预能力,如token验证由于无法干预结果会验证失败,这样造成整个提交到服务端的功能执行失败的问题;还可以解决现有技术中由于缺少数据创建能力,例如页面要校验时间戳,这个时间戳是服务端算法实时生成的,由于无法执行到这个算法,因此时间戳会校验失败的问题;具体理由如下:本申请所提供的自动化测试方法,在存在子调用集时,可以判断是否需要对子调用进行Mock,如果需要对子调用进行Mock,则直接利用目标测试结果对执行结果进行替换,在对子调用进行Mock的过程中,可以利用目标时间戳对执行结果中所包括的时间戳进行替换,也可以利用目标token对执行结果中所包括的token进行替换,进而解决上述问题;具体的替换过程为:可以在需要替换的时间戳以及token对应的位置加入代码,进而实现替换。
此处需要进一步补充说明的是,由于Http接口是入口,可以调用很多Java方法来分别实现计算、查询、组装数据等子功能,一系列子调用执行完后生成最终的响应值给到客户端;过程一般是:客户端-http入口-java method1-java method2-http入口-客户端;在发起回放的过程中,以http接口为入口,调用录制回放平台api发起回放,将http的接口在线下服务重新执行一遍,生成响应值;http接口的中间执行链路(子调用)做Mock,通过干预中间链路的执行结果,最终影响http接口的响应值,进而起到Mock作用,当然可以不进行Mock。并且,子调用都是java方法,因此可通过回放来干预子调用结果,由于http接口功能是由子调用组合而成的,因此干预子调用结果也就干预了http接口的结果,进而解决上述由于缺少干预能力,如token验证由于无法干预结果而会导致验证失败,这样造成整个提交到服务端的功能执行失败的问题;另外,干预子调用结果还可以解决现有技术中由于缺少数据创建能力,例如页面要校验时间戳,这个时间戳是服务端算法实时生成的,由于无法执行到这个算法,因此时间戳会校验失败的技术问题。
在步骤S130中,根据所述场景测试数据生成测试用例,并将所述测试用例发送至所述客户端,以使得所述客户端根据所述测试用例完成对待测试场景的测试。
具体的,当得到上述场景测试数据以后,可以对该场景测试数据进行计算以及组装,进而生成测试用例;在通过Http接口将该测试用例发送至客户端,以使得客户端根据该测试用例完成对待测试场景的测试。例如,当待测试场景为测试会员信息以后,可以将得到的用户真实性验证的场景测试数据以及会员信息字段组装的场景测试数据进行组装,进而得到测试会员信息的测试用例,以实现对该待测试场景的测试。
以下,对本发明所涉及到的场景测试数据的具体录制过程进行解释以及说明。具体的,为了可以便于从预设的数据库中获取场景测试数据,还需要预先对该场景测试数据进行录制并存储,具体的录制可以基于jvm-sandbox-repeater工具进行实现。基于此,该自动化测试方法还可以包括:对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据;其中,该线上接口可以包括HTTP接口、远程过程调用接口以及Java方法接口等等。具体的,参考图6所示,具体的复制(录制)过程可以包括以下步骤:
步骤S610,repeater启动对某一线上接口的复制;
步骤S620,接收对该接口的复制请求,并通知repeater;
步骤S630,repeater对事件进行给过滤和采样计算,并对满足复制条件的复制请求,对通过HTTP接口或者远程过程调用接口或者Java方法接口发送的与该复制请求对应的配置参数和响应值,以及子调用和响应值进行复制,得到场景测试数据;
步骤S640,将该场景测试数据存储至预设的数据库中。
此处需要进一步解释说明的是,为了解决现有技术中当服务端代码更新调整后,Mock和数据工厂的方式都需要相应的调整,有一定的工作量,维护成本较大的问题,在具体的录制过程中,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据还可以包括:当检测到所述预设的数据库升级后,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行重新复制,得到新的场景测试数据,以便于对所述场景测试数据进行获取。也就是说,当监测到数据库升级或者更新后,只需要重新录制最新的流量数据就行,无需对数据库进行调整;同时,录制触发(触发时机可以包括定时触发,也可以是手动触发,具体可以根据应用服务器当前的压力大小进行决定,即如果应用服务器当前压力较大,则不进行录制,如果应用服务器压力较小,则可以随时触发录制)简单无需人工值守,几乎没有成本,进而达到解决上述技术问题的目的。
以下,将结合图7对本发明所提供的自动化测试方法进行进一步的解释以及说明。参考图7所示,该自动化测试方法可以包括以下步骤:
步骤S710,客户端通过Http接口发送测试请求;
步骤S720,拦截器拦截测试请求,并查询测试请求所需要的配置参数;
步骤S730,根据配置参数判断是否需要对测试用例进行Mock;如果是,跳转至步骤S740,如果否,跳转至步骤S750;
步骤S740,查询录制的流量数据,并将其作为场景测试数据返回;
步骤S750,对真实流量数据进行回放,得到执行结果,并判断子调用是否Mock;如果是,则跳转至步骤S770,如果否,则跳转至步骤S760;
步骤S760,将真实流量数据作为场景测试数据返回;
步骤S770,利用目标测试结果对执行结果进行替换,并将结果替换后的真实流量数据作为场景测试数据返回;
步骤S780,拦截器根据返回的场景测试数据生成测试用例并将测试用例发送至客户端;
步骤S790,客户端根据接收到的测试用例完成测试。
本发明提出的一种利用线上流量数据构造客户端Mock测试的方案,特点是低成本、配置化、使用灵活、能Mock非接口方法,相比传统方法有这些优势:
一方面,数据来自于线上,是真实用户使用的数据,非人工设计,解决了数据工厂和Mock两种人工设计数据方式可能带来的数据不真实的风险;同时,利用收集到的庞大线上流量数据,批量对客户端做回归测试,可弥补人工设计测试用例考虑不全面导致的漏测;
另一方面,线上录制的http接口数据,根据测试场景关键词筛选出需要的拿来做Mock,不需要客户端测试人员了解接口返回的数据格式、以及返回哪些字段,因为线上的数据就是对的,这就解决了客户端测试人员Mock服务端接口数据时需要的沟通调试成本;
再一方面,当服务端代码更新调整后,Mock和数据工厂的方式都需要相应的调整,有一定的工作量,维护成本较大,本发明只需要重新录制最新的流量数据就行,录制触发简单无需人工值守,几乎没有成本;同时,Mock和数据工厂的数据由于人工设计,测试人员要设计出所有场景的数据几乎不可能,且沉淀较全面的场景数据也需要日积月累,时间跨度长,但线上访问量大,短时间的线上流量就能覆盖较全的场景,因此短期的录制就能满足场景数据全面性的需要;
进一步的,本发明可以录制http接口、rpc接口、普通java方法的数据,并支持回放;回放时,可对持久层或者其他代码做Mock,拿符合场景需要的结果替换掉真实执行产生的结果,快速打通数据链路,构建客户端需要的终端数据;将流量拦截和回放结合,实现全Mock能力和子调用不执行的部分Mock能力,Mock能力更全面。并且,回放和Mock都是配置化的,一键启动无人值守,相比于于数据工厂方式的真实服务调用,更轻便更灵活。
最后,本发明相比网关记录http接口请求数据的方式,具备结果干预能力和实时数据创建能力。例如接口token验证的问题,可以通过Mock掉token验证结果,让整个接口数据可用;时间戳临时生成,可通过回放时间戳生成方法来构建一个。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图8对本发明示例性实施方式的自动化测试装置进行介绍。
参考图8所示,该自动化测试装置可以包括参数查询模块810、测试数据获取模块820以及测试用例生成模块830。其中:
参数查询模块810可以用于对客户端发送的测试请求进行拦截,并根据所述测试请求中包括的待测试场景,查询与所述测试请求对应的配置参数;
测试数据获取模块820可以用于根据所述配置参数确定所述待测试场景的数据获取路径,并根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,所述场景测试数据是通过对线上接口的真实数据进行录制得到的;
测试用例生成模块830可以用于根据所述场景测试数据生成测试用例,并将所述测试用例发送至所述客户端,以使得所述客户端根据所述测试用例完成对待测试场景的测试。
在本公开的一种示例性实施例中,所述配置参数包括与所述待测试场景对应的接口名称、与所述待测试场景对应的测试用例、测试所述待测试场景所需的关键词以及所述待测试场景需要的目标测试结果。
在本公开的一种示例性实施例中,根据所述配置参数确定所述待测试场景的数据获取路径,包括:
根据所述接口名称,确定是否需要对与所述待测试场景对应的测试用例进行模拟;
其中,所述数据获取路径包括需要对与所述待测试场景对应的测试用例进行模拟,或者不需要对所述测试用例进行模拟。
在本公开的一种示例性实施例中,根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据,包括:
在确定所述数据获取路径为需要对与所述待测试场景对应的测试用例进行模拟时,根据测试所述待测试场景所需要的关键词,从预设的录制回放平台的流量数据库中查询与所述关键词对应的场景测试数据。
在本公开的一种示例性实施例中,所述测试数据获取模块820还可以用于:
在确定所述数据获取路径为不需要对所述测试用例进行模拟时,调用所述录制回放平台的应用程序接口,对与所述待测试场景对应的真实流量数据进行回放,得到执行结果;
在确定所述待测试场景中包括子调用集时,判断是否需要利用所述待测试场景所需要的目标测试结果对与所述子调用集对应的所述执行结果进行替换;
在确定不需要利用所述目标测试结果对所述执行结果进行替换时,将所述真实流量数据作为所述场景测试数据。
在本公开的一种示例性实施例中,所述测试数据获取模块820还可以用于:
在确定需要利用所述目标测试结果对所述执行结果进行替换时,利用所述目标测试结果对所述执行结果进行替换,并将结果替换后的真实流量数据作为所述场景测试数据。
在本公开的一种示例性实施例中,利用所述目标测试结果对所述执行结果进行替换,包括:
利用所述目标测试结果中包括的目标令牌和/或目标时间戳,对所述执行结果中所包括的当前令牌和/或当前时间戳进行替换。
在本公开的一种示例性实施例中,所述自动化测试装置还包括:
数据复制模块,可以用于对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据。
在本公开的一种示例性实施例中,所述线上接口包括HTTP接口、远程过程调用接口以及Java方法接口中的一种或多种。
在本公开的一种示例性实施例中,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据,包括:
当检测到所述预设的数据库升级后,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行重新复制,得到新的场景测试数据,以便于对所述场景测试数据进行获取。
示例性存储介质
在介绍了本发明示例性实施方式的弹窗处理方法和弹窗处理装置之后,接下来,参考图9对本发明示例性实施方式的存储介质进行说明。
参考图9所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性电子设备
在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图对本发明示例性实施方式的电子设备进行说明。
在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图7对本发明示例性实施方式的电子设备进行说明。
图10显示的电子设备1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030、显示单元1040。
其中,所述存储单元1020存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1010可以执行如图1中所示的步骤S110-S130。
存储单元1020可以包括易失性存储单元,例如随机存取存储单元(RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以包括数据总线、地址总线和控制总线。
电子设备1000也可以通过输入/输出(I/O)接口1050,与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了弹窗处理装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (16)

1.一种自动化测试方法,配置于服务器端,所述自动化测试方法包括:
控制拦截器对客户端发送的测试请求进行拦截,并根据所述测试请求中包括的待测试场景,查询与所述测试请求对应的配置参数;所述配置参数包括与所述待测试场景对应的接口名称、与所述待测试场景对应的测试用例、测试所述待测试场景所需的关键词以及所述待测试场景需要的目标测试结果;
根据所述配置参数确定所述待测试场景的数据获取路径,并根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,所述场景测试数据是通过对线上接口的真实数据进行录制得到的;
根据所述场景测试数据生成测试用例,并将所述测试用例发送至所述客户端,以使得所述客户端根据所述测试用例完成对待测试场景的测试;
其中,根据所述配置参数确定所述待测试场景的数据获取路径,包括:根据所述配置参数中的与所述待测试场景对应的接口名称,确定是否需要对与所述待测试场景对应的测试用例进行模拟;其中,所述数据获取路径包括需要对与所述待测试场景对应的测试用例进行模拟,或者不需要对所述测试用例进行模拟;
根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据,包括:在确定所述数据获取路径为需要对与所述待测试场景对应的测试用例进行模拟时,根据测试所述待测试场景所需要的关键词,从预设的录制回放平台的流量数据库中查询与所述关键词对应的场景测试数据。
2.根据权利要求1所述的自动化测试方法,其中,所述自动化测试方法还包括:
在确定所述数据获取路径为不需要对所述测试用例进行模拟时,调用所述录制回放平台的应用程序接口,对与所述待测试场景对应的真实流量数据进行回放,得到执行结果;
在确定所述待测试场景中包括子调用集时,判断是否需要利用所述待测试场景所需要的目标测试结果对与所述子调用集对应的所述执行结果进行替换;
在确定不需要利用所述目标测试结果对所述执行结果进行替换时,将所述真实流量数据作为所述场景测试数据。
3.根据权利要求2所述的自动化测试方法,其中,所述自动化测试方法还包括:
在确定需要利用所述目标测试结果对所述执行结果进行替换时,利用所述目标测试结果对所述执行结果进行替换,并将结果替换后的真实流量数据作为所述场景测试数据。
4.根据权利要求3所述的自动化测试方法,其中,利用所述目标测试结果对所述执行结果进行替换,包括:
利用所述目标测试结果中包括的目标令牌和/或目标时间戳,对所述执行结果中所包括的当前令牌和/或当前时间戳进行替换。
5.根据权利要求1-4任一项所述的自动化测试方法,其中,所述自动化测试方法还包括:
对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据。
6.根据权利要求5所述的自动化测试方法,其中,所述线上接口包括HTTP接口、远程过程调用接口以及Java方法接口中的一种或多种。
7.根据权利要求6所述的自动化测试方法,其中,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据,包括:
当检测到所述预设的数据库升级后,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行重新复制,得到新的场景测试数据,以便于对所述场景测试数据进行获取。
8.一种自动化测试装置,配置于服务器端,所述自动化测试装置包括:
参数查询模块,用于控制拦截器对客户端发送的测试请求进行拦截,并根据所述测试请求中包括的待测试场景,查询与所述测试请求对应的配置参数;所述配置参数包括与所述待测试场景对应的接口名称、与所述待测试场景对应的测试用例、测试所述待测试场景所需的关键词以及所述待测试场景需要的目标测试结果;
测试数据获取模块,用于根据所述配置参数确定所述待测试场景的数据获取路径,并根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据;其中,所述场景测试数据是通过对线上接口的真实数据进行录制得到的;
测试用例生成模块,用于根据所述场景测试数据生成测试用例,并将所述测试用例发送至所述客户端,以使得所述客户端根据所述测试用例完成对待测试场景的测试;
其中,根据所述配置参数确定所述待测试场景的数据获取路径,包括:根据所述配置参数中的与所述待测试场景对应的接口名称,确定是否需要对与所述待测试场景对应的测试用例进行模拟;其中,所述数据获取路径包括需要对与所述待测试场景对应的测试用例进行模拟,或者不需要对所述测试用例进行模拟;
根据所述数据获取路径以及所述配置参数从预设的数据库中获取待测试场景所需的场景测试数据,包括:在确定所述数据获取路径为需要对与所述待测试场景对应的测试用例进行模拟时,根据测试所述待测试场景所需要的关键词,从预设的录制回放平台的流量数据库中查询与所述关键词对应的场景测试数据。
9.根据权利要求8所述的自动化测试装置,其中,所述测试数据获取模块还用于:
在确定所述数据获取路径为不需要对所述测试用例进行模拟时,调用所述录制回放平台的应用程序接口,对与所述待测试场景对应的真实流量数据进行回放,得到执行结果;
在确定所述待测试场景中包括子调用集时,判断是否需要利用所述待测试场景所需要的目标测试结果对与所述子调用集对应的所述执行结果进行替换;
在确定不需要利用所述目标测试结果对所述执行结果进行替换时,将所述真实流量数据作为所述场景测试数据。
10.根据权利要求9所述的自动化测试装置,其中,所述测试数据获取模块还用于:
在确定需要利用所述目标测试结果对所述执行结果进行替换时,利用所述目标测试结果对所述执行结果进行替换,并将结果替换后的真实流量数据作为所述场景测试数据。
11.根据权利要求10所述的自动化测试装置,其中,利用所述目标测试结果对所述执行结果进行替换,包括:
利用所述目标测试结果中包括的目标令牌和/或目标时间戳,对所述执行结果中所包括的当前令牌和/或当前时间戳进行替换。
12.根据权利要求8-11任一项所述的自动化测试装置,其中,所述自动化测试装置还包括:
数据复制模块,用于对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据。
13.根据权利要求12所述的自动化测试装置,其中,所述线上接口包括HTTP接口、远程过程调用接口以及Java方法接口中的一种或多种。
14.根据权利要求12所述的自动化测试装置,其中,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行复制,得到所述场景测试数据,包括:
当检测到所述预设的数据库升级后,对用户通过所述线上接口发送的配置参数,以及与所述配置参数对应的响应值进行重新复制,得到新的场景测试数据,以便于对所述场景测试数据进行获取。
15.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的自动化测试方法。
16.一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的自动化测试方法。
CN202011345860.0A 2020-11-26 2020-11-26 自动化测试方法及装置、存储介质、电子设备 Active CN112463605B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011345860.0A CN112463605B (zh) 2020-11-26 2020-11-26 自动化测试方法及装置、存储介质、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011345860.0A CN112463605B (zh) 2020-11-26 2020-11-26 自动化测试方法及装置、存储介质、电子设备

Publications (2)

Publication Number Publication Date
CN112463605A CN112463605A (zh) 2021-03-09
CN112463605B true CN112463605B (zh) 2024-03-15

Family

ID=74809447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011345860.0A Active CN112463605B (zh) 2020-11-26 2020-11-26 自动化测试方法及装置、存储介质、电子设备

Country Status (1)

Country Link
CN (1) CN112463605B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948272A (zh) * 2021-04-16 2021-06-11 西安京迅递供应链科技有限公司 基于生产环境的数据测试系统功能方法、装置及相关设备
CN113254332A (zh) * 2021-05-14 2021-08-13 山东英信计算机技术有限公司 一种存储系统多场景测试方法、系统、终端及存储介质
CN113315828B (zh) * 2021-05-25 2022-11-29 平安银行股份有限公司 一种流量录制方法、装置及流量录制设备、存储介质
CN113791971A (zh) * 2021-08-13 2021-12-14 唯品会(广州)软件有限公司 一种Mock测试方法、装置、设备及计算机可读介质
CN113505082B (zh) * 2021-09-09 2021-12-14 腾讯科技(深圳)有限公司 应用程序测试方法及装置
CN114138651A (zh) * 2021-12-03 2022-03-04 马上消费金融股份有限公司 测试数据的生成方法及装置
CN114610605A (zh) * 2022-02-24 2022-06-10 海南乾唐视联信息技术有限公司 测试方法、装置、终端设备和存储介质
CN114356785B (zh) * 2022-03-11 2022-05-20 中航信移动科技有限公司 一种数据处理方法、装置、电子设备及存储介质
CN115114132A (zh) * 2022-07-26 2022-09-27 北京安华金和科技有限公司 一种审计程序的性能测试方法和系统
CN115834443A (zh) * 2022-09-07 2023-03-21 深圳依时货拉拉科技有限公司 流量回放方法、装置、计算机设备和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515883A (zh) * 2014-09-22 2016-04-20 阿里巴巴集团控股有限公司 一种测试方法及系统
EP3026563A1 (fr) * 2014-11-25 2016-06-01 Bull S.A.S. Methodes et systemes de generation de scenarios de tests de performances d'une application serveur
CN107885186A (zh) * 2017-09-30 2018-04-06 惠州市德赛西威汽车电子股份有限公司 一种汽车空调控制器人机交互功能的自动测试方法及系统
CN109656806A (zh) * 2018-10-29 2019-04-19 口碑(上海)信息技术有限公司 一种接口数据的回放测试方法及装置
CN109684196A (zh) * 2018-11-01 2019-04-26 北京中清龙图网络技术有限公司 一种测试方法及装置
CN110008117A (zh) * 2019-03-12 2019-07-12 深圳壹账通智能科技有限公司 页面测试方法、装置、计算机设备和存储介质
CN110083543A (zh) * 2019-05-07 2019-08-02 江苏满运软件科技有限公司 回归测试方法、装置、电子设备及存储介质
CN110245078A (zh) * 2019-05-24 2019-09-17 平安国际智慧城市科技股份有限公司 一种软件的压力测试方法、装置、存储介质和服务器
CN110874318A (zh) * 2018-08-31 2020-03-10 浙江宇视科技有限公司 软件测试方法、装置及计算机可读存储介质
CN111522728A (zh) * 2019-12-31 2020-08-11 支付宝实验室(新加坡)有限公司 自动化测试用例的生成方法、电子设备及可读存储介质
CN111625452A (zh) * 2020-05-22 2020-09-04 上海哔哩哔哩科技有限公司 流量回放方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170611B (zh) * 2018-01-23 2019-07-16 网易(杭州)网络有限公司 自动化测试方法及装置、存储介质、电子设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515883A (zh) * 2014-09-22 2016-04-20 阿里巴巴集团控股有限公司 一种测试方法及系统
EP3026563A1 (fr) * 2014-11-25 2016-06-01 Bull S.A.S. Methodes et systemes de generation de scenarios de tests de performances d'une application serveur
CN107885186A (zh) * 2017-09-30 2018-04-06 惠州市德赛西威汽车电子股份有限公司 一种汽车空调控制器人机交互功能的自动测试方法及系统
CN110874318A (zh) * 2018-08-31 2020-03-10 浙江宇视科技有限公司 软件测试方法、装置及计算机可读存储介质
CN109656806A (zh) * 2018-10-29 2019-04-19 口碑(上海)信息技术有限公司 一种接口数据的回放测试方法及装置
CN109684196A (zh) * 2018-11-01 2019-04-26 北京中清龙图网络技术有限公司 一种测试方法及装置
CN110008117A (zh) * 2019-03-12 2019-07-12 深圳壹账通智能科技有限公司 页面测试方法、装置、计算机设备和存储介质
CN110083543A (zh) * 2019-05-07 2019-08-02 江苏满运软件科技有限公司 回归测试方法、装置、电子设备及存储介质
CN110245078A (zh) * 2019-05-24 2019-09-17 平安国际智慧城市科技股份有限公司 一种软件的压力测试方法、装置、存储介质和服务器
CN111522728A (zh) * 2019-12-31 2020-08-11 支付宝实验室(新加坡)有限公司 自动化测试用例的生成方法、电子设备及可读存储介质
CN111625452A (zh) * 2020-05-22 2020-09-04 上海哔哩哔哩科技有限公司 流量回放方法和系统

Also Published As

Publication number Publication date
CN112463605A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112463605B (zh) 自动化测试方法及装置、存储介质、电子设备
JP5443613B2 (ja) 複製されたデータインスタンスのプロビジョニングおよび管理
US20130262931A1 (en) Systems and/or methods for testing client reactions to simulated disruptions
CN106326108B (zh) 一种新应用的测试方法及装置
US20160350205A1 (en) Concurrent execution of a first instance and a cloned instance of an application
US9703682B2 (en) Generating production server load activity for a test server
KR101691245B1 (ko) 웹 서비스 모니터링 시스템 및 방법
US20030204843A1 (en) Automated installation of an application
CN109800135B (zh) 一种信息处理方法及终端
CN110633219B (zh) 页面测试方法与装置、存储介质、电子设备
US11223698B2 (en) Intermediated retrieval of networked content
US20090240759A1 (en) Methods and Apparatus for Web Application Testing Using Proxy
US9871889B1 (en) Techniques for automated capture of configuration data for simulation
CN111241111B (zh) 数据查询方法及装置、数据对比方法及装置、介质及设备
CN113360947A (zh) 数据脱敏方法及装置、计算机可读存储介质、电子设备
CN104702463A (zh) 一种对多机房进行旁路测试的方法、装置及系统
JP4443200B2 (ja) 情報システム
CN117493179A (zh) 流量录制回放方法、装置、存储介质及电子设备
CN112911283A (zh) 智能电视测试方法及装置
CN108365987B (zh) 一种多服务器的管理系统和管理方法
CN111131152A (zh) 一种跨平台的远程登录防护系统的自动化验证方法及系统
CN116302711B (zh) 基于云平台镜像的容灾方法、装置、电子设备及存储介质
US11907104B1 (en) Service virtualization
CN113612756B (zh) 共享登录方法及装置、计算机可读存储介质、电子设备
US20230208743A1 (en) Automated network analysis using a sensor

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