掌桥专利:专业的专利平台
掌桥专利
首页

测试应用程序的方法及装置

文献发布时间:2023-06-19 11:29:13


测试应用程序的方法及装置

技术领域

本发明实施例涉及应用程序测试技术领域,具体涉及一种测试应用程序的方法及装置。

背景技术

随着互联网高速发展,软件行业也乘上了高速前进的列车,移动互联网更是催生了海量的移动应用。海量的移动应用促使传统架构的Web应用与微服务架构应用更加广泛,其业务也变得越来越复杂。复杂的业务逻辑,对应用的可用性提出了更高的要求。如何保证应用的稳定而又高效的运行,对应用的测试就显得尤为重要了。越来越多的人从公司的IT部门和非IT部门转行做测试,这表明测试已经成为了非常热门的职业发展方向,但是同时也带来了新的问题,测试人员水平参差不齐,测试管理水平与公司业务增长水平不匹配,大量的测试人员还是使用传统的测试方法。存在着大量的重复工作,测试质量无法保证,测试时间也不能保证,测试效率极其低下,测试质量也很难保证,导致了应用也极其不稳定,造成了公司极大的损失。针对这样的情况定制化的自动化测试框架Appium可以解决上述问题。

定制化的自动化测试框架Appium是一个开源测试自动化框架,可用于原生、混合和移动Web应用程序测试。它使用WebDriver协议驱动iOS,Android和Windows应用程序。然而,定制化的Appium工具存在不能实时自动检测测试用例及数据是否变更,不支持断点执行,这样不利于工作效率的提升。

发明内容

本发明实施例的一个目的在于提供一种测试应用程序的方法及装置,解决定制化的测试工具存在不能实时自动检测测试用例及数据是否变更,不支持断点执行的问题。

第一方面,本发明实施例提供一种测试应用程序的方法,包括:

在测试过程中,将待测试对象与最近一次执行对象进行比对;

根据比对结果,确定是否将所述待测试对象纳入测试队列;

如果将所述待测试对象纳入测试队列,则从预设的位置执行测试;

如果不将所述待测试对象纳入测试队列,则跳过所述待测试对象执行预定义操作。

可选地,所述将待测试对象与最近一次执行对象进行比对,包括:

在测试过程中,将当前时间执行的待测试对象与第一时间执行对象进行比对,所述第一时间是所述当前时间之前的时间;

所述根据比对结果,确定是否将所述待测试对象纳入测试队列,包括:

如果所述当前时间的待测试对象和所述第一时间执行对象中存在相同的数据,且所述当前时间与所述第一时间之间的时间差小于预设值,则不将所述待测试对象纳入测试队列;

如果所述当前时间的待测试对象和所述第一时间执行对象中存在相同的数据,且所述当前时间与所述第一时间之间的时间差大于预设值,或者,如果所述当前时间的待测试对象和所述第一时间执行对象中不存在相同的数据,则将所述待测试对象纳入测试队列。

可选地,所述方法还包括:

在测试过程中,检测测试报告的接收地址是否发生修改;

如果所述测试报告的接收地址发生修改,则更新所述测试报告的发送地址列表;

如果所述测试报告的接收地址没有发生修改,则不更新所述测试报告的发送地址列表。

可选地,所述在测试过程中,检测测试报告的接收地址是否发生修改,包括:

在发送测试报告的邮件之前,启动文件检测功能;

通过所述文件检测功能获取最近一次的邮件发送记录,将所述测试报告的接收地址与所述最近一次的邮件发送记录进行比对。

依据第二方面,本发明实施例还提供一种测试应用程序的装置,包括:

比对模块,用于在测试过程中,将待测试对象与最近一次执行对象进行比对;

确定模块,用于根据比对结果,确定是否将所述待测试对象纳入测试队列;如果将所述待测试对象纳入测试队列,则从预设的位置执行测试;如果不将所述待测试对象纳入测试队列,则跳过所述待测试对象执行预定义操作。

可选地,所述比对模块进一步用于:在测试过程中,将当前时间执行的待测试对象与第一时间执行对象进行比对,所述第一时间是所述当前时间之前的时间;

所述确定模块进一步用于:如果所述当前时间的待测试对象和所述第一时间执行对象中存在相同的数据,且所述当前时间与所述第一时间之间的时间差小于预设值,则不将所述待测试对象纳入测试队列;

如果所述当前时间的待测试对象和所述第一时间执行对象中存在相同的数据,且所述当前时间与所述第一时间之间的时间差大于预设值,或者,如果所述当前时间的待测试对象和所述第一时间执行对象中不存在相同的数据,则将所述待测试对象纳入测试队列。

可选地,所述装置还包括:检测模块,用于在测试过程中,检测测试报告的接收地址是否发生修改;如果所述测试报告的接收地址发生修改,则更新所述测试报告的发送地址列表;如果所述测试报告的接收地址没有发生修改,则不更新所述测试报告的发送地址列表。

可选地,所述检测模块进一步用于:在发送测试报告的邮件之前,启动文件检测功能;通过所述文件检测功能获取最近一次的邮件发送记录,将所述测试报告的接收地址与所述最近一次的邮件发送记录进行比对。

依据第三方面,本发明实施例还提供一种测试应用程序的装置,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的测试应用程序的方法的步骤。

依据第四方面,本发明实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的测试应用程序的方法的步骤。

在本发明实施例中,实时监控应用程序的配置文件中的数据,确定数据是否发生更改,由此决定该条数据是否纳入测试队列里。这样做从而实现了在更改配置文件中的数据时,不需要关闭测试客户端,重新进行测试;也可以实现在测试程序异常停止而重新启动时测试程序还能从异常停止的执行位置继续执行测试,不用重新开始执行测试,节省测试时间,提高测试的工作效率。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例中测试应用程序的方法的流程图;

图2为本发明实施例中测试安卓应用程序的示意图之一;

图3为本发明实施例中测试安卓应用程序的示意图之二;

图4为本发明实施例中测试iOS应用程序的示意图之一;

图5为本发明实施例中测试iOS应用程序的示意图之二;

图6为本发明实施例中测试Web应用程序的示意图之一;

图7为本发明实施例中测试Web应用程序的示意图之二;

图8为本发明实施例中测试应用程序的装置的结构框图之一;

图9为本发明实施例中测试应用程序的装置的结构框图之二。

具体实施方式

为了便于理解本发明实施例,先介绍以下技术术语。

(1)Appium:源代码开源的自动化测试框架,可以在原生应用、混合应用和移动Web应用中进行自动化的测试。

(2)安卓(Android):是Google公司开发的一种基于Linux的自由及开放源代码的操作系统。

(3)iOS:是由苹果公司开发的移动操作系统。

(4)Web(World Wide Web):全球广域网,也称为万维网,它是一种基于超文本和超文本传输协议(HyperText Transfer Protocol,HTTP)的、全球性的、动态交互的、跨平台的分布式图形信息系统。

(5)JDK:是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

(6)Postman:一种开源的接口调试工具。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书中的术语“包括”以及它的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,说明书以及权利要求中使用“和/或”表示所连接对象的至少其中之一,例如A和/或B,表示包含单独A,单独B,以及A和B都存在三种情况。

在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

参见图1,本发明实施例提供一种测试应用程序的方法,该方法包括:步骤101~步骤104。

步骤101:在测试过程中,将待测试对象与最近一次执行对象进行比对;

在本发明实施例中,应用程序的测试可以通过Appium进行,当然也可以通过其他自动化测试框架进行。

在本发明实施例中,待测试对象可以包括测试测试用例和/或数据,测试用例和/或数据保存在文件(excel,txt)中,测试人员可以直接修改文件,调整测试用例和/或数据。类似的测试用例和/或数据也可以存储在关系型数据库里(例如mysql等),也可以存储在非关系型数据库里(例如redis),示例性地,该待测试对象可以是应用程序的配置文件中的配置数据。其中,应用程序可以是Android应用程序、iOS应用程序、Web应用程序,当然也并不限于此。

在本发明实施例中,待测试对象可以包括:修改后的测试用例和/或数据,或者发生异常停止的执行点的测试用例和/或数据。最近一次执行对象是指最近一次应用程序的测试记录,该测试记录可以包括:应用程序的测试用例和/或数据,该邮件发送记录可以包括:邮件发送地址列表;其中,最近一次可以是针对相关待测试对象在此次测试的上一次测试。通过将待测试对象与最近一次执行对象进行比对可以实时的检测数据是否发生修改。

例如,基于测试时间,确定哪一次测试为当前测试的最近一次测试,比如,当前测试的时间为12:00,测试人员分别在之前的9:00和11:00针对应用程序进行了测试,那么可以将11:00进行的应用程序测试作为最近一次测试,将11:00的应用程序的测试记录作为最近一次执行对象。

示例性地,在测试过程中,实时监控应用程序的配置文件中的测试用例和/或数据,检查修改后的测试用例及数据与最近一次执行的测试用例和/或数据是否一致。比如,检查修改后测试报告的接收地址与最近一次邮件发送记录是否一致。

在本发明实施例中,完成的测试记录的最后一次的下一次就是最近一次,如果完成的最后一次没有下一次,则此为最近一次。

示例性地,在测试过程中,实时监测是否发生异常停止,如果监测到发生了异常停止,则检查发生异常停止的执行点的测试用例和/或数据与最近一执行的测试用例和/或数据是否一致。

步骤102:根据比对结果,确定是否将所述待测试对象纳入测试队列;

在本发明实施例中,测试队列中包括需要进行测试的测试用例和/或数据,如果将测试用例和/或数据纳入测试队列,则意味着要对该测试用例和/或数据进行测试,如果不将测试用例和/或数据纳入测试队列,则可以不对该测试用例和/或数据进行测试,继续执行后续的测试。

步骤103:如果将待测试对象纳入测试队列,则从预设的位置执行测试;

在本发明实施例中,预设的位置可以是应用程序的配置文件的起始位置,或者也可以是待测试对象所在的检查位置。

步骤104:如果不将待测试对象纳入测试队列,则跳过所述待测试对象执行预定义操作。

在本实施例中,跳过所述待测试对象执行预定义操作中的预定义操作,可以指的是从所述待测试对象的下一个测试对象执行测试,或者停止测试,或者跳转至其他测试对象进行测试,或者按照预先定义的其他操作策略执行测试等,在此不作限定。

在本发明实施例中,实时监控应用程序的配置文件中的测试用例和/或数据,确定测试用例和/或数据是否发生更改,由此决定该条测试用例和/或数据是否纳入测试队列里。这样做从而实现了在更改配置文件中的测试用例和/或数据时,不需要关闭测试客户端,重新进行测试;也可以实现在测试程序异常停止时,重新启动时测试程序还能从异常停止的执行位置继续执行测试,不用重新开始执行测试,节省测试时间,提高测试的工作效率。

在一些实施方式中,在步骤101中,在测试过程中,将当前时间执行的待测试对象与第一时间执行对象进行比对,所述第一时间是所述当前时间之前的时间。

其中,第一时间可以是最近一次完成测试记录的时间。

例如,基于测试时间,确定哪一次测试为第一时间的测试,比如,当前测试的时间为12:00,之前测试人员分别在9:00和11:00针对应用程序进行了测试,那么可以将11:00进行的应用程序测试作为第一时间的测试。

在一些实施方式中,在步骤102中,如果所述当前时间的待测试对象和所述第一时间执行对象中存在相同的数据,且所述当前时间与所述第一时间之间的时间差小于预设值,则不将所述待测试对象纳入测试队列;

如果所述当前时间的待测试对象和所述第一时间执行对象中存在相同的数据,且所述当前时间与所述第一时间之间的时间差大于预设值,或者,如果所述当前时间的待测试对象和所述第一时间执行对象中不存在相同的数据,则将所述待测试对象纳入测试队列。

