CN110647458A - 基于分布式测试平台的测试方法、装置及电子设备 - Google Patents
基于分布式测试平台的测试方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110647458A CN110647458A CN201810680004.7A CN201810680004A CN110647458A CN 110647458 A CN110647458 A CN 110647458A CN 201810680004 A CN201810680004 A CN 201810680004A CN 110647458 A CN110647458 A CN 110647458A
- Authority
- CN
- China
- Prior art keywords
- layer
- use case
- script log
- testing
- test
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 168
- 230000014509 gene expression Effects 0.000 claims abstract description 6
- 230000006870 function Effects 0.000 claims description 64
- 238000000034 method Methods 0.000 claims description 19
- 238000010998 test method Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static 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
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
技术领域
本发明涉及测试技术领域,更具体地,涉及一种基于分布式测试平台的测试方法、装置及电子设备。
背景技术
应用程序是向用户提供特定应用服务的计算机程序。应用程序的开发过程中离不开应用程序的测试。
随着人们对应用程序功能的需求日益多样化和复杂化,应用程序的测试过程也日益复杂化。如果采用分布式测试平台对应用程序进行测试,为了保证应用程序的质量,需要在UI层、接口层、数据层、网络层、安全层均需编写用例来进行相关测试。
现有方案中,通常是要在每一层均编写用例来对应用程序的每一层进行相应的测试,但是这种测试方法需要花费测试人员大量的时间,极大增加了测试成本。
发明内容
本发明的一个目的是提供一种基于分布式测试平台的测试方法的新技术方案。
根据本发明的第二方面,提供了一种基于分布式测试平台的测试方法,所述分布式测试平台至少包括第一层、及设置在所述第一层之上的第二层;所述测试方法包括:
获取预先存储的用于所述第一层的第一用例,其中,所述第一层为表现层或者接口层;
获取执行所述第一用例的操作信息,并将所述操作信息转换为用于所述第二层的脚本日志;
记录所述脚本日志;
在检测到所述记录所述脚本日志的情况下,根据所述脚本日志生成用于所述第二层的第二用例。
可选的是,根据所述脚本日志生成用于所述第二层的第二用例的步骤包括:
将所述脚本日志作为所述第二用例。
可选的是,所述根据所述脚本日志生成用于所述第二层的第二用例的步骤包括:
根据所述脚本日志和预先存储的用例模板生成所述第二用例。
可选的是,所述根据所述脚本日志和预先存储的用例模板生成所述第二用例的步骤包括:
根据所述用例模板提取所述脚本日志中的有效数据;
将所述有效数据写入所述用例模板中的对应位置,得到所述第二用例。
可选的是,所述操作信息包括:执行所述第一用例的过程中获取的外部操作动作和/或输入数据。
可选的是,对多个所述第一用例的操作信息进行转换;所述测试方法还包括:
根据将每个所述第一用例的操作信息转换为用于所述第二层的脚本日志的起止时间,确定与每个所述第一用例对应的脚本日志;
根据对应任一第一用例的脚本日志生成与所述任一第一用例对应的第二用例。
可选的是,所述测试方法还包括:
接收外部触发的针对所述第二用例的测试请求;
根据所述测试请求将所述第二用例分发至所述分布式测试平台的当前功能执行者,以使所述当前功能执行者根据所述第二用例对待测应用程序的第二层进行测试。
可选的是,所述测试的步骤包括:
运行所述第二用例,并记录运行数据;
根据所述运行数据验证所述待测应用程序的第二层的测试结果。
可选的是,所述根据所述运行数据验证所述待测应用程序的测试结果的步骤包括:
在所述运行数据与所述第二用例对应的脚本日志相同的情况下,判定根据对所述待测应用程序的第二层的测试结果为成功。
可选的是,所述测试方法还包括:
检测所述当前功能执行者是否失效,如是,则:
将所述第二用例分发至其他有效的功能执行者,以使所述其他有效的功能执行者根据所述第二用例对待测应用程序的第二层进行测试。
根据本发明的第二方面,提供了一种基于分布式测试平台的测试装置,所述分布式测试平台至少包括第一层、及设置在所述第一层之上的第二层;所述测试装置包括:
用例获取模块,用于获取预先存储的用于所述第一层的第一用例,其中,所述第一层为表现层或者接口层;
转换模块,用于获取执行所述第一用例的操作信息,并将所述操作信息转换为用于所述第二层的脚本日志;
记录单元,用于记录所述脚本日志;以及,
生成模块,用于在检测到所述记录单元记录所述脚本日志的情况下,根据所述脚本日志生成用于所述第二层的第二用例。
根据本发明的第三方面,提供了一种电子设备,包括根据本发明第二方面所述的测试装置。
根据本发明的第四方面,提供了一种电子设备,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器执行根据本发明第一方面所述的测试方法。
本发明的一个有益效果在于,通过本发明的实施例,可以根据已经编写好的用于第一层的用例,自动生成用于第一层之下的第二层的用例。此外,还可以节省测试人员的测试时间,提高测试效率,降低测试成本。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1为本发明一个实施例提供的分布式测试平台的硬件配置的结构框图;
图2为本发明其中一个实施例提供的基于分布式测试平台的测试方法的流程示意图;
图3为本发明其中一个实施例提供的基于分布式测试平台的测试方法的流程示意图;
图4为本发明其中一个实施例提供的基于分布式测试平台的测试方法的流程示意图;
图5为本发明一个实施例提供的基于分布式测试平台的测试装置的方框原理图;
图6为本发明另一个实施例提供的基于分布式测试平台的测试装置的方框原理图;
图7为根据本发明一个实施例提供的电子设备的方框原理图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<分布式测试平台>
基于一台主机的测试平台上进行多条用例的并行测试时,对于主机的CPU和内存的消耗比较大。当需要模拟数以千计的并发用户时,使用一台主机模拟所有的并发用户就会使得该主机的运行速度较慢,甚至会引起内存溢出错误。
而本发明的采用基于分布式的测试平台,可以使得测试平台能够提供更大的负载能力,使用多台主机同时产生负载。
如图1所示,分布式的测试平台1000可以包括服务器1100和功能执行者(actor)1200-1~1200-7,一个功能执行者1200可以看作一台主机。使用分布式的测试平台1000时,测试人员可自行编写用例、或者如本发明所述的根据已经编写好的用于第一层的用例生成用于第二层的用例,将所有用例上传至服务器1100,服务器1100再将用例和测试计划下发到与服务端1100连接的功能执行者1200,在多个功能执行者1200上利用接收到的用例对待测应用程序进行测试。服务器1100可以是随机将用例下发至功能执行者1200,也可以是根据测试人员的配置将用例下发至指定的功能执行者1200。
本发明中的分布式测试平台例如可以采用Akka微服务软件框架。采用Akka微服务软件框架作为分布式测试平台,具有如下优点:(1)功能执行者(Actor)并发编程模型较好地屏蔽了底层通讯细节和线程任务调度细节,编程较容易。(2)性能高,单节点每秒可完成5000万消息处理。(3)资源需求低,每GB内存可容纳250万Actor实体对象。(4)成熟度较高,是Spark大数据平台的底层架构软件,在2015年获得JAX创新开发技术大奖。(5)基于强大的Scala语言编写,编码实现效率高,可以和其他JVM语言类库相互调用。(6)来源于amazonDynamo系统的gossip集群通讯协议,经过amazon云服务平台的长期技术验证,可靠性高;可支持Cluster Sharding、Cluster Singleton、Distributed Publish Subscribe、Distributed Data等多种集群应用场景。(7)父子功能执行者的监管者模式,父功能执行者可以捕获子功能执行者的异常并自动执行不同的重启策略,极大提高了系统的容错性和服务可用性,减少高可用性代码编写难度。(8)通过软件路由器和执行分发器组合实现多种Actor并发和负载均衡算法策略。如轮询调度、随机调度、广播、一致性哈希等。
当然,本领域技术人员应能理解上述Akka微服务软件框架仅为举例,其他现有的或今后可能出现的并行微服务软件框架,例如Node.Js、Finagle、Akka、RxJava、Vert.x等,如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
该分布式测试平台例如可以包括由上而下设置的表现层(UI层)、接口层、数据层、网络层和安全层。各层之间相互联系,紧密协调配合,共同构成该分布式测试平台的软件体系架构。本发明的实施例中的第一层可以是UI层或者是接口层。在第一层为UI层的情况下,第二层可以为接口层、数据层、网络层和安全层中的任一层。在第一层为接口层的情况下,第二层可以为数据层、网络层和安全层中的任一层。
其中,UI层用于实现用户界面的表示逻辑,提供简洁的人机交互界面,完成数据的输入/输出;还用于总体负责各个View的展现,UI的优化,动画效果以及通知。接口层主要提供系统内部接口供UI层调用。数据层用于提供数据的存储服务,例如可以负责存储用户个人信息、系统配置信息和本地需要保存的其他类型数据,数据层所保存的数据也需要在服务器端进行保存,在用户更换终端设备的同时需要自动同步。网络层用于与服务器端进行通信。安全层用于通过加密算法保证网络数据传输的安全性,进行监控和观测,对分布式测试平台故障及时预警,同时提供业务统计和数据分析等辅助功能。
<方法>
图2为本发明一个实施例提供的基于分布式测试平台的测试方法的流程示意图。该测试方法由上述的分布式测试平台实施。
根据图2所示,该测试方法包括如下步骤:
步骤S2100,获取预先存储的用于第一层的第一用例。
用例是对一组动作序列的抽象描述,系统执行这些动作序列,产生相应的结果。第一用例可以用于对待测应用程序的第一层进行测试。
第一用例可以是测试人员预先根据测试场景进行编写、并存储在分布式测试平台中的。
具体的,第一层可以是UI层或者接口层。在第一层为UI层的情况下,第一用例例如可以用于对应用程序的登录或者页面跳转等功能场景进行测试,还可以用于对应用程序的稳定性进行测试。
步骤S2200,获取第一用例的操作信息,并将操作信息转换为用于第二层的脚本日志。
本实施例中提到的操作信息可以是由外部的测试人员根据第一用例针对待测应用程序执行的操作信息。其中,操作信息可以包括执行第一用例的过程中获取的外部操作动作和/或输入数据。
例如,在第一用例用于对待测应用程序的登录场景进行测试,那么,执行第一用例过程中的外部操作动作包括:启动待测应用程序,输入有效的用户名、密码并点击登录按钮;输入的数据包括:输入的用户名和密码。
再例如,在第一用例用于对待测应用程序的页面跳转场景进行测试,那么,执行第一用例过程中的外部操作包括:被点击的链接。
在本发明的一个例子中,可以是通过appium或者Katalon Studio等工具实现获取第一用例的操作信息,并将操作信息转换为用于第二层的脚本日志的操作。脚本日志例如可以是log文件。
在第二层为接口层的情况下,用于接口层的脚本日志可以是htp包的实体文件。用于接口层的脚本日志中可以包括调用的接口和返回值等。
在第二层为数据层的情况下,用于数据层的脚本日志可以是二进制log。用于数据层的脚本日志中可以包括操作的数据及相应的结果等。
在第二层为网络层的情况下,用于网络层的脚本日志可以是dump的tcp log。用于网络层的脚本日志中可以包括网络协议等。
在第二层为安全层的情况下,用于安全层的脚本日志可以是根据接口层的log得到的。例如可以是将接口层的log中存储的被调用的接口存储至用于安全层的脚本日志中。
步骤S2300,记录脚本日志。
在一个例子中,脚本日志是生成在分布式测试平台的服务器中的。因此,可以用脚本去查找服务器在执行步骤S2200的期间内生成的用于第二层的脚本日志,并记录该脚本日志,也就是要将该脚本日志记录至本地。
步骤S2400,在检测到记录脚本日志的情况下,根据脚本日志生成用于第二层的第二用例。
每次执行步骤S2300时,都会根据记录的脚本日志生成第二用例。例如,可以是预先设置检测频率,根据该检测频率来检测是否有记录脚本日志的动作发生。再例如,也可以是记录脚本日志的动作会触发根据该脚本日志生成第二用例的操作。
第二用例可以用于对待测应用程序的第二层进行测试。
在第一层为UI层的情况下,第二层可以为接口层、数据层、网络层和安全层中的任一层。在第一层为接口层的情况下,第二层可以为数据层、网络层和安全层中的任一层。
在本发明的一个例子中,根据脚本日志生成第二用例的方法可以包括:将脚本日志作为第二用例
例如,脚本日志可以是:
login userid:1234passwd:4556
recommend count:15recoid:33
那么,在将脚本日志作为第二用例的情况下,第二用例也为:
login userid:1234passwd:4556
recommend count:15recoid:33
在本发明的一个例子中,根据脚本日志生成第二用例的方法可以包括:根据脚本日志和预先存储的用例模板生成第二用例。
根据脚本日志和预先存储的用例模板生成第二用例可以进一步包括如下的步骤S24100~S2420:
步骤S2410,根据用例模板提取脚本日志中的有效数据;
步骤S2420,将有效数据写入用例模板中的对应位置,得到第二用例。
在通过脚本日志和用例模板生成第二用例的情况下,第二用例例如可以是xml文件。
例如,脚本日志可以是:
login userid:1234 passwd:4556
recommend count:15 recoid:33
预先存储的用例模板可以为:
login userid:\d passwd:\d
recommend count:\d recoid:\d
那么,根据用例模板提取脚本日志中的有效数据可以为:1234,4556,15,33。
将有效数据1234,4556,15,33写入用例模板中的对应位置,得到第二用例可以为:
在本发明的一个例子中,还可以将多个第一用例的操作信息转换为用于第二层的脚本日志。
在此基础上,由于多个第一用例的操作信息轮流转换为用于第二层的脚本日志的,因此,可以将每个第一用例的操作信息转换为用于第二层的脚本日志的起止时间,确定与每个第一用例对应的脚本日志;根据对应任一第一用例的脚本日志生成对应该任一第一用例的第二用例。
具体的,多个第一用例可以包括第一用例A1、第一用例A2和第一用例A3。第一用例A1的操作信息、第一用例A2的操作信息和第一用例A3的操作信息可以是按照顺序来获取的。可以是先获取第一用例A1的操作信息完成之后,获取第一用例A2的操作信息,第一用例A2的操作信息获取完成后获取第一用例A3的操作信息。将第一用例A1的操作信息、第一用例A2的操作信息和第一用例A3的操作信息按照获取顺序转换为用于第二层的脚本日志。具体可以是先将第一用例A1的操作信息转换为用于第二层的脚本日志完成之后,得到对应第一用例A1的脚本日志;再将第一用例A2的操作信息转换为用于第二层的脚本日志完成之后,得到对应第一用例A2的脚本日志;再将第一用例A3的操作信息转换为用于第二层的脚本日志完成之后,得到对应第一用例A3的脚本日志。
第一用例和脚本日志之间的对应关系是通过将该第一用例的操作信息转换为脚本日志的起止时间反映的。因此,可以根据将第一用例A1的操作信息转换为用于第二层的脚本日志的起止时间,查找并记录对应第一用例A1的脚本日志。根据将第一用例A2的操作信息转换为用于第二层的脚本日志的起止时间,查找并记录对应第一用例A2的脚本日志。根据将第一用例A3的操作信息转换为用于第二层的脚本日志的起止时间,查找并记录对应第一用例A3的脚本日志。
根据对应第一用例A1的脚本日志可以生成对应第一用例A1的第二用例B1。根据对应第一用例A2的脚本日志可以生成对应第一用例A2的第二用例B2。根据对应第一用例A3的脚本日志可以生成对应第一用例A2的第二用例B2。
这样,根据本发明的实施例,可以根据已经编写好的用于第一层的用例,自动生成用于第一层之下的第二层的用例。此外,还可以节省测试人员的测试时间,提高测试效率,降低测试成本。
在执行步骤S2400得到第二用例之后,需要将第二用例发送至分布式测试平台的服务器。
在此基础上,该测试方法还可以包括如图3所示的步骤S3100~S3200。
步骤S3100,接收外部触发的针对第二用例的测试请求。
该测试请求可以是测试人员触发的。在实际应用场景中,测试人员也可以触发针对第一层的测试请求,针对第一层的测试方式和针对第二层的测试方式相同。
步骤S3200,根据该测试请求将第二用例分发至分布式测试平台的当前功能执行者,以使当前功能执行者根据第二用例对待测应用程序的第二层进行测试。
由于预先将第二用例发送至服务器,因此,在接收到针对第二用例的测试请求时,服务器需要将第二用例分发至分布式测试平台的当前功能执行者(当前actor),以使当前功能执行者根据第二用例对待测应用程序的第二层进行测试。
这样,所有功能执行者运行用例的功能只需要编写一次,那么所有供执行者则都有相关的用例运行的能力。如果需要环境配置,则也可以给功能执行者actor植入python脚本,实现环境自动部署的能力,以达到“一次编写到处运行”的目的。
在本发明的一个例子中,当前功能执行者根据第二用例对待测应用程序的第二层进行测试的步骤可以包括如图4所示的步骤S4100~S4200。
步骤S4100,运行第二用例,并记录运行数据。
在运行第二用例的情况下,可以得到用于第二层的运行数据,也该运行数据可以是log文件。
例如,在脚本日志为下述方式的情况下:
login userid:1234passwd:4556
recommend count:15recoid:33
根据运行根据该脚本日志得到的第二用例,得到的运行数据也可以为:
login userid:1234passwd:4556
recommend count:15recoid:33
步骤S4200,根据运行数据验证待测应用程序的第二层的测试结果。
具体的,可以是在运行数据与第二用例对应的脚本日志相同的情况下,判定对待测应用程序的第二层的测试结果为成功。如果运行数据与第二用例对应的脚本日志不同,则判定对待测应用程序的第二层的测试结果为失败。其中,第二用例是根据其对应的脚本日志生成的。
当前功能执行者在执行完步骤S4100~S4200之后,可以将测试结果存入数据库中。
如果当前功能执行者为子功能执行者,表明当前功能执行者运行的用例是父功能执行者下发至当前功能执行者的,那么,当前功能执行者在执行完步骤S4100~S4200之后,需要将测试结果上传至父功能执行者,父功能执行者再将测试结果存入数据库中。
每个功能执行者收集到结果的时候都会判断当前测试计划中完成运行的用例的数量。如果当前测试计划中的所有用例均运行完成,当前测试计划将结束,该功能执行者将生成测试报告到数据库。
在本发明的一个例子中,该测试方法还可以包括:
检测当前功能执行者是否失效,如是,则:将第二用例分发至其他有效的功能执行者,以使其他有效的功能执行者根据第二用例对待测应用程序的第二层进行测试。
功能执行者失效可以包括:功能执行者宕机、功能执行者的CPU或其他资源使用率过高。
该分布式测试平台可以包括可靠协调系统,通过该可靠协调系统能够实现功能执行者的状态同步操作。其中该功能执行者的状态同步操作包括:检测当前功能执行者是否失效,如是,则:将第二用例分发至其他有效的功能执行者,以使其他有效的功能执行者根据第二用例对待测应用程序的第二层进行测试。
本实施例中的可靠协调系统例如可以但不限于是由zookeeper来实现的。
根据功能执行者的实时性能进行用例分发,可以合理利用功能执行者的资源。
在本发明的一个例子中,该分布式测试平台还可以包括设置在第一层之下第三层,用于第三层的第三用例的自动生成方式与第二用例的生成方式相同。其中,第三层可以是设置在第二层之上,也可以是设置在第二层之下。
<例子>
第一层为UI层,第一用例用于对待测应用程序UI层的登录场景进行测试。将执行第一用例的操作信息转换为用于接口层的脚本日志。在执行第一用例时,接口层会调用login接口和http请求,获取的操作信息包括启动待测应用程序,输入有效的用户名、密码并点击登录按钮。因此,用于接口层脚本日志中包含userid:8888passwd:9999。根据用于接口层的脚本日志可以生成用于接口层的第二用例。将接口层的脚本日志中存储的被调用的接口存储至用于安全层的脚本日志中,得到用于安全层的脚本日志。根据用于安全层的脚本日志生成用于安全层的第二用例。
在根据用于接口层的第二用例对待测应用程序的接口层进行测试时,要运行第二用例,产生运行数据。如果产生的运行数据和用于接口层的脚本日志相同,那么,可以判定待测应用程序的接口层的测试结果为成功。
在运行用于接口层的第二用例的同时,通过安全工具对用于接口层的脚本日志中的接口进行安全分析,以判断这些接口是否满足安全策略。这就实现了安全层的用例的运行。在这些接口均满足安全策略的情况下,判定待测应用程序的安全层的测试结果为成功。
<装置>
与上述方法相对应的,本发明还提供了一种基于分布式测试平台的测试装置。
图5为本发明一个实施例提供的基于分布式测试平台的测试装置的方框原理图。
如图5所示,该测试装置包括用例获取模块510、转换模块520、记录单元530和生成模块540。该用例获取模块510用于获取预先存储的用于第一层的第一用例,其中,第一层为表现层或者接口层;该转换模块520用于获取执行第一用例的操作信息,并将操作信息转换为用于第二层的脚本日志;该记录单元430用于记录脚本日志;该生成模块540用于在检测到记录单元记录脚本日志的情况下,根据脚本日志生成用于第二层的第二用例。
在本发明的一个例子中,生成模块540具体可以用于在检测到记录单元记录脚本日志的情况下,将脚本日志作为第二用例。
在本发明的一个例子中,生成模块540具体可以用于在检测到记录单元记录脚本日志的情况下,根据脚本日志和预先存储的用例模板生成第二用例。
在此基础上,生成模块540可以用于在检测到记录单元记录脚本日志的情况下,根据用例模板提取脚本日志中的有效数据;将有效数据写入用例模板中的对应位置,得到第二用例。
在一个例子中,操作信息可以包括执行第一用例的过程中获取的外部操作动作和/或输入数据。
在一个例子中,对多个第一用例的操作信息进行转换;那么该测试装置还可以包括:
根据将每个第一用例的操作信息转换为用于第二层的脚本日志的起止时间,确定与每个第一用例对应的脚本日志;
根据对应任一第一用例的脚本日志生成与任一第一用例对应的第二用例。
在一个例子中,如图6所示,该测试装置还可以包括接收模块610和分发模块620。该接收模块610用于接收外部触发的针对第二用例的测试请求;该分发模块620用于根据测试请求将第二用例分发至分布式测试平台的当前功能执行者,以使当前功能执行者根据第二用例对待测应用程序的第二层进行测试。
如图6所示,该测试装置还可以包括运行模块630和验证模块640。该运行模块630用于运行第二用例,并记录运行数据;该验证模块640用于根据运行数据验证待测应用程序的第二层的测试结果。
验证模块640具体用于:在运行数据与第二用例对应的脚本日志相同的情况下,判定根据对待测应用程序的第二层的测试结果为成功。
该测试装置还可以包括检测模块(图中未示出),该检测模块用于检测当前功能执行者是否失效。分发模块还用于在检测模块的检测结果为是的情况下,将第二用例分发至其他有效的功能执行者,以使其他有效的功能执行者根据第二用例对待测应用程序的第二层进行测试。
通过本发明的实施例,可以根据已经编写好的用于第一层的用例,自动生成用于第一层之下的第二层的用例。此外,还可以节省测试人员的测试时间,提高测试效率,降低测试成本。
<电子设备>
本发明还提供了一种电子设备,在一方面,该电子设备包括前述的基于分布式测试平台的测试装置。
图7为根据本发明另一方面提供的电子设备的一种实施结构的方框原理图。
如图7所示,该电子设备700包括存储器701和处理器702,其中,存储器701用于存储指令,该指令控制处理器702进行操作以执行前述的基于分布式测试平台的测试方法。
该处理器702例如可以是中央处理器CPU、微处理器MCU等。该存储器701例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。
除此之外,根据图7所示,该电子设备700还包括接口装置703、输入装置704、显示装置705、通信装置706、扬声器707、麦克风708等等。尽管在图7中示出了多个装置,但是,本发明电子设备可以仅涉及其中的部分装置,例如,处理器701、存储器702等。
上述通信装置706例如能够进行有有线或无线通信。
上述接口装置703例如包括耳机插孔、USB接口等。
上述输入装置704例如可以包括触摸屏、按键等。
上述显示装置705例如是液晶显示屏、触摸显示屏等。
通过本发明的实施例,可以根据已经编写好的用于第一层的用例,自动生成用于第一层之下的第二层的用例。此外,还可以节省测试人员的测试时间,提高测试效率,降低测试成本。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (13)
1.一种基于分布式测试平台的测试方法,其特征在于,所述分布式测试平台至少包括第一层、及设置在所述第一层之上的第二层;所述测试方法包括:
获取预先存储的用于所述第一层的第一用例,其中,所述第一层为表现层或者接口层;
获取执行所述第一用例的操作信息,并将所述操作信息转换为用于所述第二层的脚本日志;
记录所述脚本日志;
在检测到所述记录所述脚本日志的情况下,根据所述脚本日志生成用于所述第二层的第二用例。
2.根据权利要求1所述的测试方法,其特征在于,根据所述脚本日志生成用于所述第二层的第二用例的步骤包括:
将所述脚本日志作为所述第二用例。
3.根据权利要求1所述的测试方法,其特征在于,所述根据所述脚本日志生成用于所述第二层的第二用例的步骤包括:
根据所述脚本日志和预先存储的用例模板生成所述第二用例。
4.根据权利要求3所述的测试方法,其特征在于,所述根据所述脚本日志和预先存储的用例模板生成所述第二用例的步骤包括:
根据所述用例模板提取所述脚本日志中的有效数据;
将所述有效数据写入所述用例模板中的对应位置,得到所述第二用例。
5.根据权利要求1所述的测试方法,其特征在于,所述操作信息包括:执行所述第一用例的过程中获取的外部操作动作和/或输入数据。
6.根据权利要求1所述的测试方法,其特征在于,对多个所述第一用例的操作信息进行转换;所述测试方法还包括:
根据将每个所述第一用例的操作信息转换为用于所述第二层的脚本日志的起止时间,确定与每个所述第一用例对应的脚本日志;
根据对应任一第一用例的脚本日志生成与所述任一第一用例对应的第二用例。
7.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:
接收外部触发的针对所述第二用例的测试请求;
根据所述测试请求将所述第二用例分发至所述分布式测试平台的当前功能执行者,以使所述当前功能执行者根据所述第二用例对待测应用程序的第二层进行测试。
8.根据权利要求7所述的测试方法,其特征在于,所述测试的步骤包括:
运行所述第二用例,并记录运行数据;
根据所述运行数据验证所述待测应用程序的第二层的测试结果。
9.根据权利要求8所述的测试方法,其特征在于,所述根据所述运行数据验证所述待测应用程序的测试结果的步骤包括:
在所述运行数据与所述第二用例对应的脚本日志相同的情况下,判定根据对所述待测应用程序的第二层的测试结果为成功。
10.根据权利要求7所述的测试方法,其特征在于,所述测试方法还包括:
检测所述当前功能执行者是否失效,如是,则:
将所述第二用例分发至其他有效的功能执行者,以使所述其他有效的功能执行者根据所述第二用例对待测应用程序的第二层进行测试。
11.一种基于分布式测试平台的测试装置,其特征在于,所述分布式测试平台至少包括第一层、及设置在所述第一层之上的第二层;所述测试装置包括:
用例获取模块,用于获取预先存储的用于所述第一层的第一用例,其中,所述第一层为表现层或者接口层;
转换模块,用于获取执行所述第一用例的操作信息,并将所述操作信息转换为用于所述第二层的脚本日志;
记录单元,用于记录所述脚本日志;以及,
生成模块,用于在检测到所述记录单元记录所述脚本日志的情况下,根据所述脚本日志生成用于所述第二层的第二用例。
12.一种电子设备,其特征在于,包括根据权利要求11所述的测试装置。
13.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器执行根据权利要求1-10中任一项所述的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810680004.7A CN110647458A (zh) | 2018-06-27 | 2018-06-27 | 基于分布式测试平台的测试方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810680004.7A CN110647458A (zh) | 2018-06-27 | 2018-06-27 | 基于分布式测试平台的测试方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110647458A true CN110647458A (zh) | 2020-01-03 |
Family
ID=68988632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810680004.7A Pending CN110647458A (zh) | 2018-06-27 | 2018-06-27 | 基于分布式测试平台的测试方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647458A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760709A (zh) * | 2020-09-29 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种自动化测试方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454660B1 (en) * | 2003-10-13 | 2008-11-18 | Sap Ag | System and method for testing applications at the business layer |
WO2016180237A1 (zh) * | 2015-07-27 | 2016-11-17 | 中兴通讯股份有限公司 | 一种北向接口测试装置和北向接口的测试方法 |
WO2017113912A1 (zh) * | 2015-12-30 | 2017-07-06 | 中兴通讯股份有限公司 | 物理层软件自动化测试方法和装置 |
WO2017162210A1 (zh) * | 2016-03-25 | 2017-09-28 | 中兴通讯股份有限公司 | 测试配置方法及装置 |
-
2018
- 2018-06-27 CN CN201810680004.7A patent/CN110647458A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454660B1 (en) * | 2003-10-13 | 2008-11-18 | Sap Ag | System and method for testing applications at the business layer |
WO2016180237A1 (zh) * | 2015-07-27 | 2016-11-17 | 中兴通讯股份有限公司 | 一种北向接口测试装置和北向接口的测试方法 |
WO2017113912A1 (zh) * | 2015-12-30 | 2017-07-06 | 中兴通讯股份有限公司 | 物理层软件自动化测试方法和装置 |
WO2017162210A1 (zh) * | 2016-03-25 | 2017-09-28 | 中兴通讯股份有限公司 | 测试配置方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760709A (zh) * | 2020-09-29 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种自动化测试方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9959201B2 (en) | Automated test generation for multi-interface enterprise virtualization management environment | |
US9465725B2 (en) | Software defect reporting | |
US10482001B2 (en) | Automated dynamic test case generation | |
US9665473B2 (en) | Smart tester application for testing other applications | |
WO2016095554A1 (zh) | 应用程序的测试方法、设备及系统 | |
US10241897B2 (en) | Identifying test gaps using code execution paths | |
US9720753B2 (en) | CloudSeer: using logs to detect errors in the cloud infrastructure | |
US20140282400A1 (en) | Systems and methods for managing software development environments | |
WO2017181591A1 (zh) | 测试方法及系统 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
Gao et al. | Saas testing on clouds-issues, challenges and needs | |
Gulenko et al. | A system architecture for real-time anomaly detection in large-scale nfv systems | |
EP3766008A1 (en) | System to determine performance based on entropy values | |
CN114546738A (zh) | 服务器通用测试方法、系统、终端及存储介质 | |
KR102488582B1 (ko) | 애플리케이션 실행 상태 검증 방법 및 장치 | |
CN112527252A (zh) | 小程序管理方法及装置、小程序平台、电子设备、介质 | |
US20180307575A1 (en) | Automated test generation for multi-interface and multi-platform enterprise virtualization management environment | |
US11829278B2 (en) | Secure debugging in multitenant cloud environment | |
US9626328B1 (en) | Method and system for on-demand aggregated logging for distributed systems | |
CN110119350A (zh) | 软件开发工具包测试方法、装置和设备及计算机存储介质 | |
CN113792341A (zh) | 应用程序的隐私合规自动化检测方法、装置、设备及介质 | |
CN116974874A (zh) | 数据库的测试方法、装置、电子设备及可读存储介质 | |
Frank et al. | Misim: A simulator for resilience assessment of microservice-based architectures | |
CN110647458A (zh) | 基于分布式测试平台的测试方法、装置及电子设备 | |
CN110795330A (zh) | 一种Monkey压力测试的方法和装置 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200527 Address after: 310051 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 100083, Beijing, Haidian District, Cheng Fu Road, No. 28, A building, block 12 Applicant before: UC MOBILE Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200103 |
|
RJ01 | Rejection of invention patent application after publication |