程序自动化测试方法及其相应的装置、设备、介质制造方法及图纸

技术编号:27006145 阅读:22 留言:0更新日期:2021-01-08 17:09
本申请公开一种程序自动化测试方法及其相应的装置、设备、介质,所述方法包括如下步骤:解析执行测试用例中的指令集,实施对受测程序进程的运行状态的监听;根据所述测试用例表征的常规测试业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序按照所述常规测试业务流程运行;当监听到所述常规测试业务流程过程触发异常时,根据所述测试用例表征的异常处理业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序清除所述异常后继续所述的常规测试业务流程。本申请实现了应用程序的自动测试功能,能通过自动清除测试过程中抛出的异常而确保自动测试过程中的高度稳定性,提升应用程序自动测试效率。

【技术实现步骤摘要】
程序自动化测试方法及其相应的装置、设备、介质
本申请涉及计算机软件测试领域,尤其涉及一种程序自动化测试方法、装置及其相应的电子设备和非易失性存储介质。
技术介绍
开发完成后的终端设备的应用程序(APP),需要经过测试才予以发布,以测试应用程序在终端设备中运行过程中的各种表现,及时发现潜在的各种运行问题,例如弹窗是否正常、业务逻辑是否正确、人机交互功能是否顺畅、是否出现异常等。终端设备侧的应用程序的测试需求,由于存在触控交互和屏幕尺寸差异等环境因素,对应用程序的交互体验更为看重,因此有不同于传统的台式计算机设备上的软件测试之处,更为重视人机交互方面的触控响应测试。终端设备侧的应用程序的另一个问题是版本更迭频繁,有时候一周或数天便发布一个新版本,新版本中涉及的代码修改方方面面,这些修改有时候也是牵一发而动全身,因此,程序测试团队常要面对大量的测试工作。考虑到人机交互本身存在随意化,程序测试通常是依赖于人工进行的。尽管人工测试可以最大化的还原用户使用习惯而实施一些触控交互测试,然而人工进行测试的效率可想而知。因此,每次新版本发布时,考虑到时效性和人工效率低下等因素,往往未经全面测试便仓促发布,常导致产生新的问题,影响使用体验。理论上可以通过为受测程序编写一些脚本,让这些脚本运行,将繁复的人为测试操作转换为自动执行的操作命令,但是,因为受测程序状态的复杂多变性,在受测过程中可能由于出现各种业务弹窗、网络状态优劣变化、设备处理速度快慢等等原因,导致受测程序在运行过程中抛出各种异常,从而导致中断测试。因此,机械式地编写一个稳定及可靠的测试用例变得异常困难和繁琐,难以实用。然而,另一方面,受测程序推陈出新的过程中,很多运行表现可能受代码修改而影响,但其实际的界面操作相关的业务流程并未发生实质性改变,这种情况下,测试用例的复用率较高,有助于提高测试效率,因此,测试用例的复用价值不容忽视。综合关于测试用例既有的困境以及其潜在的价值,面对海量应用程序不断更迭的现实,迫切需要一些有助于提升应用程序的自动化测试的稳定性的解决方案。
技术实现思路
本申请的首要目的在于解决上述问题至少之一而提供一种程序自动化测试方法及其相应的装置、电子设备、非易失性存储介质,以便提升应用程序自动化测试的稳定性。为满足本申请的各个目的,本申请采用如下技术方案:适应本申请的目的之一而提供的一种程序自动化测试方法,其包括如下步骤:解析执行测试用例中的指令集,实施对受测程序进程的运行状态的监听;根据所述测试用例表征的常规测试业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序按照所述常规测试业务流程运行;当监听到所述常规测试业务流程过程触发异常时,根据所述测试用例表征的异常处理业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序清除所述异常后继续所述的常规测试业务流程。部分实施例中,所述常规测试业务流程包括如下步骤:仿真第一操作事件以控制受测程序进程显示第一页面;仿真第二操作事件作用于所述第一页面中的一个控件/仿真第二操作事件以向第一页面输入预定义数据,使该进程响应于该第二操作事件而激活显示第二页面。部分实施例中,所述常规测试业务流程包括如下步骤:根据指令集触发一个仿真的操作事件;判断受测程序进程响应于该操作事件而切换的当前显示页面是否包含预期的显示页面的目标元素对象,根据判断结果执行所述常规测试业务流程中不同的分支流程。较佳的实施例中,当所述常规测试业务流程执行过程中显示弹窗时被判定为抛出异常,从而触发所述异常处理业务流程,在异常处理业务流程执行过程中,仿真相应的操作事件以关闭所述的弹窗。进一步的实施例中,解析执行测试用例中的指令集时,根据相应的指令集按照如下具体步骤实施对受测程序进程的运行状态的监听:勾住特定实例对象携带的用于定位受测程序的元素对象的对象定位接口,所述实例对象封装了受测程序进程的元素对象列表;拦截受测程序进程对任意元素对象的调用,以使受测程序进程跳转执行后一步骤;调用该对象定位接口从所述元素对象列表中查找受测程序进程是否存在被调用的所述元素对象,若存在则返回该元素对象,使受测程序进程继续执行,若查找元素对象失败,触发所述异常处理业务流程。适应前一实施例改进的另一实施例中,所述异常处理业务流程包括如下步骤:检查受测程序进程当前是否正显示任意已知类型的弹窗,若存在任意一个弹窗,仿真相应的操作事件将其关闭完成清除异常,以返回所述常规测试业务流程;当检查后未发现任意已知类型的弹窗时,再次调用所述对象定位接口查找受测程序进程是否存在被调用的所述元素对象,若查找成功,则返回所述常规测试业务流程。较佳的实施例中,本方法包括如下前置步骤:向服务器获取与受测程序的特征信息相对应的测试用例。适应本申请的目的之一而提供的一种程序自动化测试装置,其包括:解析执行模块,用于解析执行测试用例中的指令集,实施对受测程序进程的运行状态的监听;测试执行模块,用于根据所述测试用例表征的常规测试业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序按照所述常规测试业务流程运行;异常清除模块,被配置为当监听到所述常规测试业务流程过程触发异常时,根据所述测试用例表征的异常处理业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序消除所述异常后继续所述的常规测试业务流程。适应本申请的目的之一而提供的一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的程序自动化测试方法的步骤。适应本申请的另一目的而提供的一种非易失性存储介质,其以计算机可读指令的形式存储有依据所述的程序自动化测试方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。相对于现有技术,本申请的优势如下:首先,本申请将测试目标应用程序时所需的繁复的人工操作转换为测试用例指令集运行时实施的常规测试业务流程,通过测试用例中的指令集在运行时仿真模拟人工操作相对应的操作事件,来驱动受测程序按照预设的常规测试业务流程运行,在不同业务页面之间切换显示,由此实现自动化程序测试。在这一过程中,对受测程序进程实施技术监听,识别过程中抛出的异常,并适用测试用例所表征的异常处理业务流程清除这些异常,由此避免受测程序因为抛出异常而无法按照预设的常规测试业务流程运行,使这一业务流程能够在受测程序进程的异常被清除后得以继续执行,顺利完成整个期望的测试流程,不仅实现了应用程序测试的自动化,还提高了这种自动化测试流程的稳定性。其次,本申请以测试用例为载体,将其技术方案以指令集的形式体现到测试用例中,测试用例可解析,因此适于采用易编辑的脚本形式实现,而且,由于应用程序的前后多个版本之间,未必需要变更所述的常规测试业务流程,因此,测试用例可以作为一个独立范本进行组织和管理,可以直接应用于同一应用程序的多个不同版本,或者稍加修本文档来自技高网
...