在一些实施方式中,在步骤101中,在测试过程中,通过配置的状态管理的状态位,判断所述待测试对象与最近一次执行对象相比是否发生修改。例如,状态管理的状态位用于标识测试用例和/或数据是否进行过修改,例如状态管理的状态位为1比特,状态管理的状态位为“1”表示进行过修改,状态管理的状态位为“0”表示没有修改。

在一些实施方式中,图1所示的方法还可以包括:在测试过程中,检测测试报告的接收地址是否发生修改;如果所述测试报告的接收地址发生修改,则更新所述测试报告的发送地址列表;如果所述测试报告的接收地址没有发生修改,则不更新所述测试报告的发送地址列表。邮件发送(mailSend)模块按顺序发送邮件,从而完成整个流程,提高了工作效率。

例如,发送邮件前,mailSend模块启动文件检查(checkFile)功能,checkFile功能获取最近一次的邮件发送记录,将当前的邮件发送记录与最近一次的邮件发送记录对比,若变化,则更新邮件发送记录,更新完成通知mailSend模块,mailSend模块开始发送测试报告。

例如,基于测试时间,确定哪一次的邮件发送记录为最近一次的邮件发送记录,比如,当前测试的时间为12:00,之前分别在9:00和11:00通过邮件发送过测试报告,那么可以将11:00的邮件发送记录作为最近一次的邮件发送记录。

在本发明实施例中,通过配置邮件与最近一次执行对象进行比对,检查邮件接收人在测试过程中是否发生修改,若发生修改则更新发送地址列表,若没发生更改则不需要更新发送地址列表。邮件发送模块按顺序发送邮件,从而完成整个流程,提高了工作效率。

现有的定制化Appium工具存在不能实时自动检测测试用例和/或数据状态,不支持断点执行,不支持可配置测试报告,这样不利于工作效率的提升。而本发明实施例可以在定制化的Appium的基础上,通过改造其配置文件,新增状态信息,新增实时监控组件,新增邮件配置和发送组件,从而实现了实时自动检测测试用例和/或数据状态根据状态做出相应反应;进一步地,记录断点位置,自动化的断点执行;进一步地,可配置邮件发送组件,极大的提高了工作效率,节约了时间成本。

下面结合场景1、场景2和场景3介绍本发明实施例。

场景1:通过Appium对安卓应用程序进行测试。

配置文件填写完毕,启动Appium Python Client客户端,开始执行测试,在测试过程中发现有些测试用例及数据(相当于待测试对象)需要进行调整。例如,修改主配置文件,指定相应的数据,以及修改邮件配置文件,指定对应的接收人(包括测试报告的接收地址)。

参见图2,启动Appium Client Python加载配置文件,初始化数据,校验数据完整性,加载最近一次执行对象与其进行对比,若存在一样数据且时间相差不大,则不需要将测试用例及数据纳入测试队列,从下一条数据开始执行,若存在一样数据且时间差距很大或者不存在一样数据,则将测试用例及数据纳入测试队列,按顺序从开始位置执行;同时定时程序开始启动,实时接收配置数据是否发生更改,对应数据与最近一次数据对比是否发生变化;监控程序开始启动监控整个过程是否出现异常。

启动Appium Client Python启动完成后通过4723端口向Appium Server发起请求,Appium Server收到请求后解析相应数据根据请求参数通过相应端口调用android驱动,同时为客户端生成相应的会话(session)。

android驱动(Driver)响应Appium Server调用,根据调用参数向Android手机或者模拟发起请求。Android手机或者模拟收到请求,根据请求参数执行请求命令,向app发起执行命令。app收到命令后开始执行相应接口,收到接口返回值后反馈给上一级层层反馈,最后脚本展示结果,并开始执行下一条命令重复上述步骤直到生成测试报告。

进一步地,在测试过程中,可以实时将邮件配置文件数据与最近一次数据对比,若有变化更新测试报告的发送地址列表,并根据更新后的测试报告的发送地址列表发送邮件,若没有变化,则不更新测试报告的发送地址列表。

参见图3,修改main.properties文件,将测试用例及数据放到/data目录,修改mail.properties文件,执行Android AppCase客户端。Android AppCase开始加载相关配置文件,通过数据加载,数据初始化,数据检验完成启动;同时启动配置管理,邮件管理,状态管理,定时管理。整个监控进程也开始启动。

Appium Client Python启动完成后,开始加载最近一次执行对象与初始化的数据进行对比,若存在一样数据且时间相差不大,则不需要将测试用例及数据纳入测试队列,从下一条数据开始执行,从而实现了更改数据时,不需要关闭测试客户端,重新进行测试;若存在一样数据且时间差距很大或者不存在一样数据,则将测试用例及数据纳入测试队列,按顺序从开始位置执行。

Appium Client Python通过相应端口向Appium Server发出请求。

Appium Server收到请求解析相应数据后根据请求参数通过相应端口调用android驱动。android驱动相应Appium Server调用,根据调用参数向Android手机或者模拟发起请求。Android手机或者模拟收到请求,根据请求参数执行请求命令,向app发起执行命令。app收到命令后开始执行相应接口,收到接口返回值后反馈给上一级层层反馈,最后脚本展示结果,并开始执行下一条命令,在执行下条指令前,需要检查是否有新的或者更改的数据发来,若有则将数据纳入执行队列里,重复上述步骤直到生成测试报告。

进一步地,可以实时将检查邮件配置文件数据与最近一次数据对比,若有变化更新测试报告的发送地址列表,并根据更新后的测试报告的发送地址列表发送邮件,若没有变化,则不更新测试报告的发送地址列表。

场景2:通过Appium对iOS应用程序进行测试。

配置文件填写完毕,启动Appium Python Client客户端,开始执行测试,在测试过程中发现有些测试用例及数据(相当于待测试对象)需要进行调整。例如,修改主配置文件,指定相应的数据,以及修改邮件配置文件,指定对应的接收人(包括测试报告的接收地址)。

参见图4,启动Appium Client Python加载配置文件,初始化数据,校验数据完整性,加载最近一次执行对象与其进行对比,若存在一样数据且时间相差不大,则不需要将测试用例及数据纳入测试队列,从下一条数据开始执行,若存在一样数据且时间差距很大或者不存在一样数据,则将测试用例及数据纳入测试队列,按顺序从开始位置执行;同时定时程序开始启动,实时接收配置数据是否发生更改,对应数据与最近一次数据对比是否发生变化;监控程序开始启动监控整个过程是否出现异常。启动Appium Client Python启动完成后通过4723端口向Appium Server发起请求,Appium Server收到请求后解析相应数据根据请求参数通过相应端口调用iOS驱动,同时为客户端生成相应的session。

iOS驱动响应Appium Server调用,根据调用参数向Ios手机或者模拟发起请求。iOS手机或者模拟收到请求,根据请求参数执行请求命令,向app发起执行命令。app收到命令后开始执行相应接口,收到接口返回值后反馈给上一级层层反馈,最后脚本展示结果,并开始执行下一条命令重复上述步骤直到生成测试报告。

进一步地,可以实时将检查邮件配置文件数据与最近一次数据对比,若有变化更新测试报告的发送地址列表,并根据更新后的测试报告的发送地址列表发送邮件,若没有变化,则不更新测试报告的发送地址列表。

参见图5,修改main.properties文件,将测试用例及数据放到/data目录,修改mail.properties文件,执行iOSAppCase客户端。iOSAppCase开始加载相关配置文件,通过数据加载,数据初始化,数据检验完成启动;同时启动配置管理,邮件管理,状态管理,定时管理;整个监控进程也开始启动。Appium ClientPython启动完成后,加载最近一次执行对象与其进行对比,若存在一样数据且时间相差不大,则不需要将测试用例及数据纳入测试队列,从下一条数据开始执行,若存在一样数据且时间差距很大或者不存在一样数据,则将测试用例及数据纳入测试队列,按顺序从开始位置执行;同时定时程序开始启动,实时接收配置数据是否发生更改,对应数据与最近一次数据对比是否发生变化。Appium ClientPython通过相应端口向Appium Server发出请求。

