CN108694118B - 一种应用测试方法和装置 - Google Patents
一种应用测试方法和装置 Download PDFInfo
- Publication number
- CN108694118B CN108694118B CN201710232447.5A CN201710232447A CN108694118B CN 108694118 B CN108694118 B CN 108694118B CN 201710232447 A CN201710232447 A CN 201710232447A CN 108694118 B CN108694118 B CN 108694118B
- Authority
- CN
- China
- Prior art keywords
- test
- node
- task
- nodes
- configuration information
- 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
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/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/3664—Environments for testing or debugging software
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
技术领域
本发明涉及计算机技术领域,特别地涉及一种应用测试方法和装置。
背景技术
当前,几乎是所有的自动化测试人员都在用selenium2对Web UI进行自动化测试,selenium2也就是通过Selenium WebDriver来开发出一套框架,用于驱动不同类型的浏览器来模拟手动操作;另外也有人员为了方便编写用例,使用Watir WebDriver建立自己的框架,但是Watir WebDriver底层还是用到了Selenium WebDriver;还有些是在使用商业的软件QTP和QFTest来模拟手动操作。基于selenium WebDriver自己开发的框架由于selenium自身的缺陷和限制,会时常导致一些用例运行失败,为Web UI自动化测试的推广带来了诸多限制;而商业软件QTP等等工具由于许可的问题,并不为有技术实力的自动化测试部门所接受,而且录制生成的代码,很难看懂语义来维护,因此,Web UI自动化测试在大多数测试人员的眼中是个无底洞,维护成本高昂,运行不稳定,还需要手动干预,并且收益太低。
现有的方案是基于Selenium WebDriver来开发测试框架,并且结合TestNG等单元测试框架来完成测试用例的组织和执行,测试过程中可以本地执行或者远程执行,还有方案就是基于Watir WebDriver来编写测试框架,框架自己来组织测试用例生成DSL专属语言,方便不懂代码的测试人员可以用业务语言来编写测试用例,来本地执行或者远程执行,对于运行失败的情况,测试框架通常提供重试的方式重新执行一次,同时在Grid2远程执行的方式中,需要事先在节点上安装好对应版本的浏览器并且指定驱动路径。
现在技术的缺点就是,底层重度依赖Selenium WebDriver,受到SeleniumWebDriver本身的limitation的限制,测试人员编写的大量的测试脚本需要提前准备好测试环境和相关的配置信息,在测试过程是时常有元素定位和操作失败的问题需要分析并手动干预;另外,因为上一失败用例带来的测试环境脏数据,导致接下来的用例运行失败,有些问题能够通过retry的方式去解决,重新生成测试结果,而有些则无法继续运行;而基于Grid的远程执行的方式中,需要事先安装好相应版本的浏览器还有浏览器驱动的路径,这样无法达到完全自动化测试的效果,比如测试人员想要什么样的浏览器类型,浏览器版本,webdriver的版本,都是无法自动化灵活配置的。
发明内容
有鉴于此,本发明提供一种应用测试方法和装置,能够对测试环境进行灵活配置,并将测试环境配置自动下发,解决了测试人员编写的大量的测试脚本需要提前准备好测试环境和相关的配置信息的问题,在一定程度上大大提高自动化测试的执行效率。
为实现上述目的,根据本发明的第一个方面,提供了一种应用测试方法。
一种应用测试方法包括:根据预先设定的测试配置信息,生成测试任务;根据历史测试数据和所述测试配置信息确定执行所述测试任务的节点;将所述测试任务发送至所确定的所述节点,由所述节点执行所述测试任务并且生成测试结果。
可选地,所述测试配置信息包括以下各项中的至少一项:浏览器、运行系统、应用、执行机IP地址、以及测试用例。
可选地,所述根据历史测试数据和所述测试配置信息确定执行所述测试任务的节点的步骤包括:获取所有执行过所述测试用例的历史测试数据;根据所述历史测试数据将最新成功执行所述测试用例的节点作为候选节点;将所述候选节点按照主、从节点进行排列,以及将排列好的候选中的前M个节点作为待计算推荐系数的节点;其中,M为大于0的整数;根据推荐系数的计算公式计算每个待计算推荐系数的节点的推荐系数,并将计算得到的推荐系统从大到小进行排列;其中,推荐系数的计算公式如下:
其中,v代表测试配置信息中的浏览器版本,t代表浏览器类型,tag表示测试配置信息中的测试用例;weight表示节点的初始推荐系数:主节点的初始推荐系数是1、从节点的初始推荐系数是0.9;P(t,v,tag)是设定版本的浏览器上测试用例的成功次数,F(t,v,tag)是设定版本的浏览器上测试用例的失败次数,P(t,v,tag)+F(t,v,tag)代表测试用例总的运行次数;(t,v,tag)代表测试用例组tag和浏览器类型t和浏览器对应的版本v;将推荐系数排在前N的节点作为执行所述测试任务的节点;其中,0<N≤M。
可选地,所述将所述测试任务发送至所确定的所述节点的步骤包括:将所述测试任务按照节点之间的连接关系发送至执行所述测试任务的节点。
可选地,所述由所述节点执行所述测试任务并且生成测试结果的步骤包括:执行所述测试任务的节点接收所述测试任务;解析所述测试任务以得到该任务的测试配置信息;按照设定的对应于该节点的测试环境部署方案以及所述测试配置信息安装测试环境;执行所述测试配置信息中的测试用例并且生成测试结果。
可选地,在生成测试结果的步骤之后,还包括:将所述测试结果按照节点之间的连接关系返回给主控节点。
可选地,在生成测试结果的步骤之后,还包括:根据所述测试结果确定所述测试任务是否执行失败,并在确定所述测试任务执行失败的前提下,将所述测试任务按照节点之间的连接关系发送至所述执行节点的下一级节点,然后将下一级节点作为当前的执行节点对测试用例进行再次测试。
可选地,所述将所述测试任务发送至所确定的所述节点之前还包括:每隔设定的周期向各节点发送心跳指令。
根据本发明的第二个方面,提供了一种应用测试装置。
本发明的应用测试系统包括:任务生成模块,用于根据预先设定的测试配置信息,生成测试任务;节点确定模块,用于根据历史测试数据和所述测试配置信息确定执行所述测试任务的节点;结果生成模块,用于将所述测试任务发送至所确定的节点,由所述节点执行所述测试任务并且生成测试结果。
可选地,所述测试配置信息包括以下各项中的至少一项:浏览器、运行系统、应用、执行机IP地址、以及测试用例。
可选地,所述节点确定模块还用于:获取所有执行过所述测试用例的历史测试数据;根据所述历史测试数据将最新成功执行所述测试用例的节点作为候选节点;将所述候选节点按照主、从节点进行排列,以及将排列好的候选中的前M个节点作为待计算推荐系数的节点;其中,M为大于0的整数;根据推荐系数的计算公式计算每个待计算推荐系数的节点的推荐系数,并将计算得到的推荐系统从大到小进行排列;其中,推荐系数的计算公式如下:
其中,v代表测试配置信息中的浏览器版本,t代表浏览器类型,tag表示测试配置信息中的测试用例;weight表示节点的初始推荐系数:主节点的初始推荐系数是1、从节点的初始推荐系数是0.9;P(t,v,tag)是设定版本的浏览器上测试用例的成功次数,F(t,v,tag)是设定版本的浏览器上测试用例的失败次数,P(t,v,tag)+F(t,v,tag)代表测试用例总的运行次数;(t,v,tag)代表测试用例组tag和浏览器类型t和浏览器对应的版本v;将推荐系数排在前N的节点作为执行所述测试任务的节点;其中,0<N≤M。
可选地,所述结果生成模块还用于:将所述测试任务按照节点之间的连接关系发送至执行所述测试任务的节点。
可选地,所述结果生成模块还用于:执行所述测试任务的节点接收所述测试任务;解析所述测试任务以得到该任务的测试配置信息;按照设定的对应于该节点的测试环境部署方案以及所述测试配置信息安装测试环境;执行所述测试配置信息中的测试用例并且生成测试结果。
可选地,还包括结果返回模块,用于将所述测试结果按照节点之间的连接关系返回给主控节点。
可选地,还包括结果判定模块,用于根据所述测试结果确定所述测试任务是否执行失败,并在确定所述测试任务执行失败的前提下,将所述测试任务按照节点之间的连接关系发送至所述执行节点的下一级节点,然后将下一级节点作为当前的执行节点对测试用例进行再次测试。
可选地,还包括节点检测模块,用于每隔设定的周期向各节点发送心跳指令。
根据本发明的第三个方面,提供了一种应用测试设备。
本发明的应用测试设备包括:包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的应用测试的方法。
根据本发明的第四个方面,提供了一种计算机可读介质。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的应用测试的方法。
根据本发明的技术方案,提供一种能够稳定执行的测试系统,测试环境配置自动下发,准确验证结果的自动化方案来弥补开源工具本身的缺陷,自动化测试人员可以在前端页面根据图形化的节点信息方便的下发想要执行的测试用例和测试配置信息,能够观察到节点执行用例成功和失败的统计信息,系统会自动推荐测试套件的执行目标机,浏览器版本,测试框架版本,工具版本配置下发到目标机执行,包括测试环境的安装,测试用例的执行,测试结果的回告等,节点在执行的过程中根据执行的结果,自动对失败用例进行二次分发,分发到一组新的节点上继续执行,对测试结果分析后回告到上一级节点,依次类推,在初始节点对结果进行统计分析出最终的测试执行报告,同时对失败用例和成功用例进行备注,包括用例执行过的节点信息,失败次数,成功次数等等,这样就将测试环境和版本兼容性引起的问题能够最大程度的排除在外,大大提高自动化测试的执行效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种应用测试系统的示意图;
图2是本发明实施例提供的节点的物理拓扑示意图;
图3是根据本发明实施例的一种应用测试方法的示意图;
图4是适于用来实现本申请实施例的终端设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的一种应用测试装置的示意图。如图1所示,本发明实施例应用测试装置10主要包括:任务生成模块11、节点确定模块12、以及结果生成模块13;任务生成模块11用于根据预先设定的测试配置信息,生成测试任务;节点确定模块12用于根据历史测试数据和所述测试配置信息确定执行所述测试任务的节点;结果生成模块13用于将所述测试任务发送至所确定的节点,由所述节点执行所述测试任务并且生成测试结果;其中,测试配置信息包括以下各项中的至少一项:浏览器、运行系统、应用、执行机IP地址、以及测试用例。
应用测试装置10节点确定模块12还可用于:获取所有执行过所述测试用例的历史测试数据;根据所述历史测试数据将最新成功执行所述测试用例的节点作为候选节点;将所述候选节点按照主、从节点进行排列,以及将排列好的候选中的前M个节点作为待计算推荐系数的节点;其中,M为大于0的整数;根据推荐系数的计算公式计算每个待计算推荐系数的节点的推荐系数,并将计算得到的推荐系统从大到小进行排列;其中,推荐系数的计算公式如下:
其中,v代表测试配置信息中的浏览器版本,t代表浏览器类型,tag表示测试配置信息中的测试用例;weight表示节点的初始推荐系数:主节点的初始推荐系数是1、从节点的初始推荐系数是0.9;P(t,v,tag)是设定版本的浏览器上测试用例的成功次数,F(t,v,tag)是设定版本的浏览器上测试用例的失败次数,P(t,v,tag)+F(t,v,tag)代表测试用例总的运行次数;(t,v,tag)代表测试用例组tag和浏览器类型t和浏览器对应的版本v;将推荐系数排在前N的节点作为执行所述测试任务的节点;其中,0<N≤M。
应用测试装置10的结果生成模块13还可用于:将所述测试任务按照节点之间的连接关系发送至执行所述测试任务的节点。
应用测试装置10的结果生成模块13还可用于:执行所述测试任务的节点接收所述测试任务;解析所述测试任务以得到该任务的测试配置信息;按照设定的对应于该节点的测试环境部署方案以及所述测试配置信息安装测试环境;执行所述测试配置信息中的测试用例并且生成测试结果。
应用测试装置10还可包括结果返回模块(图中未示出),用于将所述测试结果按照节点之间的连接关系返回给主控节点。
应用测试装置10还可包括结果判定模块(图中未示出),用于根据所述测试结果确定所述测试任务是否执行失败,并在确定所述测试任务执行失败的前提下,将所述测试任务按照节点之间的连接关系发送至所述执行节点的下一级节点,然后将下一级节点作为当前的执行节点对测试用例进行再次测试。
应用测试装置10还可包括节点检测模块(图中未示出),用于每隔设定的周期向各节点发送心跳指令。
在应用测试装置10生成测试报告后,还可将测试报告显示在终端设备上。
本发明实施例的技术方案可由以下测试系统来实现,包括:参数配置系统、节点推荐系统、若干主控节点、以及若干节点;所述参数配置系统用于保存测试人员所设定的测试配置信息,以生成测试任务;所述节点推荐系统用于根据主控节点中的历史测试报告和所述测试配置信息确定执行所述测试任务的节点;所述主控节点用于将所述测试任务发送至所述节点;所述节点用于执行所述测试任务从而生成测试结果。其中,测试配置信息包括:浏览器、运行系统、应用、执行机IP地址、以及测试用例。在该系统中,节点包括主节点和从节点。主从节点与主控节点之间的连接关系如图2所示。
如图2所示,本发明实施例中,用户通过主控节点来下发测试执行,Master节点(即主节点对应level1),对应自动部署方案A;Slave节点(即从节点)对应level2,对应自动部署方案B,该实施例中所提供的自动部署方案A和自动部署方案B如下:
自动部署方案A:重新部署浏览器版本,部署Selenium WebDriver版本;
自动部署方案B:自动部署应用App测试环境,重新部署浏览器版本,部署SeleniumWebDriver版本。
从上述自动部署方案可以看出,相对于从节点,主节点在自动部署时相对从节点较快,因而,在待执行测试任务的节点中,优先选择级别高的主节点。
图3是根据本发明实施例的一种应用测试方法的示意图。如图3所示,本发明实施例的应用测试方法可以由测试系统执行,以测试系统为例对该应用测试方法进行详细说明,主要包括如下步骤S30至S32。
步骤S30:根据预先设定的测试配置信息,生成测试任务。在该步骤中,测试人员根据测试需要通过参数配置系统设置测试配置信息;其中,测试配置信息包括:浏览器、运行系统、应用、执行机IP地址、以及测试用例。
步骤S31:根据历史测试数据和所述测试配置信息确定执行所述测试任务的节点。本发明的技术方案中,节点推荐系统根据节点执行的历史数据来进行推荐;因此,以步骤S30的测试配置信息中测试用例为例来对节点推荐系统的工作流程进行详细说明:首先,节点推荐系统从所有的主控节点中获取执行过所设置的测试用例的历史测试报告;其次,节点推荐系统根据所述历史测试报告将最新成功执行所述测试用例的节点作为候选节点;再次,节点推荐系统将所述候选节点按照主、从节点进行排列,以及将排列好的候选中的前M个节点作为待计算推荐系数的节点;由于主从节点所对应的测试环境的部署(安装)方案不同,相对于从节点来说,主节点在测试环境的部署时所需的时间更短,因而,在节点推荐的时候通常将主节点作为首选节点进行推荐;然后,节点推荐系统根据推荐系数的计算公式计算每个待计算推荐系数的节点的推荐系数,并将计算得到的推荐系统从大到小进行排列;其中,其中,M为大于0的整数;推荐系数的计算公式如下:
其中,v代表测试配置信息中的浏览器版本,t代表浏览器类型,tag表示测试配置信息中的测试用例;weight表示节点的初始推荐系数:master节点的初始推荐系数是1、slave节点的初始推荐系数是0.9;P(t,v,tag)是设定版本的浏览器上测试用例的成功次数,F(t,v,tag)是设定版本的浏览器上测试用例的失败次数,P(t,v,tag)+F(t,v,tag)代表测试用例总的运行次数;(t,v,tag)代表测试用例组tag和浏览器类型t和浏览器对应的版本v;
最后,节点推荐系统将推荐系数排在前N的节点作为执行所述测试任务的节点,以得到所述测试用例的节点执行线路;其中,0<N≤M。
在通过步骤S31确定执行所述测试任务的节点后,节点推荐系统还可以将执行所述测试任务的节点执行线路显示在终端设备上(比如显示屏等显示设备),方便测试人员观测执行任务节点的执行信息,例如节点历史执行信息,失败次数,成功次数等等。
步骤S32:将所述测试任务发送至所确定的所述节点,由所述节点执行所述测试任务并且生成测试结果。在该步骤中,执行任务的主控节点将所述测试任务按照节点之间的连接关系发送至执行所述测试任务的节点。节点之间的连接关系:主控节点、主节点、以及从节点依次连接,当执行测试任务的节点为主节点时,主控节点将测试任务直接下发至执行测试任务的主节点;当执行测试任务的节点为从节点时,主控节点首先将测试任务下发至该从节点的主节点,然后主节点再将测试任务下发至从节点。在将测试任务下发之前,主控节点每隔设定的周期(周期长短可以进行设置)向与该主控节点连接的节点发送心跳指令,定时检测节点的存活状态。
以主节点作为执行测试任务的节点来说,当执行任务的主节点接收到测试任务时,根据以下步骤生成测试结果的步骤包括:
步骤A:执行所述测试任务的节点接收所述测试任务;
步骤B:解析所述测试任务以得到该任务的测试配置信息;测试配置信息包括:浏览器、运行系统、应用、执行机IP地址、以及测试用例。
步骤C:按照设定的对应于该节点的测试环境部署方案以及所述测试配置信息安装测试环境;对于主节点来说,重新获取浏览器版本并安装浏览器,重新获取SeleniumWebDriver版本并安装;
步骤D:执行所述测试配置信息中的测试用例以生成测试结果,并将该测试结果返回给该节点的主控节点。
当主节点执行完所述测试配置信息中的测试用例时,判断所述测试结果是否测试失败,并在测试结果显示测试失败时,将所述测试任务按照节点之间的连接关系发送至该主节点的下一级节点(即该节点的从节点),然后将该从节点作为执行节点对测试用例进行再次测试。
当从节点作为执行节点时,根据以下步骤生成测试结果:
步骤a:从节点接收所述测试任务;
步骤b:解析所述测试任务以得到该任务的测试配置信息;
步骤c:按照设定的对应于该执行节点的测试环境部署方案以及所述测试配置信息安装测试环境;对于从节点来说,自动部署应用App测试环境,重新获取浏览器版本并安装,重新获取Selenium WebDriver版本并安装;
步骤d:执行所述测试配置信息中的测试用例以生成测试结果。
当从节点执行完所述测试用例后,从节点按照节点之间的连接关系将生成的测试结果返回给该节点对应的主控节点,从而形成该节点的历史测试数据。
在主从节点执行测试任务的时候,都需要根据配置信息对测试环境重新进行安装,使测试用例在可以再次在新的执行环境中执行,改变了测试执行不稳定的问题,也在测试过程中减少了测试环境对测试过程的影响。
当执行测试任务的节点执行完测试任务得到测试结果后,测试结果显示在终端设备上,方便测试人员对测试结果的查看。
下面参考图4,其示出了适于用来实现本申请实施例的终端设备的计算机系统400的结构示意图。图4示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分608加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文所提到的测试方法描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行测试方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块,可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种应用测试装置10包括任务生成模块11、节点确定模块12、以及结果生成模块13。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,结果生成模块13用于将所述测试任务发送至所确定的节点,由所述节点执行所述测试任务并且生成测试结果。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据预先设定的测试配置信息,生成测试任务;根据历史测试数据和所述测试配置信息确定执行所述测试任务的节点;将所述测试任务发送至所确定的所述节点,由所述节点执行所述测试任务并且生成测试结果。
根据本发明实施例的技术方案,提供一种能够稳定执行的测试系统,测试环境配置自动下发,准确验证结果的自动化方案来弥补开源工具本身的缺陷,自动化测试人员可以在前端页面根据图形化的节点信息方便的下发想要执行的测试用例和测试配置信息,能够观察到节点执行用例成功和失败的统计信息,系统会自动推荐测试套件的执行目标机,浏览器版本,测试框架版本,工具版本配置下发到目标机执行,包括测试环境的安装,测试用例的执行,测试结果的回告等,节点在执行的过程中根据执行的结果,自动对失败用例进行二次分发,分发到一组新的节点上继续执行,对测试结果分析后回告到上一级节点,依次类推,在初始节点对结果进行统计分析出最终的测试执行报告,同时对失败用例和成功用例进行备注,包括用例执行过的节点信息,失败次数,成功次数等等,这样就将测试环境和版本兼容性引起的问题能够最大程度的排除在外,大大提高自动化测试的执行效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (18)
1.一种应用测试方法,其特征在于,包括:
根据预先设定的测试配置信息,生成测试任务;
根据历史测试数据和所述测试配置信息确定执行所述测试任务的节点,包括:
获取所有执行过所述测试用例的历史测试数据;
根据所述历史测试数据将最新成功执行所述测试用例的节点作为候选节点;
所述节点包括主节点和从节点,将所述候选节点按照主、从节点进行排列,以及将排列好的候选中的前M个节点作为待计算推荐系数的节点;其中,M为大于0的整数;其中,所述主节点和所述从节点对应不同的测试环境部署方案;
根据推荐系数的计算公式计算每个待计算推荐系数的节点的推荐系数,并将计算得到的推荐系统从大到小进行排列;其中,推荐系数的计算公式如下:
其中,v代表测试配置信息中的浏览器版本,t代表浏览器类型,tag表示测试配置信息中的测试用例;weight表示节点的初始推荐系数:主节点的初始推荐系数是1、从节点的初始推荐系数是0.9;P(t,v,tag)是设定版本的浏览器上测试用例的成功次数,F(t,v,tag)是设定版本的浏览器上测试用例的失败次数, P(t,v,tag)+F(t,v,tag)代表测试用例总的运行次数;(t,v,tag)代表测试用例组tag和浏览器类型t和浏览器对应的版本v;
将所述测试任务发送至所确定的所述节点,由所述节点执行所述测试任务并且生成测试结果。
2.根据权利要求1所述的方法,其特征在于,所述测试配置信息包括以下各项中的至少一项:浏览器、运行系统、应用、执行机IP地址、以及测试用例。
3.根据权利要求2所述的方法,其特征在于,所述主节点部署测试环境的时间短于所述从节点,优先选择所述主节点执行所述测试任务。
4.根据权利要求1所述的方法,其特征在于,所述将所述测试任务发送至所确定的所述节点的步骤包括:将所述测试任务按照节点之间的连接关系发送至执行所述测试任务的节点。
5.根据权利要求1所述的方法,其特征在于,所述由所述节点执行所述测试任务并且生成测试结果的步骤包括:
执行所述测试任务的节点接收所述测试任务;
解析所述测试任务以得到该任务的测试配置信息;
按照设定的对应于该节点的测试环境部署方案以及所述测试配置信息安装测试环境;
执行所述测试配置信息中的测试用例并且生成测试结果。
6.根据权利要求5所述的方法,其特征在于,在生成测试结果的步骤之后,还包括:
将所述测试结果按照节点之间的连接关系返回给主控节点。
7.根据权利要求5所述的方法,其特征在于,在生成测试结果的步骤之后,还包括:
根据所述测试结果确定所述测试任务是否执行失败,并在确定所述测试任务执行失败的前提下,将所述测试任务按照节点之间的连接关系发送至所述执行节点的下一级节点,然后将下一级节点作为当前的执行节点对测试用例进行再次测试。
8.根据权利要求1所述的方法,其特征在于,所述将所述测试任务发送至所确定的所述节点之前还包括:每隔设定的周期向各节点发送心跳指令。
9.一种应用测试装置,其特征在于,包括:
任务生成模块,用于根据预先设定的测试配置信息,生成测试任务;
节点确定模块,用于根据历史测试数据和所述测试配置信息确定执行所述测试任务的节点,包括:
获取所有执行过所述测试用例的历史测试数据;
根据所述历史测试数据将最新成功执行所述测试用例的节点作为候选节点;
所述节点包括主节点和从节点,将所述候选节点按照主、从节点进行排列,以及将排列好的候选中的前M个节点作为待计算推荐系数的节点;其中,M为大于0的整数;其中,所述主节点和所述从节点对应不同的测试环境部署方案;
根据推荐系数的计算公式计算每个待计算推荐系数的节点的推荐系数,并将计算得到的推荐系统从大到小进行排列;其中,推荐系数的计算公式如下:
其中,v代表测试配置信息中的浏览器版本,t代表浏览器类型,tag表示测试配置信息中的测试用例;weight表示节点的初始推荐系数:主节点的初始推荐系数是1、从节点的初始推荐系数是0.9;P(t,v,tag)是设定版本的浏览器上测试用例的成功次数,F(t,v,tag)是设定版本的浏览器上测试用例的失败次数, P(t,v,tag)+F(t,v,tag)代表测试用例总的运行次数;(t,v,tag)代表测试用例组tag和浏览器类型t和浏览器对应的版本v;
结果生成模块,用于将所述测试任务发送至所确定的节点,由所述节点执行所述测试任务并且生成测试结果。
10.根据权利要求9所述的装置,其特征在于,所述测试配置信息包括以下各项中的至少一项:浏览器、运行系统、应用、执行机IP地址、以及测试用例。
11.根据权利要求10所述的装置,其特征在于,所述主节点部署测试环境的时间短于所述从节点,优先选择所述主节点执行所述测试任务。
12.根据权利要求9所述的装置,其特征在于,所述结果生成模块还用于:将所述测试任务按照节点之间的连接关系发送至执行所述测试任务的节点。
13.根据权利要求9所述的装置,其特征在于,所述结果生成模块还用于:
执行所述测试任务的节点接收所述测试任务;
解析所述测试任务以得到该任务的测试配置信息;
按照设定的对应于该节点的测试环境部署方案以及所述测试配置信息安装测试环境;
执行所述测试配置信息中的测试用例并且生成测试结果。
14.根据权利要求13所述的装置,其特征在于,还包括结果返回模块,用于将所述测试结果按照节点之间的连接关系返回给主控节点。
15.根据权利要求13所述的装置,其特征在于,还包括结果判定模块,用于根据所述测试结果确定所述测试任务是否执行失败,并在确定所述测试任务执行失败的前提下,将所述测试任务按照节点之间的连接关系发送至所述执行节点的下一级节点,然后将下一级节点作为当前的执行节点对测试用例进行再次测试。
16.根据权利要求9所述的装置,其特征在于,还包括节点检测模块,用于每隔设定的周期向各节点发送心跳指令。
17.一种应用测试设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710232447.5A CN108694118B (zh) | 2017-04-11 | 2017-04-11 | 一种应用测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710232447.5A CN108694118B (zh) | 2017-04-11 | 2017-04-11 | 一种应用测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108694118A CN108694118A (zh) | 2018-10-23 |
CN108694118B true CN108694118B (zh) | 2021-10-01 |
Family
ID=63843465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710232447.5A Active CN108694118B (zh) | 2017-04-11 | 2017-04-11 | 一种应用测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108694118B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753433A (zh) * | 2018-12-26 | 2019-05-14 | 中链科技有限公司 | 基于区块链的自动化测试方法、装置及电子设备 |
CN109902016B (zh) * | 2019-03-04 | 2022-06-14 | 网易(杭州)网络有限公司 | 一种Web的测试方法及测试平台 |
CN109976773B (zh) * | 2019-04-04 | 2023-01-10 | 网易(杭州)网络有限公司 | 游戏测试环境的部署方法和装置 |
CN110347590A (zh) * | 2019-06-18 | 2019-10-18 | 平安普惠企业管理有限公司 | 业务系统的接口测试控制方法及装置 |
CN113127335A (zh) * | 2020-01-16 | 2021-07-16 | 北京京东振世信息技术有限公司 | 一种系统测试的方法和装置 |
CN113760704A (zh) * | 2020-09-16 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | Web UI的测试方法、装置、设备以及存储介质 |
CN113064811A (zh) * | 2020-12-25 | 2021-07-02 | 浙江鲸腾网络科技有限公司 | 基于工作流的自动化测试方法、装置以及电子设备 |
CN113590496B (zh) * | 2021-09-01 | 2023-06-02 | 建信金融科技有限责任公司 | 自动化测试方法及装置 |
CN114880213A (zh) * | 2022-04-19 | 2022-08-09 | 北京金堤科技有限公司 | 网页界面测试方法、装置、存储介质与电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2447838A1 (en) * | 2010-10-29 | 2012-05-02 | Fujitsu Limited | Technique for efficient parallelization of software analysis in a distributed computing environment through intelligent dynamic load balancing |
CN104978269A (zh) * | 2015-06-30 | 2015-10-14 | 四川九洲电器集团有限责任公司 | 一种自动化测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326901B (zh) * | 2013-06-26 | 2016-07-06 | 国家电网公司 | 一种电力系统宽带网络性能测试方法及系统 |
-
2017
- 2017-04-11 CN CN201710232447.5A patent/CN108694118B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2447838A1 (en) * | 2010-10-29 | 2012-05-02 | Fujitsu Limited | Technique for efficient parallelization of software analysis in a distributed computing environment through intelligent dynamic load balancing |
CN104978269A (zh) * | 2015-06-30 | 2015-10-14 | 四川九洲电器集团有限责任公司 | 一种自动化测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108694118A (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108694118B (zh) | 一种应用测试方法和装置 | |
US8381184B2 (en) | Dynamic test coverage | |
US9378124B1 (en) | Software testing optimizer | |
US9703694B2 (en) | Techniques for testing software | |
US8448139B2 (en) | Automatic correction of application based on runtime behavior | |
US20150026664A1 (en) | Method and system for automated test case selection | |
US8918760B2 (en) | Test script generation for application image validation | |
US20170192880A1 (en) | Defect prediction | |
US9886372B2 (en) | Automatic correction of application based on runtime behavior | |
CN109901985B (zh) | 分布式测试装置及方法、存储介质和电子设备 | |
US10642720B2 (en) | Test case generator built into data-integration workflow editor | |
US20170235661A1 (en) | Integration of Software Systems via Incremental Verification | |
CN108958992A (zh) | 测试方法和装置 | |
US9946629B2 (en) | System, method and apparatus for deriving root cause for software test failure | |
CN110674047B (zh) | 软件测试方法、装置及电子设备 | |
US11263113B2 (en) | Cloud application to automatically detect and solve issues in a set of code base changes using reinforcement learning and rule-based learning | |
CN106557878B (zh) | 开发项目管理方法及装置 | |
US20170097812A1 (en) | Automated and heuristically managed solution to quantify cpu and path length cost of instructions added, changed or removed by a service team | |
US11768751B2 (en) | Software performance testing | |
CN114186697B (zh) | 基于深度学习框架生成和应用深度学习模型的方法及装置 | |
CN109710528A (zh) | 一种测试脚本生成方法、装置、设备和介质 | |
CN110058920A (zh) | 虚拟机性能检测方法及装置、电子设备、存储介质 | |
US10796315B2 (en) | Automated recertification of a safety critical system | |
US9612944B2 (en) | Method and system for verifying scenario based test selection, execution and reporting | |
CN112988578A (zh) | 一种自动化测试方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |