CN111625459A - 应用程序测试方法、装置、计算机设备及存储介质 - Google Patents

应用程序测试方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111625459A
CN111625459A CN202010461897.3A CN202010461897A CN111625459A CN 111625459 A CN111625459 A CN 111625459A CN 202010461897 A CN202010461897 A CN 202010461897A CN 111625459 A CN111625459 A CN 111625459A
Authority
CN
China
Prior art keywords
test
program
file
result
test case
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
Application number
CN202010461897.3A
Other languages
English (en)
Inventor
黄康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202010461897.3A priority Critical patent/CN111625459A/zh
Publication of CN111625459A publication Critical patent/CN111625459A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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

应用程序测试方法、装置、计算机设备及存储介质
技术领域
本发明涉及测试工具的技术领域,尤其涉及一种应用程序测试方法、装置、计算机设备及存储介质。
背景技术
程序开发过程中需对所开发的应用程序进行测试,测试也即为应用程序整个开发流程中的最后一步,只有测试合格的应用程序才能投入实际使用,待测试应用程序为实现其与使用者进行交互的功能均会在其中设置交互事件,在对待测试应用程序进行测试过程中,则需根据其中所包含的交互事件生成对应的单元测试脚本以测试交互事件,传统的测试方法均是程序开发人员根据特定的交互事件编写对应的单元测试脚本,对于大型应用程序,则需要投入大量人力成本完成单元测试脚本的编写,然而人工编写单元测试脚本需耗费大量时间,影响了对待测试应用程序的测试效率,导致应用程序测试开发周期大幅增加。因而现有技术方法中存在无法对包含交互事件的待测试应用程序进行高效测试的问题。
发明内容
本发明实施例提供了一种应用程序测试方法、装置、计算机设备及存储介质,旨在解决现有的现有技术方法所存在的无法对包含交互事件的待测试应用程序进行高效测试的问题。
第一方面,本发明实施例提供了一种应用程序测试方法,其包括:
若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件;
根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中;
对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果;
若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果;
对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。
第二方面,本发明实施例提供了一种应用程序测试装置,其包括:
测试文件生成单元,用于若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件;
测试案例写入单元,用于根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中;
测试案例模拟触发单元,用于对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果;
执行结果获取单元,用于若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果;
测试报告生成单元,用于对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的应用程序测试方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的应用程序测试方法。
本发明实施例提供了一种应用程序测试方法、装置、计算机设备及存储介质。根据用户所输入的待测试程序生成对应的测试文件,并进一步生成测试案例写入测试文件中,对测试文件中的测试案例进行模拟触发以得到触发结果,若触发结果均为正确触发,执行测试文件以得到执行结果,并根据执行结果及预期结果生成对应的测试报告。可基于待测试程序所包含的交互事件自动化生成测试文件,并在执行测试文件之前对测试文件中的测试案例进行模拟触发,可大幅提升测试文件执行的成功率,缩短了包含交互事件的待测试程序的测试时间,并提升对待测试程序进行测试的效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用程序测试方法的流程示意图;
图2为本发明实施例提供的应用程序测试方法的子流程示意图;
图3为本发明实施例提供的应用程序测试方法的另一子流程示意图;
图4为本发明实施例提供的应用程序测试方法的另一流程示意图;
图5为本发明实施例提供的应用程序测试方法的另一子流程示意图;
图6为本发明实施例提供的应用程序测试方法的另一流程示意图;
图7为本发明实施例提供的应用程序测试方法的另一子流程示意图;
图8为本发明实施例提供的应用程序测试装置的示意性框图;
图9为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本发明实施例提供的应用程序测试方法的流程示意图。该应用程序测试方法应用于用户终端中,该方法通过安装于用户终端中的应用软件进行执行,用户可将待测试程序输入用户终端中以对该待测试程序进行测试,用户终端即是用于接收待测试程序并进行测试的终端设备,用户终端可以是台式电脑、笔记本电脑、平板电脑或手机等。
如图1所示,该方法包括步骤S110~S150。
S110、若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件。
若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件。待测试程序即为包含交互事件的待测试的应用程序,待测试的应用程序通过测试后即可安装于客户端以供客户端的使用者进行使用,交互事件即为使用者在使用应用程序的过程中与应用程序进行交互的事件,对于笔记本电脑或台式电脑等不包含触控功能的客户端,交互事件可以通过用户点击鼠标或敲击键盘实现,对于手机或平板电脑等包含触控功能的客户端,交互事件可以通过用户输出的触控操作实现。待测试程序中包含多个程序文件,程序文件可以是实现具体交互功能的程序组件,也可以不是,例如,jpg格式的程序文件仅供在客户端的界面中进行显示,而无法实现具体交互功能,因此其不是程序组件。一个程序组件可用于实现对应的交互功能;测试文件即为根据待测试程序中的每个程序组件所对应生成的用于测试的文件,每一个程序组件对应生成一个测试文件,每一个测试文件可对与该测试文件对应的一个程序组件进行测试,测试文件仅用于对待测试应用程序进行测试,测试文件在应用程序实际运行时不会被执行。
在一具体的实施例中,如图2所示,步骤S110包括子步骤S111、S112和S113。
S111、遍历所述待测试程序中的所有程序文件以将与预存的组件模板相匹配的多个所述程序文件确定为程序组件。
遍历所述待测试程序中的所有程序文件以将与预存的组件模板相匹配的多个所述程序文件确定为程序组件。对待测试程序中的程序文件进行遍历,将程序文件中所包含的文件内容与组件模板进行匹配,以将与组件模板相匹配的文件内容确定为程序组件,一个待测试程序对应包含多个程序组件,组件模板即为用户终端预存的用于获取程序组件的模板信息。
例如,组件模板可以是与程序文件的文件名称进行匹配的关键字信息,若程序文件的文件名称后缀或与关键字信息相匹配,则将该程序文件确定为程序组件。
S112、在所述待测试程序用于对所有所述程序文件进行存储的根目录中创建测试目录。
在所述待测试程序用于对所有所述程序文件进行存储的根目录中创建测试目录。根据待测试程序的存储地址,在待测试程序存储地址的根目录中创建根文件夹,根目录即为对待测试程序中的程序文件进行存储的最上一级目录,根目录有且仅有一个,在根文件夹内根据待测试程序中程序文件的目录结构创建对应的测试文件夹,根文件夹及其所包含的测试文件夹即为与待测试程序对应的测试目录,根文件夹的名称可以在应用程序名称后添加“-test”得到,测试文件夹的名称可以在程序文件所存储的目录的名称后添加“-test”得到。
S113、生成与每一所述程序组件对应的测试文件并存储至所述测试目录中。
生成与每一所述程序组件对应的测试文件并存储至所述测试目录中。每一个程序组件对应生成一个测试文件,每一个测试文件可对与该测试文件对应的一个程序组件进行测试,所生成的测试文件均为不包含任何内容的空文件,测试文件的文件名可以在程序组件的名称后添加“.test.js”得到。
S120、根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中。
根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中。所述模板库包括事件关键字及案例模板,模板库即为用户终端中所配置的用于存储事件关键字及案例模板的数据库,根据模板库即可生成与待测试程序对应的多个测试案例,生成测试案例后还需写入对应的测试文件中。事件关键字即为用于对待测试程序中每一程序组件进行匹配以获取交互事件的关键字信息,案例模板即为即为根据交互事件生成对应测试案例的模板,每一种类型的交互事件均对应一个案例模板。
在一具体的实施例中,如图3所示,步骤S120包括子步骤S121和S122。
S121、根据所述事件关键字获取所述待测试程序的每一程序组件中与所述事件关键字相匹配的交互事件。
根据所述事件关键字获取所述待测试程序的每一程序组件中与所述事件关键字相匹配的交互事件。一个程序组件中至少包含一个交互事件,事件关键字可以是DOM事件的关键字,则与DOM事件的关键字相匹配的交互事件中包含与该DOM事件对应的DOM节点,交互事件中还包含与DOM节点唯一对应的标识信息及对应的页面元素,标识信息可以为字母、数字或字母与数字的组合,页面元素即为应用程序在客户端运行时对使用者进行显示的信息,使用者查看页面元素并可基于页面元素与应用程序进行交互,也即是对交互事件的页面元素进行触发的过程。常见的事件关键字包括onClick、onChange、onBlur等,则onClick这一关键字对应onClick类型的交互事件。
S122、根据所述案例模板生成与每一所述交互事件对应的测试案例并写入至对应的所述测试文件中。
根据所述案例模板生成与每一所述交互事件对应的测试案例并写入至对应的所述测试文件中。交互事件可分为多种类型,则需通过模板库中与交互事件的类型相匹配的案例模板生成与该交互事件对应的测试案例,每一测试案例均与该测试案例对应的交互事件的一个标识信息唯一对应,测试案例可具体体现为程序代码,可将测试案例写入与该测试案例所属交互事件对应的测试文件中,则一个测试文件中包含至少一个测试案例。
例如,若某一交互事件的类型为“onClick”,则获取模板库中与“onClick”对应的点击案例模板生成与该交互事件对应的点击测试案例,点击测试案例在执行时通过点击该交互事件中对应的页面元素以对该交互事件进行触发。
S130、对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果。
对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果。对测试案例进行模拟触发,也即是模拟使用者在使用应用程序的过程中与应用程序进行交互的过程,交互事件中包含与DOM节点唯一对应的标识信息及对应的页面元素,可基于标识信息确定唯一对应的DOM节点,并获取该DOM节点所对应的页面元素,通过特定的触发动作对页面元素进行模拟触发,例如,触发动作可以是点击、聚焦或失去聚焦等。具体的,对测试案例中的页面元素进行模拟触发,判断与该测试案例对应的DOM节点是否响应,若与该测试案例对应的DOM节点响应,则该测试案例的触发结果为正确触发;若与该测试案例对应的DOM节点未响应,则该测试案例的触发结果为未正确触发。
在一具体的实施例中,如图4所示,步骤S130之后还包括步骤S130a。
S130a、若所述测试案例的触发结果中包含未正确触发的触发结果,根据所述未正确触发的触发结果生成对应的日志记录文件。
若所述测试案例的触发结果中包含未正确触发的触发结果,根据所述未正确触发的触发结果生成对应的日志记录文件。若所有触发结果中的某一个或多个触发结果为未正确触发,则获取所有未正确触发的触发结果,并生成对应的日志记录文件,日志记录文件即为对触发结果为未正确触发的测试案例进行记录的文件信息,用户可通过查看日志记录文件了解所生成的测试案例中哪些测试案例在进行模拟触发的过程中未正确触发。
S140、若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果。
若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果。执行所有所述测试文件中的测试案例以得到每一所述测试案例的执行结果。依次对每一测试文件中所包含的测试案例进行执行,即可得到与每一测试案例对应的执行结果。
在一具体的实施例中,如图5所示,步骤S140包括子步骤S141和S142。
S141、执行每一所述测试文件以运行所述测试文件所对应的方法函数。
S142、将每一个所述测试文件所包含的所述方法函数的运行信息确定为与所述测试文件对应的执行结果;所述运行信息为所述方法函数的返回值或所述方法函数运行时是否报错的信息。
执行测试案例的过程具体包括,通过特定的触发动作对该测试案例对应的页面元素进行模拟触发,与该测试案例对应的DOM节点响应,运行与该DOM节点对应的方法函数,该方法函数的运行信息即为运行该测试案例的执行结果。方法函数即为测试文件中用于实现与待测试程序进行交互的代码,一个测试文件中至少包含一个方法函数。具体的,若方法函数运行后得到返回值,则将该返回值作为该方法函数的运行信息;若方法函数在运行后没有返回值,则将方法函数在运行过程中是否报错作为该方法函数的运行信息,若方法函数运行时报错则该方法函数的运行信息为“false”,若方法函数运行时未报错则方法函数的运行信息为“ture”,获取每一测试案例所包含的方法函数的运行信息,即可得到该测试案例对应的执行结果,所得到的执行结果为一个JSON(JavaScript ObjectNotation)格式的文件,此外,运行信息中还可以包括运行方法函数过程中用户终端的系统资源占用、运行时间等信息,系统资源占用包含CPU占用率、内存占用率等信息,运行时间即为运行该方法函数并获取到返回值的时长。
S150、对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。
对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。其中,期望结果即为用户终端中预存的用于对执行结果进行验证的信息,具体的,验证所述测试案例的执行结果与对应的所述期望结果是否一致,以根据验证结果及所述执行结果生成对应的测试报告。对测试案例的执行结果与对应的期望结果是否一致进行验证,也即是对测试案例所对应的方法函数的运行信息与用户对执行该方法函数所期望得到的运行信息是否相同进行验证,若测试案例的执行结果与对应的期望结果一致,则得到测试通过的验证结果,若测试案例的执行结果与对应的期望结果不一致,则得到测试不通过的验证结果。验证后即可得到待测试程序所对应的每一测试文件中所包含的测试案例是否通过测试的验证结果,根据验证结果及测试案例的执行结果即可生成对应的测试报告。具体的,期望结果为一个JSON格式的文件,测试案例的执行结果均为JSON格式的文件,任何计算机支持的字符类型都可以通过JSON来表示,例如字符串、数字、对象、数组等;JSON格式的文件中均包含多个字符,对测试案例的执行结果进行验证的过程即可通过对两个JSON格式的文件所包含的字符进行匹配实现。
在一具体的实施例中,如图6所示,步骤S150之前还包括步骤S151。
S151、根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果。
根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果。模板库中还包括每一案例模板的期望值,待测试应用程序每次进行测试均会得到对应的历史测试报告以供用户进行查看,历史测试报告预存于用户终端中,若待测试程序的历史测试报告中任一测试案例的期望结果不符合用户的预期,用户可以修改测试报告中的期望结果,以使修改后所得到的期望结果符合用户的预期。
在一具体的实施例中,如图7所示,步骤S151包括子步骤S1511、S1512和S1513。
S1511、判断每一所述测试案例是否为首次生成。
判断每一所述测试案例是否为首次生成。在获取测试案例的期望结果之前需对测试案例是否为首次生成进行判断,若测试案例为首次生成,则历史测试报告不会包含该测试案例的期望结果;若测试案例不为首次生成,则表明该测试案例的期望结果包含于历史测试报告中。
S1512、若所述测试案例为首次生成,获取所述模板库中与所述试案例对应的案例模板的期望值作为所述测试案例的期望结果。
若所述测试案例为首次生成,获取所述模板库中与所述试案例对应的案例模板的期望值作为所述测试案例的期望结果。所生成的每一测试案例均与模板库中对应的一个案例模板相匹配,则可将于测试案例相匹配的案例模板的期望值作为该测试案例的期望结果。
S1513、若所述测试案例不为首次生成,获取所述历史测试报告中与所述测试案例对应的历史期望结果作为所述测试案例的期望结果。
若所述测试案例不为首次生成,获取所述历史测试报告中与所述测试案例对应的历史期望结果作为所述测试案例的期望结果。若测试案例不为首次生成,则表明该测试案例的期望结果包含于历史测试报告中,即可获取历史测试报告中与该测试案例对应的历史期望结果作为该测试案例的期望结果。
在本发明实施例所提供的应用程序测试方法中,根据用户所输入的待测试程序生成对应的测试文件,并进一步生成测试案例写入测试文件中,对测试文件中的测试案例进行模拟触发以得到触发结果,若触发结果均为正确触发,执行测试文件以得到执行结果,并根据执行结果及预期结果生成对应的测试报告。可基于待测试程序所包含的交互事件自动化生成测试文件,并在执行测试文件之前对测试文件中的测试案例进行模拟触发,可大幅提升测试文件执行的成功率,缩短了包含交互事件的待测试程序的测试时间,并提升对待测试程序进行测试的效率。
本发明实施例还提供一种应用程序测试装置,该应用程序测试装置用于执行前述应用程序测试方法的任一实施例。具体地,请参阅图8,图8是本发明实施例提供的应用程序测试装置的示意性框图。该应用程序测试装置可以配置于用户终端中。
如图8所示,应用程序测试装置100包括:测试文件生成单元110、测试案例写入单元120、测试案例模拟触发单元130、执行结果获取单元140和测试报告生成单元150。
测试文件生成单元110,用于若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件。
在一具体的实施例中,所述测试文件生成单元110包括:程序组件获取单元、测试目录创建单元和文件生成单元。
程序组件获取单元,用于遍历所述待测试程序中的所有程序文件以将与预存的组件模板相匹配的多个所述程序文件确定为程序组件;测试目录创建单元,用于在所述待测试程序用于对所有所述程序文件进行存储的根目录中创建测试目录;文件生成单元,用于生成与每一所述程序组件对应的测试文件并存储至所述测试目录中。
测试案例写入单元120,用于根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中。
在一具体的实施例中,所述测试案例写入单元120包括:交互事件获取单元和测试案例写入单元。
交互事件获取单元,用于根据所述事件关键字获取所述待测试程序的每一程序组件中与所述事件关键字相匹配的交互事件;测试案例写入单元,用于根据所述案例模板生成与每一所述交互事件对应的测试案例并写入至对应的所述测试文件中。
测试案例模拟触发单元130,用于对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果。
在一具体的实施例中,所述应用程序测试装置100还包括:日志记录文件生成单元。
日志记录文件生成单元,用于若所述测试案例的触发结果中包含未正确触发的触发结果,根据所述未正确触发的触发结果生成对应的日志记录文件。
执行结果获取单元140,用于若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果。
在一具体的实施例中,所述执行结果获取单元140包括:方法函数运行单元和执行结果确定单元。
方法函数运行单元,用于执行每一所述测试文件以运行所述测试文件所对应的方法函数;执行结果确定单元,用于将每一个所述测试文件所包含的所述方法函数的运行信息确定为与所述测试文件对应的执行结果;所述运行信息为所述方法函数的返回值或所述方法函数运行时是否报错的信息。
测试报告生成单元150,用于对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。
在一具体的实施例中,所述应用程序测试装置100还包括:期望结果生成单元。
期望结果生成单元,用于根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果。
在一具体的实施例中,所述期望结果生成单元包括:测试案例判断单元、第一期望结果获取单元和第二期望结果获取单元。
测试案例判断单元,用于判断每一所述测试案例是否为首次生成;第一期望结果获取单元,用于若所述测试案例为首次生成,获取所述模板库中与所述试案例对应的案例模板的期望值作为所述测试案例的期望结果;第二期望结果获取单元,用于若所述测试案例不为首次生成,获取所述历史测试报告中与所述测试案例对应的历史期望结果作为所述测试案例的期望结果。
在本发明实施例所提供的应用程序测试装置应用上述应用程序测试方法,根据用户所输入的待测试程序生成对应的测试文件,并进一步生成测试案例写入测试文件中,对测试文件中的测试案例进行模拟触发以得到触发结果,若触发结果均为正确触发,执行测试文件以得到执行结果,并根据执行结果及预期结果生成对应的测试报告。可基于待测试程序所包含的交互事件自动化生成测试文件,并在执行测试文件之前对测试文件中的测试案例进行模拟触发,可大幅提升测试文件执行的成功率,缩短了包含交互事件的待测试程序的测试时间,并提升对待测试程序进行测试的效率。
上述应用程序测试装置可以实现为计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,图9是本发明实施例提供的计算机设备的示意性框图。
参阅图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行应用程序测试方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行应用程序测试方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图9中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件;根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中;对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果;若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果;对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。
在一实施例中,处理器502在执行若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件的步骤时,执行如下操作:遍历所述待测试程序中的所有程序文件以将与预存的组件模板相匹配的多个所述程序文件确定为程序组件;在所述待测试程序用于对所有所述程序文件进行存储的根目录中创建测试目录;生成与每一所述程序组件对应的测试文件并存储至所述测试目录中。
在一实施例中,处理器502在执行根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中的步骤时,执行如下操作:根据所述事件关键字获取所述待测试程序的每一程序组件中与所述事件关键字相匹配的交互事件;根据所述案例模板生成与每一所述交互事件对应的测试案例并写入至对应的所述测试文件中。
在一实施例中,处理器502在执行对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果的步骤之后,还执行如下操作:若所述测试案例的触发结果中包含未正确触发的触发结果,根据所述未正确触发的触发结果生成对应的日志记录文件。
在一实施例中,处理器502在执行若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果的步骤时,执行如下操作:执行每一所述测试文件以运行所述测试文件所对应的方法函数;将每一个所述测试文件所包含的所述方法函数的运行信息确定为与所述测试文件对应的执行结果;所述运行信息为所述方法函数的返回值或所述方法函数运行时是否报错的信息。
在一实施例中,处理器502在执行对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告的步骤之前,还执行如下操作:根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果。
在一实施例中,处理器502在执行根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果的步骤时,执行如下操作:判断每一所述测试案例是否为首次生成;若所述测试案例为首次生成,获取所述模板库中与所述试案例对应的案例模板的期望值作为所述测试案例的期望结果;若所述测试案例不为首次生成,获取所述历史测试报告中与所述测试案例对应的历史期望结果作为所述测试案例的期望结果。
本领域技术人员可以理解,图9中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图9所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现以下步骤:若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件;根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中;对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果;若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果;对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。
在一实施例中,所述若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件的步骤,包括:遍历所述待测试程序中的所有程序文件以将与预存的组件模板相匹配的多个所述程序文件确定为程序组件;在所述待测试程序用于对所有所述程序文件进行存储的根目录中创建测试目录;生成与每一所述程序组件对应的测试文件并存储至所述测试目录中。
在一实施例中,所述根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中的步骤,包括:根据所述事件关键字获取所述待测试程序的每一程序组件中与所述事件关键字相匹配的交互事件;根据所述案例模板生成与每一所述交互事件对应的测试案例并写入至对应的所述测试文件中。
在一实施例中,所述对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果的步骤之后,还包括:若所述测试案例的触发结果中包含未正确触发的触发结果,根据所述未正确触发的触发结果生成对应的日志记录文件。
在一实施例中,所述若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果的步骤,包括:执行每一所述测试文件以运行所述测试文件所对应的方法函数;将每一个所述测试文件所包含的所述方法函数的运行信息确定为与所述测试文件对应的执行结果;所述运行信息为所述方法函数的返回值或所述方法函数运行时是否报错的信息。
在一实施例中,所述对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告的步骤之前,还包括:根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果。
在一实施例中,所述根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果的步骤,包括:判断每一所述测试案例是否为首次生成;若所述测试案例为首次生成,获取所述模板库中与所述试案例对应的案例模板的期望值作为所述测试案例的期望结果;若所述测试案例不为首次生成,获取所述历史测试报告中与所述测试案例对应的历史期望结果作为所述测试案例的期望结果。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
所述计算机可读存储介质为实体的、非瞬时性的存储介质,所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存等实体存储介质。所述存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等实体存储介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种应用程序测试方法,应用于用户终端,其特征在于,所述方法包括:
若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件;
根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中;
对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果;
若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果;
对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。
2.根据权利要求1所述的应用程序测试方法,其特征在于,所述根据所述待测试程序生成对应的测试文件,包括:
遍历所述待测试程序中的所有程序文件以将与预存的组件模板相匹配的多个所述程序文件确定为程序组件;
在所述待测试程序用于对所有所述程序文件进行存储的根目录中创建测试目录;
生成与每一所述程序组件对应的测试文件并存储至所述测试目录中。
3.根据权利要求2所述的应用程序测试方法,其特征在于,所述模板库包括事件关键字及案例模板,所述根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中,包括:
根据所述事件关键字获取所述待测试程序的每一程序组件中与所述事件关键字相匹配的交互事件;
根据所述案例模板生成与每一所述交互事件对应的测试案例并写入至对应的所述测试文件中。
4.根据权利要求1所述的应用程序测试方法,其特征在于,所述对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果之后,还包括:
若所述测试案例的触发结果中包含未正确触发的触发结果,根据所述未正确触发的触发结果生成对应的日志记录文件。
5.根据权利要求1所述的应用程序测试方法,其特征在于,所述执行所有所述测试文件以得到对应的执行结果,包括:
执行每一所述测试文件以运行所述测试文件所对应的方法函数;
将每一个所述测试文件所包含的所述方法函数的运行信息确定为与所述测试文件对应的执行结果;所述运行信息为所述方法函数的返回值或所述方法函数运行时是否报错的信息。
6.根据权利要求1所述的应用程序测试方法,其特征在于,所述对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告之前,还包括:
根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果。
7.根据权利要求6所述的应用程序测试方法,其特征在于,所述根据所述模板库及预存的历史测试报告生成与每一所述测试案例对应的期望结果,包括:
判断每一所述测试案例是否为首次生成;
若所述测试案例为首次生成,获取所述模板库中与所述试案例对应的案例模板的期望值作为所述测试案例的期望结果;
若所述测试案例不为首次生成,获取所述历史测试报告中与所述测试案例对应的历史期望结果作为所述测试案例的期望结果。
8.一种应用程序测试装置,其特征在于,包括:
测试文件生成单元,用于若接收到用户所输入的待测试程序,根据所述待测试程序中的程序组件生成对应的测试文件;
测试案例写入单元,用于根据预存的模板库生成所述待测试程序的测试案例并写入至对应的所述测试文件中;
测试案例模拟触发单元,用于对每一所述测试文件中的测试案例进行模拟触发以得到是否正确触发的触发结果;
执行结果获取单元,用于若所有所述测试案例的触发结果均为正确触发,执行所有所述测试文件以得到对应的执行结果;
测试报告生成单元,用于对所述执行结果与预存的预期结果进行对比以根据对比结果生成对应的测试报告。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的应用程序测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7任一项所述的应用程序测试方法。
CN202010461897.3A 2020-05-27 2020-05-27 应用程序测试方法、装置、计算机设备及存储介质 Pending CN111625459A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010461897.3A CN111625459A (zh) 2020-05-27 2020-05-27 应用程序测试方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010461897.3A CN111625459A (zh) 2020-05-27 2020-05-27 应用程序测试方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN111625459A true CN111625459A (zh) 2020-09-04