Appium Server收到请求解析相应数据后根据请求参数通过相应端口调用iOS驱动。iOS驱动相应Appium Server调用,根据调用参数向iOS手机或者模拟发起请求。iOS手机或者模拟收到请求,根据请求参数执行请求命令,向app发起执行命令。app收到命令后开始执行相应接口,收到接口返回值后反馈给上一级层层反馈,最后脚本展示结果,并开始执行下一条命令,在执行下条指令前,需要检查状态及配置信息是否发生更改,若更改将更改的数据纳入执行队列里,重复上述步骤直到生成测试报告。

进一步地,可以实时将检查邮件配置文件数据与最近一次数据对比,若有变化更新测试报告的发送地址列表,并根据更新后的测试报告的发送地址列表发送邮件,若没有变化,则不更新测试报告的发送地址列表。

场景3:通过Appium对Web应用程序进行测试。

配置文件填写完毕,启动Appium Python Client客户端,开始执行测试,在测试过程中发现有些测试用例及数据(相当于待测试对象)需要进行调整。例如,修改主配置文件,指定相应的数据,以及修改邮件配置文件,指定对应的接收人(包括测试报告的接收地址)。

参见图6,启动Appium Client Python加载配置文件,初始化数据,校验数据完整性,检查执行点,若为默认值,则不需要将测试用例及数据纳入测试队列,按顺序执行;若不为默认值,则将测试用例及数据纳入测试队列,从指定位置开始执行;同时定时程序开始启动,实时检查配置数据是否发生更改,对应状态是否发生变化;监控程序开始启动监控整个过程是否出现异常。启动Appium Client Python启动完成后通过4723端口向AppiumServer发起请求,Appium Server收到请求后解析相应数据根据请求参数通过相应端口调用Web驱动,同时为客户端生成相应的session。

Web驱动响应Appium Server调用,根据调用参数向Web手机或者模拟发起请求。Web手机或者模拟收到请求,根据请求参数执行请求命令,向app发起执行命令。app收到命令后开始执行相应接口,收到接口返回值后反馈给上一级层层反馈,最后脚本展示结果,并开始执行下一条命令重复上述步骤直到生成测试报告。

进一步地,可以实时将检查邮件配置文件数据与最近一次数据对比,若有变化更新测试报告的发送地址列表,并根据更新后的测试报告的发送地址列表发送邮件,若没有变化,则不更新测试报告的发送地址列表。

参见图7,修改main.properties文件,将测试用例及数据放到/data目录,修改mail.properties文件,执行Web AppCase客户端。Web AppCase开始加载相关配置文件,通过数据加载,数据初始化,数据检验完成启动;同时启动配置管理,邮件管理,状态管理,定时管理;整个监控进程也开始启动。Appium Client Python启动完成后,开始检查执行点,若为默认值,则不需要将测试用例及数据纳入测试队列,按顺序执行;若不为默认值,则将测试用例及数据纳入测试队列,按顺序从开始位置执行。Appium Client Python通过相应端口向Appium Server发出请求。

Appium Server收到请求解析相应数据后根据请求参数通过相应端口调用web驱动。web驱动相应Appium Server调用,根据调用参数向Web手机或者模拟发起请求。Web手机或者模拟收到请求,根据请求参数执行请求命令,向app发起执行命令。app收到命令后开始执行相应接口,收到接口返回值后反馈给上一级层层反馈,最后脚本展示结果,并开始执行下一条命令,在执行下条指令前,需要检查状态及配置信息是否发生更改,若更改将更改的数据纳入执行队列里,重复上述步骤直到生成测试报告。

进一步地,可以实时将检查邮件配置文件数据与最近一次数据对比,若有变化更新测试报告的发送地址列表,并根据更新后的测试报告的发送地址列表发送邮件,若没有变化,则不更新测试报告的发送地址列表。

在上述场景1、场景2和场景3中,通过配置管理实时监控配置文件配置数据,通过状态管理的最近一次数据与本次数据进行对比来确定数据是否发生更改,由此决定该条测试是否纳入测试队列里。这样做实现了更改数据时,不需要关闭测试客户端,重新进行测试,有效节省测试人员的大量时间,提高了工作效率。

在上述场景1、场景2和场景3中,通过配置客户端与最近一次执行对象进行比对,来决定控制测试用例及数据是否纳入测试队列里,有效的解决了程序异常停止时,重新启动时程序还能从停止的位置继续执行,不用从零开始执行,此功能的出现节省了测试人员的大量时间,提高了工作效率。

在上述场景1、场景2和场景3中,通过配置邮件与最近一次执行对象进行比对,检查邮件接收人在测试过程中是否发生修改,若发生修改则更新发送地址列表,若没发生更改则不需要更新发送地址列表,根据获取的发生列表邮件管理模块按顺序发送邮件,从而完成整个流程,提高了工作效率。

参见图8,本发明实施例还提供一种测试应用程序的装置,该装置800包括:

比对模块801,用于在测试过程中,将待测试对象与最近一次执行对象进行比对;

确定模块802,用于根据比对结果,确定是否将所述待测试对象纳入测试队列;如果将所述待测试对象纳入测试队列,则从预设的位置执行测试;如果不将所述待测试对象纳入测试队列,则跳过所述待测试对象执行预定义操作。

在一些实施方式中,比对模块801进一步用于:在测试过程中,将当前时间执行的待测试对象与第一时间执行对象进行比对,所述第一时间是所述当前时间之前的时间;

所述确定模块802进一步用于:如果所述当前时间的待测试对象和所述第一时间执行对象中存在相同的数据,且所述当前时间与所述第一时间之间的时间差小于预设值,则不将所述待测试对象纳入测试队列;

如果所述当前时间的待测试对象和所述第一时间执行对象中存在相同的数据,且所述当前时间与所述第一时间之间的时间差大于预设值,或者,如果所述当前时间的待测试对象和所述第一时间执行对象中不存在相同的数据,则将所述待测试对象纳入测试队列。

在一些实施方式中,所述比对模块801进一步用于:在测试过程中,通过配置的状态管理的状态位,判断所述待测试对象与最近一次执行对象相比是否发生修改。

在一些实施方式中,继续参见图8,所述装置800还包括:

检测模块803,用于在测试过程中,检测测试报告的接收地址是否发生修改;如果所述测试报告的接收地址发生修改,则更新所述测试报告的发送地址列表;如果所述测试报告的接收地址没有发生修改,则不更新所述测试报告的发送地址列表。

在一些实施方式中,所述检测模块803进一步用于:在发送测试报告的邮件之前,启动文件检测功能;通过所述文件检测功能获取最近一次的邮件发送记录,将所述测试报告的接收地址与所述最近一次的邮件发送记录进行比对。

本发明实施例提供的测试应用程序的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

请参阅图9,图9是本发明实施例应用的测试应用程序的装置的结构图,如图9所示,测试应用程序的装置900包括:处理器901、收发机902、存储器903和总线接口,其中:

在本发明的一个实施例中,测试应用程序的装置900还包括:存储在存储器上903并可在处理器901上运行的程序,程序被处理器901执行时实现如图1所示的步骤。

在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器901代表的一个或多个处理器和存储器903代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机902可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。

处理器901负责管理总线架构和通常的处理,存储器903可以存储处理器901在执行操作时所使用的数据。

本发明实施例提供的通信设备,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述支持时间敏感通信服务质量的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等。

结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以由在处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、只读光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以携带在ASIC中。另外,该ASIC可以携带在核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 测试应用程序的至少一个应用程序接口的方法和测试系统
  • 测试依据获取方法、应用程序测试方法以及相关装置
技术分类

06120112941996