【技术保护点】
1.一种程序自动化测试方法,其特征在于,其包括如下步骤:/n解析执行测试用例中的指令集,实施对受测程序进程的运行状态的监听;/n根据所述测试用例表征的常规测试业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序按照所述常规测试业务流程运行;/n当监听到所述常规测试业务流程过程触发异常时,根据所述测试用例表征的异常处理业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序清除所述异常后继续所述的常规测试业务流程。/n

【技术特征摘要】
1.一种程序自动化测试方法,其特征在于,其包括如下步骤:
解析执行测试用例中的指令集,实施对受测程序进程的运行状态的监听;
根据所述测试用例表征的常规测试业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序按照所述常规测试业务流程运行;
当监听到所述常规测试业务流程过程触发异常时,根据所述测试用例表征的异常处理业务流程相对应的指令集仿真相应的操作事件,控制所述受测程序清除所述异常后继续所述的常规测试业务流程。


2.根据权利要求1所述的方法,其特征在于,所述常规测试业务流程包括如下步骤:
仿真第一操作事件以控制受测程序进程显示第一页面;
仿真第二操作事件作用于所述第一页面中的一个控件/仿真第二操作事件以向第一页面输入预定义数据,使该进程响应于该第二操作事件而激活显示第二页面。


3.根据权利要求1所述的方法,其特征在于,所述常规测试业务流程包括如下步骤:
根据指令集触发一个仿真的操作事件;
判断受测程序进程响应于该操作事件而切换的当前显示页面是否包含预期的显示页面的目标元素对象,根据判断结果执行所述常规测试业务流程中不同的分支流程。


4.根据权利要求1所述的方法,其特征在于,当所述常规测试业务流程执行过程中显示弹窗时被判定为抛出异常,从而触发所述异常处理业务流程,在异常处理业务流程执行过程中,仿真相应的操作事件以关闭所述的弹窗。


5.根据权利要求1所述的方法,其特征在于,解析执行测试用例中的指令集时,根据相应的指令集按照如下具体步骤实施对受测程序进程的运行状态的监听:
勾住特定实例对象携带的用于定位受测程序的元素对象的对象定位接口,所述实例对象封装了受测程序进程的元素对象列表;
拦截受测程序进程对任意元素对象的调用,以使受测程序进程跳转执行后一步骤;
调用该对象定位接口从...

【专利技术属性】
技术研发人员:郭亚斌林祥宇
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1