Family

ID=72272300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010461897.3A Pending CN111625459A (zh) 2020-05-27 2020-05-27 应用程序测试方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111625459A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817864A (zh) * 2021-02-23 2021-05-18 北京字节跳动网络技术有限公司 一种测试文件的生成方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049379A (zh) * 2012-12-19 2013-04-17 中国铁道科学研究院 一种系统测试的方法
CN108710571A (zh) * 2018-05-14 2018-10-26 中国建设银行股份有限公司 一种生成自动化测试代码的方法和装置
CN110321284A (zh) * 2019-06-03 2019-10-11 平安科技(深圳)有限公司 测试数据录入方法、装置、计算机设备和存储介质
CN110347604A (zh) * 2019-07-11 2019-10-18 中国工商银行股份有限公司 编程接口测试方法及设备、电子设备和可读存储介质
CN111124878A (zh) * 2019-10-12 2020-05-08 平安普惠企业管理有限公司 测试报告生成方法、装置、计算机设备及存储介质
CN111127222A (zh) * 2019-11-25 2020-05-08 泰康保险集团股份有限公司 业务服务的处理方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049379A (zh) * 2012-12-19 2013-04-17 中国铁道科学研究院 一种系统测试的方法
CN108710571A (zh) * 2018-05-14 2018-10-26 中国建设银行股份有限公司 一种生成自动化测试代码的方法和装置
CN110321284A (zh) * 2019-06-03 2019-10-11 平安科技(深圳)有限公司 测试数据录入方法、装置、计算机设备和存储介质
CN110347604A (zh) * 2019-07-11 2019-10-18 中国工商银行股份有限公司 编程接口测试方法及设备、电子设备和可读存储介质
CN111124878A (zh) * 2019-10-12 2020-05-08 平安普惠企业管理有限公司 测试报告生成方法、装置、计算机设备及存储介质
CN111127222A (zh) * 2019-11-25 2020-05-08 泰康保险集团股份有限公司 业务服务的处理方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817864A (zh) * 2021-02-23 2021-05-18 北京字节跳动网络技术有限公司 一种测试文件的生成方法、装置、设备及介质
CN112817864B (zh) * 2021-02-23 2024-04-16 北京字节跳动网络技术有限公司 一种测试文件的生成方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US9170921B2 (en) Application testing automation
CN106339312B (zh) Api测试方法和系统
CN111552627A (zh) 用户界面测试方法、装置、存储介质及计算机设备
CN109815119B (zh) 一种app链接渠道的测试方法及装置
CN107729227B (zh) 应用程序测试范围确定方法、系统、服务器和存储介质
CN111176996A (zh) 测试用例生成方法、装置、计算机设备及存储介质
WO2019019640A1 (zh) 订单信息的模拟处理方法、装置、存储介质和计算机设备
CN110955409B (zh) 在云平台上创建资源的方法和装置
US10380011B2 (en) Method, apparatus, and computer-readable medium for performing functional testing of software
CN108923997B (zh) 一种基于python的云服务节点自动测试方法及装置
CN112685029A (zh) 一种可视化模板的生成方法、装置、设备及存储介质
CN111198797B (zh) 操作监控方法及装置、操作分析方法及装置
CN114116496A (zh) 自动化测试方法、装置、设备及介质
CN109101412B (zh) 测试文件生成、测试方法、装置、存储介质和计算机设备
CN112231197A (zh) 一种页面测试的方法、装置和存储介质
CN111625459A (zh) 应用程序测试方法、装置、计算机设备及存储介质
CN111666201A (zh) 回归测试方法、装置、介质及电子设备
CN111159028B (zh) 网页测试方法及装置
CN112699027A (zh) 一种接口测试方法、装置、设备及可读存储介质
CN111078529A (zh) 客户端写入模块测试方法、装置、电子设备
CN112463633B (zh) 一种片上存储器的地址译码校验方法、装置、设备及介质
CN114338846B (zh) 一种报文测试的方法及装置
CN112187564B (zh) 一种vSAN性能测试方法、装置、计算机设备及存储介质
CN114546850A (zh) 一种埋点的自动化测试方法、系统、装置及存储介质
CN113986768A (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