CN108170612A - 一种自动化测试方法、装置及服务器 - Google Patents
一种自动化测试方法、装置及服务器 Download PDFInfo
- Publication number
- CN108170612A CN108170612A CN201810064700.5A CN201810064700A CN108170612A CN 108170612 A CN108170612 A CN 108170612A CN 201810064700 A CN201810064700 A CN 201810064700A CN 108170612 A CN108170612 A CN 108170612A
- Authority
- CN
- China
- Prior art keywords
- line
- solicited message
- environment
- return information
- operation 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
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/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/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
技术领域
本发明涉及系统自动化测试技术领域,具体涉及一种自动化测试方法、装置及服务器。
背景技术
当前功能回归的测试方法中,一方面通过人工构造用例(case)来进行测试,这种方法需要对业务代码架构进行深入熟悉,还需要充足的时间进行业务接口的梳理。但是在当前的很多系统升级迭代中,无论从架构的复杂性上,还是从时间成本上,都不允许采用传统模式。
基于此类问题,有的方法是将线上数据流量同步到线下进行测试,但是由于数据流量过于庞大,线下存储成本过高。还有的方法是直接读取线上数据,然后将数据回放到线下进行功能回归,但是这种方法依然存在问题。这种方法对于提交类请求不适用,在数据或数据所依赖的第三方服务等多个层面都依赖于线下仿真环境与线上环境的强一致性,不然会导致请求失败,或者由于多次提交请求而写入脏数据等问题。然而,从机器资源,及可操作性等方面来说,维护全仿真线下环境的成本都是不可接受的。因此,传统的技术对于查询类请求通过访问线上环境数据,对于提交类的请求通过理想的mock模拟方法,才能获得预期效果;但是理想的mock模拟方法需要同步获得线上与请求对应的返回,这样容易导致对线上数据发生代码侵入,从而影响线上服务。
发明内容
本发明实施例提供一种自动化测试方法、装置及服务器,以解决或缓解背景技术中的一项或多项以上技术问题,至少提供一种有益的选择。
第一方面,本发明实施例提供了一种自动化测试方法,包括:
采集线上环境的运行数据;
根据所述运行数据中第一预设类型的第一请求信息进行莫克模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息;
利用所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试。
结合第一方面,本发明实施例在第一方面的第一种实施方式中,采集线上环境的运行数据,包括:
在线上模块拓扑不需要任何改变的前提下,调用linux系统的netfilter框架提供的钩子函数从tcp层采集线上环境的运行数据。
结合第一方面,本发明实施例在第一方面的第二实施方式中,
对第一预设类型的第一请求信息进行mock模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息,包括:
根据所述第一请求信息的数据包信息,查询所述线上环境中与所述第一请求信息对应的第一返回信息;
复制所述第一返回信息并存储至线下数据库。
结合第一方面,本发明实施例在第一方面的第三实施方式中,根据所述第一请求信息的数据包信息,查询所述线上环境中与所述第一请求信息对应的第一返回信息,包括:
在预设的测试场景中,回放所述第一请求信息和所述第一返回信息。
结合第一方面,本发明实施例在第一方面的第四实施方式中,所述运行数据还包括第二预设类型的第二请求信息、所述第二请求信息对应的第二返回信息。
结合第一方面的第四实施方式,所述第二预设类型的第二请求信息包括查询类请求信息,所述第一预设类型的第一请求信息包括提交类请求信息。
结合第一方面的第四实施方式,利用所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试之后,所述方法还包括:
利用所述第二请求信息和所述第二返回信息对所述与所述线上环境对应的线下测试模块进行回归测试。
结合第一方面,本发明实施例在第一方面的第五实施方式中,采集线上环境的运行数据,包括:
根据线上集群的地域、时间及线下多样性数据指标采集线上环境的运行数据,以使所采集的运行数据具有多样性特征。
第二方面,本发明实施例提供了一种自动测试装置,所述装置包括:
采集模块,配置为采集线上环境的运行数据;
莫克模拟模块,配置为根据所述运行数据中第一预设类型的第一请求信息进行莫克模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息;
回归测试模块,配置为利用所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试。
结合第二方面,本发明实施例在第二方面的第一实施方式中,所述采集模块包括:
第一采集子模块,配置为采用网络之间互连的协议中的钩子函数采集线上环境的运行数据。
结合第二方面,本发明实施例在第二方面的第二实施方式中,所述莫克模拟模块包括:
查询子模块,配置为根据所述第一请求信息的数据包信息,查询所述线上环境中与所述第一请求信息对应的第一返回信息;
复制子模块,配置为复制所述第一返回信息并存储至线下数据库。
结合第二方面,本发明实施例在第二方面的第三实施方式中,所述回归测试模块包括:
回放子模块,配置为在预设的测试场景中,回放所述第一请求信息和所述第一返回信息。
结合第二方面,本发明实施例在第二方面的第四实施方式中,所述运行数据还包括第二预设类型的第二请求信息、所述第二请求信息对应的第二返回信息。
结合第二方面,本发明实施例在第二方面的第五实施方式中,所述第二预设类型的第二请求信息包括查询类请求信息,所述第一预设类型的第一请求信息包括提交类请求信息。
第三方面,本发明实施例提供一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储自动化测装置所用的计算机软件指令,其包括用于执行上述第一方面中自动化测方法为自动化测试装置所涉及的程序。
上述技术方案中的一个技术方案具有如下优点或有益效果:本技术方案首先采集线上环境的运行数据用于回归测试,对于无法正常采集返回数据的第一预设类型的第一请求信息进行莫克模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息,然后利用该运行数据对与所述线上环境对应的线下测试模块进行回归测试,这样能够获得线上的请求信息与对应的返回信息,减少了测试成本,同时避免对线上数据发生代码侵入。
上述技术方案中的另一个技术方案具有如下优点或有益效果:本发明的技术方案在采集运行数据时,线上集群的地域、时间及线下多样性数据指标进行采集,充分保证了所采集的运行数据的多样性。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明实施例一的自动化测试方法的流程图;
图2为本发明实施例二的自动化测试方法的流程图;
图3为本发明实施例二的自动化测试方法的采用mock模拟方法构建第一返回信息的示意图;
图4为本发明实施例三的自动化测试装置的示意图;
图5为本发明实施例四的服务器的示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
互联网产品形态、架构和业务复杂性的不断发展变化,除了带来了产品架构的快速迭代升级,也使得互联网产品的线下测试更加复杂与困难。集中表现为:复杂系统迭代升级带来的回归测试困难及复杂的业务逻辑场景带来的线下用例(case)构造困难。再加上人员不断的迭代带来的对业务熟悉程度的不断降低及快速迭代带来的测试紧迫性要求等,传统的准备与所述线上环境对应的线下测试模块,编写测试case,执行测试的流程方法已经无法很好的满足需求。导致很多严重的功能问题带到线上影响用户体验。
实施例一
本发明实施例提供一种自动化测试方法。如图1所示,为本发明实施例的自动化测试方法的流程图。本发明实施例的自动化测试方法包括如下步骤:
S101,采集线上环境的运行数据。
本发明实施例为获得较为准确的回归测试结果,在测试时采用线上环境中真实的运行数据来进行测试。
“线上、线下”是目前非常流行的一个词汇,其中,线上的真正含义是指通过各种形式的媒体如:电视、广播、报纸、网络、灯箱、广告牌等,将自己的品牌信息和促销信息以软、硬广告的形式进行信息传递;线下的真正含义指的是通过其他非媒体的形式进行宣传推广如:路演、发布会、各种折扣优惠、买赠、抽奖、会展等。例如,通过无形的媒体发布信息如微信、QQ、微博等都可以统称为线上活动,在固定地点,有实物、实体店、面对面销售等可称为线下活动。
在互联网领域,线上主要是指在利用互联网技术进行信息传递。因此,本发明实施例涉及的线上环境是指为在线上运行的所有功能模块、运行数据、数据库以及第三方模块等等。
其中,由于一些请求信息对应的返回信息不同,在测试时处理的方式也不同。因此,在本实施例中根据返回信息的不同处理方式对请求信息做以划分。有些能够直接拷贝线上的运行数据,在线下直接用来测试的,例如,查询类请求和返回;对于数据量庞大,由于成本原因或其他原因无法直接采集线上环境的运行数据,在线下只能以模拟仿真的方法生成数据进行测试的,例如,提交类返回。本发明实施例将这一类无法直接拷贝线上的运行数据,将只能以模拟仿真的方法构建的运行数据称为第一预设类型。将其他的可以直接由线上采集的运行数据称为第二预设类型。
另外,本领域技术人员可以理解,本发明实施例在具体实施时,在完成采集线上环境的运行数据后,还要存储所述运行数据。同时,还要保证以及第一请求信息和第一返回信息的对应。由于所获取的第一请求信息是以数据包的形式获取,可以根据数据包中的字段,使请求与返回对应。具体来说,可以通过数据包中的唯一字段,生成唯一的ID,也就是说,在采集第一请求信息之后,为每个第一请求信息根据其各自的字段生成唯一的ID,然后将其存储至线下数据库中,同时为第一返回信息配置与第一请求信息相同的ID,以下实施例中涉及的第二返回信息也配置与第二请求信息相同的ID,这样可以实现请求与返回之间的对应。
S102,对第一预设类型的第一请求信息进行mock(莫克)模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息。
Mock没有对应的中文翻译,本文采用其谐音译法,称为“莫克”。mock模拟操作就是在测试过程中,对于某些不容易构造或者不容易获取的对象,创建一个虚拟的对象来进行测试的测试方法。
对于本发明实施例,由于第一预设类型的请求信息所对应的第一返回信息数据量过于庞大,例如,存储1万条数据需要一台计算机,线上的数据可能有100万条甚至更多,这就需要100万台以上计算机,这样使得存储成本过高无法实现,而这些数据中,提交类请求所占的存储空间较大。因此,在本发明实施例,而无法获取,因此在必要时可以在线下以mock模拟的方法构建一个虚拟的第一返回信息。
S103,利用所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试。
本发明实施例中的线下测试模块是与线上环境对应的,例如,如果线上环境中包括两个功能模块:A模块和C模块,二者之间存在信息交互,那么为了测试A模块和C模块的性能,在线下构建一个与线上环境一模一样的A模块和C模块,然后再虚拟出一些运行数据,使线下的A模块和C模块使用虚拟的运行数据进行信息交互。本发明实施例为了能够使测试结果更为准确,选择线上运行的真实的、历史运行数据作为测试用例。
本发明实施例的技术方案可以实现:本技术方案首先采集线上环境的运行数据用于回归测试,对于无法正常采集返回数据的第一预设类型的第一请求信息进行莫克模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息,然后利用该运行数据对与所述线上环境对应的线下测试模块进行回归测试,这样能够获得线上的请求信息与对应的返回信息,减少了测试成本,同时避免对线上数据发生代码侵入。
实施例二
在实施例一的基础上,本发明实施例提供一种自动化测试方法。如图2所示,为本发明实施例的自动化测试方法的流程图。本发明实施例的自动化测试方法包括如下步骤:
S201,在线上模块拓扑不需要任何改变的前提下,调用linux系统的netfilter框架提供的钩子函数从tcp层采集线上环境的运行数据。
本发明实施例的采集的运行数据来自于集群中的服务,而大部分服务都是部署在基于linux系统的服务器上,基于linux内核提供的netfilter框架实现从IP层直接拷贝请求和返回,这样可以屏蔽上层协议的差异,不但能够实现对服务流量的无损拷贝,而且由于无需考虑上层协议的差异,使本发明实施例可以运行于不同的操作系统之上。
其中,Netfilter框架是Linux 2.4.x系统引入的一个子系统,它作为一个通用的、抽象的框架,提供一整套的钩子(hook)函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪成为了可能。换句话说,netfilter框架就是在整个网络流程的若干位置放置了一些检测点(hook),同时在每个检测点上登记了一些处理函数进行处理。
进一步地,在采集线上环境的运行数据时,具体是根据线上集群的地域、时间及线下多样性数据指标采集线上环境的运行数据,以使所采集的运行数据具有多样性特征。
对于一个软件,进行代码更新后,随时可能会由于数据的多样性而引起很多的问题,比如,一个接口多设置了一个可选参数可能就会触发一堆的bug。因此在进行线下回归测试时,应当尽量保证与所述线上环境对应的线下测试模块的多样性,以使得代码更新后,在线上运行时不会出现差错。对于本发明实施例,所采集的运行数据都来自于线上集群运行服务时产生的运行数据,因此,在采集运行数据时,很可能采集到重复的运行数据,因此在采集运行数据时,需要考虑集群的地域、时间以及线下多样性数据指标。举例来说,采集某市地铁运营管理系统的运行数据,地铁运营涉及到很多线路以及各线路中不同站点,为保证所采集的运行数据的多样性,在采集数据时,就要采集不同的线路,以及线路各不同的站点,例如,分别采集1号线、2号线和3号线地铁的运行数据,在采集1号线地铁的运行数据时,需要采集a、b、c或者更多的站点的运行数据,采集2号线地铁的运行数据时,采集d、e、f或者更多站点的运行数据,采集3号线地铁的运行数据时,需要采集g、h、i或者更多站点的运行数据;同时,还要考虑时间的情况,例如,采集早、晚时段高峰地铁的运行数据和非早、晚高峰时段地铁的运行数据。另外,对于线下多样性数据指标,也对应于不同的情况,例如,在某一时间段内,安检中出现违禁品的次数等。
S202,根据所述第一请求信息的数据包信息,查询所述线上环境中与所述第一请求信息对应的第一返回信息。
步骤S202是采用mock模拟的方法构建第一返回信息的过程。进行mock模拟操作相当于测试过程中的一个中间步骤,主要过程是是在收到第一请求信息时,根据判断第一请求信息为第一预设类型时,向线上环境获取与第一请求信息对应的第一返回信息。一般来说,根据线下测试尽量减少mock模拟的原则,仅会在判断出第一请求信息为无法正常返回时,才会到线上环境中去获取第一返回信息。下面对本发明实施例mock模拟的过程进行举例说明,如图3所示,比如一个系统中各模块拓扑结构可能是A模块到C模块,在线下回归测试时,需要回归A的功能,在线下流量回放时将线上拷贝的请求发送给A模块,如果C模块是一个无状态或者可以正常返回信息的模块,那么在这个拓扑中是不需要mock模拟返回信息的,但是现实中的情况常常存在C模块由于数据环境等问题,无法返回符合需求的信息,这样就导致A模块的逻辑没有办法完全覆盖,这个时候就需要增加一个mock模块,用来构建A模块期望C模块返回给它的返回信息。拓扑结构变成A模块到mock模块到C模块,当第一请求信息无法获得正常的返回信息时,就会请求mock模块构建一个虚拟的第一返回信息,mock模块会根据第一请求信息的ID(如实施例1所述的)去线上环境中获取与第一请求信息对应的,或者说具有相同ID的第一返回信息,这样就可以保证线下的A模块的逻辑与线上A模块的逻辑相同,从而保证对A模块的线下回归测试更为准确。
本领域技术人员应该可以知道,在系统的线下回归测试或线上演练过程中,需要关注的对象和服务往往会依赖很多内部方法或外部接口服务,mock测试是以可控的方式模拟这些内部方法或外部接口服务的依赖,以便验证待测对象在可能存在的各种状态下是否可提供稳定可靠的服务。获取线上流量
S203,复制所述第一返回信息并存储至线下数据库。
S204,在预设的测试场景中,回放所述第一请求信息和所述第一返回信息。
所谓预设的测试场景,也是根据线上的实际需要而设置的场景。在上述某市地铁运营管理系统的测试举例中,地铁运营就是一个测试场景。
值得注意的是,本发明实施例涉及的所述运行数据还包括第二预设类型的第二请求信息、所述第二请求信息对应的第二返回信息。
其中,所述第二预设类型的第二请求信息包括查询类请求信息,所述第一预设类型的第一请求信息包括提交类请求信息。
并且,本发明实施例在进行回归测试时,是利用所述第一请求信息、所述第一返回信息、所述第二请求信息和所述第二返回信息对与所述线上环境对应的线下测试模块进行回归测试。在具体实施时,对于测试顺序通常没有明确的确定,有时先测试第一请求信息和第一返回信息,有时先测试所述第二请求信息和所述第二返回信息,在数据量较大的情况下,不分先后顺序进行测试。
本发明实施例目前基于某论坛平台的试验数据表明,根据请求类型进行线上复制运行数据与线下mock模拟返回请求时,其时间成本可由按日计降低到按分钟计,且回归测的覆盖率提高约30%。
本方法通过一种更通用的方法将线上流量转换为线下自动化回归case,不依赖于线上架构的变更及代码侵入,同时可以完整的复制线上的请求及对应的返回,可以很好的解决提交类请求的线下自动回归测试的问题。同时结合模块的代码覆盖率,日志覆盖率,线上机器,时间等多种指标进行模型训练,利用模型指导引流的采样,可以很好的保证复制请求的多样性,从而让自动化回归真正起到预期效果。
实施例三
本发明实施例提供一种自动化测试装置。如图4所示,为本发明实施例的自动化测试装置的示意图。本发明实施例的自动化测试装置包括:
采集模块41,配置为采集线上环境的运行数据;
mock模拟模块42,配置为配置为根据所述运行数据中第一预设类型的第一请求信息进行莫克模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息;
回归测试模块43,配置为利用所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试。
进一步地,所述采集模块41包括:
第一采集子模块411,配置为采用网络之间互连的协议中的钩子函数采集线上环境的运行数据。
进一步地,所述mock模拟模块42包括:
查询子模块421,配置为根据所述第一请求信息的数据包信息,查询所述线上环境中与所述第一请求信息对应的第一返回信息;
复制子模块422,配置为复制所述第一返回信息并存储至线下数据库。
进一步地,所述回归测试模块43包括:
回放子模块431,配置为在预设的测试场景中,回放所述第一请求信息和所述第一返回信息。
其中,所述运行数据还包括第二预设类型的第二请求信息、所述第二请求信息对应的第二返回信息。
其中,所述第二预设类型的第二请求信息包括查询类请求信息,所述第一预设类型的第一请求信息包括提交类请求信息。
本发明实施例的自动测试装置能够实现,对于无法正常采集返回数据的第一预设类型的第一请求信息进行mock模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息,然后利用所述第二请求信息、所述第二返回信息、所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试,这样保证获得线上的请求与对应的返回,减少了测试成本,同时避免对线上数据发生代码侵入。
实施例四
本发明实施例四提供一种服务器,如图5所示,该服务器包括:存储器51和处理器52,存储器51内存储有可在处理器52上运行的计算机程序。处理器52执行所述计算机程序时实现上述实施例中的信息分类方法。存储器51和处理器52的数量可以为一个或多个。
该设备还包括:
通信接口53,用于存储器51和处理器52与外部设备之间的通信。
存储器51可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
如果存储器51、处理器52和通信接口53独立实现,则存储器51、处理器52和通信接口53可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器51、处理器52及通信接口53集成在一块芯片上,则存储器51、处理器52及通信接口53可以通过内部接口完成相互间的通信。
实施例五
本发明实施例还提供一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现如图1至3所示的实施例涉及的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
本发明实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种自动化测试方法,其特征在于,所述方法包括:
采集线上环境的运行数据;
根据所述运行数据中第一预设类型的第一请求信息进行莫克模拟操作,以获得所述线上环境中与所述第一请求信息对应的第一返回信息;
利用所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试。
2.根据权利要求1所述的方法,其特征在于,采集线上环境的运行数据,包括:
在线上模块拓扑不需要任何改变的前提下,调用linux系统的netfilter框架提供的钩子函数从tcp层采集线上环境的运行数据。
3.根据权利要求1所述的方法,其特征在于,对第一预设类型的第一请求信息进行莫克模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息,包括:
根据所述第一请求信息的数据包信息,获取线上环境中与所述第一请求信息对应的第一返回信息;
复制所述第一返回信息并存储至线下数据库。
4.根据权利要求1所述的方法,其特征在于,利用所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试,包括:
在预设的测试场景中,回放所述第一请求信息和所述第一返回信息。
5.根据权利要求1所述的方法,其特征在于,所述运行数据还包括第二预设类型的第二请求信息、所述第二请求信息对应的第二返回信息。
6.根据权利要求5所述的方法,其特征在于,所述第二预设类型的第二请求信息包括查询类请求信息,所述第一预设类型的第一请求信息包括提交类请求信息。
7.根据权利要求5所述的方法,其特征在于,利用所述第一请求信息和所述第一返回信息对与所述线上环境对应的线下测试模块进行回归测试之后,所述方法还包括:
利用所述第二请求信息和所述第二返回信息对所述线下测试模块进行回归测试。
8.根据权利要求1所述的方法,其特征在于,采集线上环境的运行数据,包括:
根据线上集群的地域、时间及线下多样性数据指标采集线上环境的运行数据,以使所采集的运行数据具有多样性特征。
9.一种自动化测试装置,其特征在于,所述装置包括:
采集模块,配置为采集线上环境的运行数据;
莫克模拟模块,配置为根据所述运行数据中第一预设类型的第一请求信息进行莫克模拟操作,以获得线上环境中与所述第一请求信息对应的第一返回信息;
回归测试模块,配置为利用所述第一请求信息和所述第一返回信息对测试环境进行回归测试。
10.根据权利要求9所述的装置,其特征在于,所述采集模块包括:
采集子模块,配置为采用网络之间互连的协议中的钩子函数采集线上环境的运行数据。
11.根据权利要求9所述的装置,其特征在于,所述莫克模拟模块包括:
查询子模块,配置为根据所述第一请求信息的数据包信息,查询所述线上环境中与所述第一请求信息对应的第一返回信息;
复制子模块,配置为复制所述第一返回信息并存储至线下数据库。
12.根据权利要求9所述的装置,其特征在于,所述回归测试模块包括:
回放子模块,配置为在预设的测试场景中,回放所述第一请求信息和所述第一返回信息。
13.根据权利要求9所述的方法,其特征在于,所述运行数据还包括第二预设类型的第二请求信息、所述第二请求信息对应的第二返回信息。
14.根据权利要求13所述的方法,其特征在于,所述第二预设类型的第二请求信息包括查询类请求信息,所述第一预设类型的第一请求信息包括提交类请求信息。
15.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
16.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810064700.5A CN108170612B (zh) | 2018-01-23 | 2018-01-23 | 一种自动化测试方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810064700.5A CN108170612B (zh) | 2018-01-23 | 2018-01-23 | 一种自动化测试方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170612A true CN108170612A (zh) | 2018-06-15 |
CN108170612B CN108170612B (zh) | 2021-01-15 |
Family
ID=62515718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810064700.5A Active CN108170612B (zh) | 2018-01-23 | 2018-01-23 | 一种自动化测试方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170612B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271325A (zh) * | 2018-10-26 | 2019-01-25 | 携程旅游网络技术(上海)有限公司 | 应用的测试方法、系统、电子设备和存储介质 |
CN109446092A (zh) * | 2018-10-31 | 2019-03-08 | 北京微播视界科技有限公司 | 对用户界面ui元素进行标识的方法、装置及电子设备 |
CN110046141A (zh) * | 2018-12-11 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 一种基于数据回放的数据存储方法及系统 |
CN110610377A (zh) * | 2019-08-09 | 2019-12-24 | 微梦创科网络科技(中国)有限公司 | 一种广告效果测试方法及系统 |
CN110784356A (zh) * | 2019-10-30 | 2020-02-11 | 北京蜜莱坞网络科技有限公司 | 一种流量自动回放方法 |
CN110908906A (zh) * | 2019-11-18 | 2020-03-24 | 中国民航信息网络股份有限公司 | 一种回归测试方法及系统 |
CN111045942A (zh) * | 2019-12-12 | 2020-04-21 | 同盾控股有限公司 | 应用测试方法、系统、存储介质及电子设备 |
CN111274117A (zh) * | 2018-12-04 | 2020-06-12 | 阿里巴巴集团控股有限公司 | 推荐服务的实验及其管理方法、装置和系统 |
CN111355611A (zh) * | 2020-02-26 | 2020-06-30 | 北京字节跳动网络技术有限公司 | 一种预案演练方法、装置以及计算机可读存储介质 |
CN112363944A (zh) * | 2020-11-20 | 2021-02-12 | 上海悦易网络信息技术有限公司 | 一种用于多环境接口返回值对比的方法及设备 |
CN112650688A (zh) * | 2020-12-30 | 2021-04-13 | 深圳前海微众银行股份有限公司 | 自动化回归测试方法、关联设备以及计算机程序产品 |
CN114238099A (zh) * | 2021-12-09 | 2022-03-25 | 北京五八信息技术有限公司 | 灰度测试的方法、装置、电子设备以及可读介质 |
CN114564389A (zh) * | 2022-02-23 | 2022-05-31 | 平安普惠企业管理有限公司 | 数据处理的方法及相关装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150238A (zh) * | 2011-12-07 | 2013-06-12 | 阿里巴巴集团控股有限公司 | 一种服务请求处理方法、模拟性能测试方法及装置 |
US20150074647A1 (en) * | 2012-04-20 | 2015-03-12 | Doron Levi | Testing system for an integrated software system |
US9201767B1 (en) * | 2013-12-23 | 2015-12-01 | Nationwide Mutual Insurance Company | System and method for implementing a testing framework |
CN105335278A (zh) * | 2014-06-16 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 测试方法及设备 |
US20160170860A1 (en) * | 2014-12-15 | 2016-06-16 | Thomas Angermayer | Dependent object delegation tester |
CN105988922A (zh) * | 2015-02-06 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 应用程序的测试方法、装置及服务器 |
CN106201859A (zh) * | 2015-05-07 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种回归测试方法及系统 |
CN106970873A (zh) * | 2017-01-10 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 线上mock测试方法、装置及系统 |
CN107203465A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 系统接口测试方法及装置 |
US20170277621A1 (en) * | 2016-03-25 | 2017-09-28 | Vmware, Inc. | Apparatus for minimally intrusive debugging of production user interface software |
-
2018
- 2018-01-23 CN CN201810064700.5A patent/CN108170612B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150238A (zh) * | 2011-12-07 | 2013-06-12 | 阿里巴巴集团控股有限公司 | 一种服务请求处理方法、模拟性能测试方法及装置 |
US20150074647A1 (en) * | 2012-04-20 | 2015-03-12 | Doron Levi | Testing system for an integrated software system |
US9201767B1 (en) * | 2013-12-23 | 2015-12-01 | Nationwide Mutual Insurance Company | System and method for implementing a testing framework |
CN105335278A (zh) * | 2014-06-16 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 测试方法及设备 |
US20160170860A1 (en) * | 2014-12-15 | 2016-06-16 | Thomas Angermayer | Dependent object delegation tester |
CN105988922A (zh) * | 2015-02-06 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 应用程序的测试方法、装置及服务器 |
CN106201859A (zh) * | 2015-05-07 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种回归测试方法及系统 |
CN107203465A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 系统接口测试方法及装置 |
US20170277621A1 (en) * | 2016-03-25 | 2017-09-28 | Vmware, Inc. | Apparatus for minimally intrusive debugging of production user interface software |
CN106970873A (zh) * | 2017-01-10 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 线上mock测试方法、装置及系统 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271325A (zh) * | 2018-10-26 | 2019-01-25 | 携程旅游网络技术(上海)有限公司 | 应用的测试方法、系统、电子设备和存储介质 |
CN109446092A (zh) * | 2018-10-31 | 2019-03-08 | 北京微播视界科技有限公司 | 对用户界面ui元素进行标识的方法、装置及电子设备 |
CN111274117A (zh) * | 2018-12-04 | 2020-06-12 | 阿里巴巴集团控股有限公司 | 推荐服务的实验及其管理方法、装置和系统 |
CN111274117B (zh) * | 2018-12-04 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 推荐服务的实验及其管理方法、装置和系统 |
CN110046141A (zh) * | 2018-12-11 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 一种基于数据回放的数据存储方法及系统 |
CN110046141B (zh) * | 2018-12-11 | 2023-10-27 | 创新先进技术有限公司 | 一种基于数据回放的数据存储方法及系统 |
CN110610377A (zh) * | 2019-08-09 | 2019-12-24 | 微梦创科网络科技(中国)有限公司 | 一种广告效果测试方法及系统 |
CN110784356B (zh) * | 2019-10-30 | 2022-03-29 | 北京蜜莱坞网络科技有限公司 | 一种流量自动回放方法 |
CN110784356A (zh) * | 2019-10-30 | 2020-02-11 | 北京蜜莱坞网络科技有限公司 | 一种流量自动回放方法 |
CN110908906A (zh) * | 2019-11-18 | 2020-03-24 | 中国民航信息网络股份有限公司 | 一种回归测试方法及系统 |
CN111045942A (zh) * | 2019-12-12 | 2020-04-21 | 同盾控股有限公司 | 应用测试方法、系统、存储介质及电子设备 |
CN111355611A (zh) * | 2020-02-26 | 2020-06-30 | 北京字节跳动网络技术有限公司 | 一种预案演练方法、装置以及计算机可读存储介质 |
CN112363944A (zh) * | 2020-11-20 | 2021-02-12 | 上海悦易网络信息技术有限公司 | 一种用于多环境接口返回值对比的方法及设备 |
CN112650688A (zh) * | 2020-12-30 | 2021-04-13 | 深圳前海微众银行股份有限公司 | 自动化回归测试方法、关联设备以及计算机程序产品 |
CN114238099A (zh) * | 2021-12-09 | 2022-03-25 | 北京五八信息技术有限公司 | 灰度测试的方法、装置、电子设备以及可读介质 |
CN114238099B (zh) * | 2021-12-09 | 2022-08-09 | 北京五八信息技术有限公司 | 灰度测试的方法、装置、电子设备以及可读介质 |
CN114564389A (zh) * | 2022-02-23 | 2022-05-31 | 平安普惠企业管理有限公司 | 数据处理的方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108170612B (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170612A (zh) | 一种自动化测试方法、装置及服务器 | |
Balocco et al. | Lean business models change process in digital entrepreneurship | |
CN110442701B (zh) | 语音对话处理方法及装置 | |
CN104580430B (zh) | 一种基于通讯群组推送信息的方法和装置 | |
CN105868111B (zh) | 移动终端游戏自动测试方法和装置 | |
CN106997357A (zh) | 一种消息处理方法、装置及系统 | |
CN106648556A (zh) | 前后端集成开发测试的方法及装置 | |
CN106464529A (zh) | 隔离在线计算服务的一部分的技术 | |
CN110086877A (zh) | 应用程序分享、分享信息显示方法、装置、设备及介质 | |
CN108345532A (zh) | 一种自动化测试用例生成方法和装置 | |
CN108829378A (zh) | 一种应用软件的开发方法、装置及电子设备 | |
CN101819551B (zh) | 记录企业信息系统的服务交互数据的方法和系统 | |
CN107908432A (zh) | 应用程序的配置方法及装置、终端设备及可读存储介质 | |
JP2021009665A (ja) | ファイル生成方法、装置、デバイス及び記憶媒体 | |
CN107729246A (zh) | 针对目标应用的辅助测试方法、装置、设备及存储介质 | |
CN110347593A (zh) | 流程测试方法及装置 | |
CN105955731A (zh) | 一种手机游戏快速编写方法和系统 | |
CN109614312A (zh) | 测试用例生成方法、装置、电子设备及存储介质 | |
CN110231936A (zh) | 一种移动端流程引擎框架及移动端流程引擎的使用方法 | |
Al‐Mashari | A benchmarking study of experiences with electronic government | |
US20140156252A1 (en) | Hybrid platform-dependent simulation interface | |
CN107357810A (zh) | 一种用于输出专题落地页的方法及系统 | |
CN106790171A (zh) | 会话控制的方法、装置和计算机可读存储介质 | |
Di Martino et al. | A semantic model for business process patterns to support cloud deployment | |
CN116432573A (zh) | 性能仿真方法及电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |