CN111488275B - Ui自动化测试方法、装置、存储介质及电子设备 - Google Patents

Ui自动化测试方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111488275B
CN111488275B CN202010263425.7A CN202010263425A CN111488275B CN 111488275 B CN111488275 B CN 111488275B CN 202010263425 A CN202010263425 A CN 202010263425A CN 111488275 B CN111488275 B CN 111488275B
Authority
CN
China
Prior art keywords
test
tested
automation
natural language
target application
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
Application number
CN202010263425.7A
Other languages
English (en)
Other versions
CN111488275A (zh
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.)
Ctrip Travel Network Technology Shanghai Co Ltd
Original Assignee
Ctrip Travel Network Technology Shanghai 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 Ctrip Travel Network Technology Shanghai Co Ltd filed Critical Ctrip Travel Network Technology Shanghai Co Ltd
Priority to CN202010263425.7A priority Critical patent/CN111488275B/zh
Publication of CN111488275A publication Critical patent/CN111488275A/zh
Application granted granted Critical
Publication of CN111488275B publication Critical patent/CN111488275B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3676Test management for coverage analysis
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供一种UI自动化测试方法、装置、存储介质及电子设备。所述UI自动化测试方法包括:S100,安装Node.js环境;S200,安装一UI自动化测试装置;S300,初始化所述UI自动化测试装置的测试用例库;S400,在所述测试用例库中新建一第一文件夹;S500,利用所述UI自动化测试装置获取目标应用并模拟该目标应用于预设场景下的UI界面;S600,利用所述UI自动化测试装置在所述第一文件夹中编写针对该UI界面的UI测试用例;S700,利用所述UI自动化测试装置编译执行所述UI测试用例并生成UI自动化测试报告。本发明有利于提高UI测试效率,降低UI测试成本。

Description

UI自动化测试方法、装置、存储介质及电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种UI自动化测试方法、装置、存储介质及电子设备。
背景技术
随着计算机技术的飞速发展,终端设备目前已在人们的日常生活中得到了广泛的使用,也为人们的生活带来了诸多的方便。为了确保终端设备能够正常使用,各终端设备在进入市场之前都需要经过测试环节,而终端设备的自动化测试一直是业界难题,尤其是终端设备上的UI(用户界面)显示以及触摸屏点击、按键点击等的测试,都需要由人工进行操作,这也导致整体测试效率极其低下。
为了节省人力、时间或硬件资源,提高测试效率,通常会把人为驱动的测试行为转化为机器执行,也即执行自动化测试。然而,现有技术通常是单独执行不同层级的测试,应用场景比较单一,在开发测试用例时灵活度较低。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种UI自动化测试方法、装置、存储介质及电子设备,以提高UI测试效率,降低UI测试成本。
根据本发明的一方面,提供一种UI自动化测试方法,它包括:
S100,安装Node.js环境;
S200,安装一UI自动化测试装置,所述UI自动化测试装置用以:
搭建UI自动化测试装置的运行环境;
获取目标应用;
生成由自然语言描述的UI测试用例。
将UI测试用例由自然语言转译为自动化脚本;
启动自动化测试以执行转译后的UI测试用例;
生成UI自动化测试报告;
根据自然语言切换所述目标应用的待测场景,以模拟同一目标应用于不同待测场景下的UI界面;
根据自然语言切换所述目标应用的待测版本,以模拟不同待测版本的UI界面;以及
监听并记录应用的行为且通过自然语言验证所述应用所产生的数据和操作步骤;
S300,初始化所述UI自动化测试装置的测试用例库;
S400,在所述测试用例库中新建一第一文件夹;
S500,利用所述UI自动化测试装置获取目标应用并模拟该目标应用于预设场景下的UI界面;
S600,利用所述UI自动化测试装置在所述第一文件夹中编写针对该UI界面的UI测试用例;
S700,利用所述UI自动化测试装置编译执行所述UI测试用例并生成UI自动化测试报告。
在本发明的一实施方式中,所述目标应用包括多个待测版本,所述预设场景包括多个待测场景;
步骤S500包括:
利用所述UI自动化测试装置模拟该目标应用的一第一待测版本于一第一待测场景下的UI界面。
在本发明的一实施方式中,步骤S700之后还包括:
S810,利用所述UI自动化测试装置通过自然语言将所述第一待测场景切换为一第二待测场景,以模拟该第一待测版本于所述第二待测场景下的UI界面,并返回步骤S600。
在本发明的一实施方式中,步骤S700之后还包括:
S802,利用所述UI自动化测试装置通过自然语言将所述目标应用由第一待测版本切换为一第二待测版本,以模拟该第二待测版本于所述预设景下的UI界面,并返回步骤S600。
在本发明的一实施方式中,步骤S600为:
利用所述UI自动化测试装置通过自然语言在所述第一文件夹中编写针对该UI界面的UI测试用例。
在本发明的一实施方式中,所述的UI自动化测试方法,其特征在于,还包括:
S900,利用所述UI自动化测试装置监听并记录所述目标应用的行为并通过自然语言验证所述目标应用所产生的数据和操作步骤。
根据本发明的另一方面,提供一种UI自动化测试框架的命令行界面装置,它包括:
搭建模块,用以搭建UI自动化测试的运行环境;
获取模块,用以获取目标应用;
第一生成模块,用以生成由自然语言描述的UI测试用例。
转译模块,用以将UI测试用例由自然语言转译为自动化脚本;
执行模块,用以启动自动化测试以执行转译后的UI测试用例;
第二生成模块,用以生成UI自动化测试报告。
根据本发明的又一方面,提供一种UI自动化测试装置,它包括:
如上所述的命令行界面装置;
第一切换模块,用以根据自然语言切换所述目标应用的待测场景,以模拟同一目标应用于不同待测场景下的UI界面;
第二切换模块,用以根据自然语言切换所述目标应用的待测版本,以模拟不同待测版本的UI界面;
监控模块,用以监听并记录应用的行为且可通过自然语言验证所述应用所产生的数据和操作步骤。
本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述UI自动化测试方法。
本发明还提供一种电子设备,所述电子设备包括:处理器和存储介质。所述存储介质上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述UI自动化测试方法。
本发明可以将用户自定义语法转译为自动化脚本,从而实现使用自然语言可以执行UI功能测试验证,有利于实现用户与开发人员更高效的沟通。由此,本发明中的UI测试用例可以由用户和开发人员共同维护,功能验证覆盖面高,有利于提高UI测试效率,降低UI测试成本。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例中UI自动化测试方法的流程图。
图2是本发明另一实施例中UI自动化测试方法的流程图。
图3是本发明一实施例中命令行界面装置的结构示意图。
图4是本发明一实施例中UI自动化测试装置的结构示意图。
图5是本发明一实施例中UI自动化测试方法的总体架构图。
图6是本发明一实施例中计算机可读存储介质的结构示意图。以及
图7是本发明一实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例。相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
根据本发明的一方面,提供一种UI自动化测试方法,图1是本发明一实施例中UI自动化测试方法的流程图。如图1所示,该方法包括如下步骤:
S100,安装Node.js环境。
其中,Node.js是一个基于Chrome V8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。Node.js的包管理器npm,是全球最大的开源库生态系统。该npm的作用是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js的插件。
S200,安装一UI自动化测试装置。其中,所述UI自动化测试装置用以:
搭建UI自动化测试装置的运行环境。
获取目标应用。
生成由自然语言描述的UI测试用例。
将UI测试用例由自然语言转译为自动化脚本。
启动自动化测试以执行转译后的UI测试用例。
生成UI自动化测试报告。
根据自然语言切换所述目标应用的待测场景,以模拟同一目标应用于不同待测场景下的UI界面。其中,待测场景指产品对接的不同的业务场景。例如在不同城市、不同地区,通过指定GPS信息模拟目标应用的展示。或者,根据用户类型不同,通过指定用户信息来模拟目标应用的展示。又或者,根据使用时间不同,通过制定日期和时间来模拟目标应用的展示。根据自然语言描述表述前述的使得目标应用界面展示为指定的形态。
根据自然语言切换所述目标应用的待测版本,以模拟不同待测版本的UI界面。其中,待测版本指目标应用根据可配置的标识,切换业务功能的不同形态。如业务配置为A版,目标应用展示红色主题色。业务配置B版,目标应用展示黄色主题色。根据自然语言可切换配置标识使得目标应用界面展示为指定的形态。
监听并记录应用的行为且可通过自然语言验证所述应用所产生的数据和操作步骤。
其中,所述搭建UI自动化测试装置的运行环境主要是对环境变量的配置,例如配置npm安装的全局模块所在的路径,以及缓存cache的路径。所述获取目标应用即下载UI自动化测试所需的业务应用。所述生成由自然语言描述的UI测试用例则便于业务人员以自定义语法概括描述多个操作步骤,有利于提高UI测试效率,降低UI测试成本。所述UI自动化测试装置以开源的BDD模式工具cucumber来实现自然语言的转译功能,由此可以将UI测试用例由自然语言转译为自动化脚本。BDD是第二代的、由外及内的、基于拉(pull)的、多方利益相关者的(stakeholder)、多种可扩展的、高自动化的敏捷方法。BDD全称Behavior DrivenDevelopment,译作“行为驱动开发”,是基于TDD(Test Driven Development测试驱动开发)的软件开发过程和方法。BDD可以让项目成员(甚至是不懂编程的业务人员)使用自然语言来描述系统功能和场景,从而根据这些描述步骤进行系统自动化的测试。
S300,初始化所述UI自动化测试装置的测试用例库,用以存储测试用例。
S400,在所述测试用例库中新建一第一文件夹,该第一文件夹可以为features文件夹。
S500,利用所述UI自动化测试装置获取目标应用并模拟该目标应用于预设场景下的UI界面。
可选地,所述目标应用可以包括多个待测版本,所述预设场景可以包括多个待测场景。此时,步骤S500包括:
利用所述UI自动化测试装置模拟该目标应用的一第一待测版本于一第一待测场景下的UI界面。
S600,利用所述UI自动化测试装置在所述第一文件夹中编写针对该UI界面的UI测试用例。
进一步地,步骤S600为:
利用所述UI自动化测试装置通过自然语言在所述第一文件夹中编写针对该UI界面的UI测试用例。测试用例是为某个特殊目的而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。例如,本实施例中的UI测试用例可以为:
#language:zh-CN
功能:列表页用于测试公务舱列表页不存在经济舱
场景:公务/头等舱
假如启用MockCase
并且跳转页面到[单程列表页-公务/头等舱]
那么不存在[经济舱]的元素
并且移除MockCase
需要说明的是,“#language:zh-CN”表明所述第一文件夹中所使用的描述语言是中文简体,而Cucumber本身支持超过30种语言(此处所述的语言是前述的自然语言而非程序设计语言)。MockCase即虚拟对象,是真实对象在调试期间的代替品。mock测试是指在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
S700,利用所述UI自动化测试装置编译执行所述UI测试用例并生成UI自动化测试报告。在命令行输入npm test,所述UI测试用例即可被所述UI自动化测试装置编译执行,并生成相应的测试报告。该测试报告的内容可以包括用例执行成功、用例执行失败、用例执行错误、用例被跳过等相关数据的统计结果。
本发明可以将用户自定义语法转译为自动化脚本,从而实现使用自然语言可以执行UI功能测试验证,有利于实现用户与开发人员更高效的沟通。由此,本发明中的UI测试用例可以由用户和开发人员共同维护,功能验证覆盖面高,有利于提高UI测试效率,降低UI测试成本。
图2是本发明另一实施例中UI自动化测试方法的流程图。如图2所示,在本发明另一实施例中,步骤S700之后还包括:
S810,利用所述UI自动化测试装置通过自然语言将所述第一待测场景切换为一第二待测场景,以模拟该第一待测版本于所述第二待测场景下的UI界面,并返回步骤S600。和/或
S820,利用所述UI自动化测试装置通过自然语言将所述目标应用由第一待测版本切换为一第二待测版本,以模拟该第二待测版本于所述预设景下的UI界面,并返回步骤S600。
进一步地,所述UI自动化测试方法还包括:
S900,利用所述UI自动化测试装置监听并记录所述目标应用的行为并通过自然语言验证所述目标应用所产生的数据和操作步骤。具体而言,可以使用Node.js创建服务以监听所述目标应用的行为并作记录,然后与BDD模式对接,即可使用自然语言验证客户端发生的数据和操作历史。换言之,UI自动化测试装置会使用Node.js创建本地监听服务,对外提供接口。任何发送到该服务接口的数据,Node.js都会记录在本地。当目标应用启动,默认会发送应用中的待验证数据到该服务接口,如目标应用中的城市信息、用户信息、商品详情等。Node.js本地监听服务会立即记录数据,在自然语言触发验证客户端行为时,读取数据进行验证。
本发明可以将用户自定义语法转译为自动化脚本,从而实现使用自然语言可以执行UI功能测试验证,有利于实现用户与开发人员更高效的沟通。由此,本发明中的UI测试用例可以由用户和开发人员共同维护,功能验证覆盖面高,有利于提高UI测试效率,降低UI测试成本。进一步地,本发明可使用自然语言快速将业务应用切换到不同待测场景,以模拟不同待测场景下UI界面,并针对其场景测试验证。以及本发明可使用自然语言快速将业务应用切换到不同的待测版本,以模拟不同访客群体访问的UI界面,并针对其场景测试验证。由此,有利于提高UI测试效率,降低UI测试成本。
相应的,根据本发明的一方面,提供一种UI自动化测试框架的命令行界面装置,图3是本发明一实施例中命令行界面装置的结构示意图。如图3所示,该命令行界面装置310包括:搭建模块301、获取模块302、第一生成模块303、转译模块304、执行模块305,以及第二生成模块306。所述搭建模块301用以搭建UI自动化测试的运行环境。所述获取模块302用以获取目标应用。所述第一生成模块303,用以生成由自然语言描述的UI测试用例。所述转译模块304用以将UI测试用例由自然语言转译为自动化脚本。所述执行模块305用以启动自动化测试以执行转译后的UI测试用例。所述第二生成模块306用以生成UI自动化测试报告。本发明可以将用户自定义语法转译为自动化脚本,从而实现使用自然语言可以执行UI功能测试验证,有利于实现用户与开发人员更高效的沟通。由此,本发明中的UI测试用例可以由用户和开发人员共同维护,功能验证覆盖面高,有利于提高UI测试效率,降低UI测试成本。
根据本发明的另一方面,提供一种UI自动化测试装置。图4是本发明一实施例中UI自动化测试装置的结构示意图。如图4所示,该UI自动化测试装置包括:命令行界面装置310、第一切换模块320、第二切换模块330及监控模块340。其中,所述命令行界面装置310包括:搭建模块301、获取模块302、第一生成模块303、转译模块304、执行模块305,以及第二生成模块306。所述搭建模块301用以搭建UI自动化测试的运行环境。所述获取模块302用以获取目标应用。所述第一生成模块303,用以生成由自然语言描述的UI测试用例。所述转译模块304用以将UI测试用例由自然语言转译为自动化脚本。所述执行模块305用以启动自动化测试以执行转译后的UI测试用例。所述第二生成模块306用以生成UI自动化测试报告。所述第一切换模块320用以根据自然语言切换所述目标应用的待测场景,以模拟同一目标应用于不同待测场景下的UI界面。所述第二切换模块330用以根据自然语言切换所述目标应用的待测版本,以模拟不同待测版本的UI界面。所述监控模块340用以监听并记录应用的行为且可通过自然语言验证所述应用所产生的数据和操作步骤。
进一步地,图5是本发明UI自动化测试装置的总体架构图。如图5所示,本发明UI自动化测试装置MEC基于UI自动化工具macaca和BDD模式工具cucumber这两项开源框架搭建而成。其中,Macaca用以向cucumber提供方法实现,cucumber用以向Macaca提供方法签名,从而可以实现使用自然语言可以执行UI功能测试验证。进一步地,cucumber包括第一文件夹510、步骤定义及MEC步骤定义三个模块。第一文件夹510通常称为feature文件夹,其中Feature可以定义为Cucumber的独立单元或功能,实际上,被测产品的每个独立功能都可以被称为一个Feature。步骤定义是一小段代码,附加了一个模式,换言之,“步骤定义”是类中带有注释的Java方法。该模式后面的注释用于将步骤定义链接到所有匹配的步骤。MEC步骤定义则是所述UI自动化测试装置自定义的步骤定义。Macaca则包含网络驱动程序客户端520、网络驱动程序服务器530及平台驱动程序540三大模块,关于网络驱动程序客户端520,Macaca-wd.js、Macaca-wd.java及Macaca-wd.phthon分别代表Macaca针对Js、java及phthon的封装。Method Extention代表本发明支持自定义语法的拓展。关于平台驱动程序540,Android(UIAutomator)代表Macaca针对安卓平台的驱动集合,IOS(XCUITest)代表Macaca针对IOS平台的驱动集合,Hybrid代表Macaca针对Hybrid的驱动集合,Electron代表Macaca针对pc端网页应用的支持。此外,作为UI自动化测试装置MEC重要组成部分的命令行界面装置MEC CLI的具体结构及所含各模块的作用可以参照上文描述。
总而言之,本发明可使用自然语言快速将业务应用切换到不同待测场景,以模拟不同待测场景下UI界面,并针对其场景测试验证。以及本发明可使用自然语言快速将业务应用切换到不同的待测版本,以模拟不同访客群体访问的UI界面,并针对其场景测试验证。由此,有利于提高UI测试效率,降低UI测试成本。
在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述UI自动化测试方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述的UI自动化测试方法。
图6是本发明一实施例中计算机可读存储介质的结构示意图。图6描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品600可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。本发明有利于提高UI测试效率,降低UI测试成本。
在本发明的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述UI自动化测试方法。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本发明的这种实施方式的电子设备400。图7显示的电子设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:至少一个处理单元410、至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430、显示单元440等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元410执行,使得所述处理单元410执行本说明书上述UI自动化测试方法。例如,所述处理单元410可以执行如图1或2所示UI自动化测试方法。
所述存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203。
所述存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器460可以通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述UI自动化测试方法。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (9)

1.一种UI自动化测试方法,其特征在于,包括:
S100,安装Node.js环境;
S200,安装一UI自动化测试装置,所述UI自动化测试装置用以:
搭建UI自动化测试装置的运行环境;
获取目标应用;
生成由自然语言描述的UI测试用例;
将UI测试用例由自然语言转译为自动化脚本;
启动自动化测试以执行转译后的UI测试用例;
生成UI自动化测试报告;
根据自然语言切换所述目标应用的待测场景,以模拟同一目标应用于不同待测场景下的UI界面;
根据自然语言切换所述目标应用的待测版本,以模拟不同待测版本的UI界面;以及
监听并记录应用的行为且通过自然语言验证所述应用所产生的数据和操作步骤;
S300,初始化所述UI自动化测试装置的测试用例库;
S400,在所述测试用例库中新建一第一文件夹;
S500,利用所述UI自动化测试装置获取目标应用并模拟该目标应用于预设场景下的UI界面;
S600,利用所述UI自动化测试装置在所述第一文件夹中编写针对该UI界面的UI测试用例;
S700,利用所述UI自动化测试装置编译执行所述UI测试用例并生成UI自动化测试报告。
2.根据权利要求1所述的UI自动化测试方法,其特征在于,所述目标应用包括多个待测版本,所述预设场景包括多个待测场景;
步骤S500包括:
利用所述UI自动化测试装置模拟该目标应用的一第一待测版本于一第一待测场景下的UI界面。
3.根据权利要求2所述的UI自动化测试方法,其特征在于,步骤S700之后还包括:
S810,利用所述UI自动化测试装置通过自然语言将所述第一待测场景切换为一第二待测场景,以模拟该第一待测版本于所述第二待测场景下的UI界面,并返回步骤S600。
4.根据权利要求2所述的UI自动化测试方法,其特征在于,步骤S700之后还包括:
S802,利用所述UI自动化测试装置通过自然语言将所述目标应用由第一待测版本切换为一第二待测版本,以模拟该第二待测版本于所述预设场景下的UI界面,并返回步骤S600。
5.根据权利要求1所述的UI自动化测试方法,其特征在于,步骤S600为:
利用所述UI自动化测试装置通过自然语言在所述第一文件夹中编写针对该UI界面的UI测试用例。
6.根据权利要求3所述的UI自动化测试方法,其特征在于,还包括:
S900,利用所述UI自动化测试装置监听并记录所述目标应用的行为并通过自然语言验证所述目标应用所产生的数据和操作步骤。
7.一种UI自动化测试装置,其特征在于,包括:
搭建模块,用以搭建UI自动化测试的运行环境;
获取模块,用以获取目标应用;
第一生成模块,用以生成由自然语言描述的UI测试用例;
转译模块,用以将UI测试用例由自然语言转译为自动化脚本;
执行模块,用以启动自动化测试以执行转译后的UI测试用例;
第二生成模块,用以生成UI自动化测试报告;
第一切换模块,用以根据自然语言切换所述目标应用的待测场景,以模拟同一目标应用于不同待测场景下的UI界面;
第二切换模块,用以根据自然语言切换所述目标应用的待测版本,以模拟不同待测版本的UI界面;
监控模块,用以监听并记录应用的行为且可通过自然语言验证所述应用所产生的数据和操作步骤。
8.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至6中任一项所述的方法。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如权利要求1至6中任一项所述的方法。
CN202010263425.7A 2020-04-03 2020-04-03 Ui自动化测试方法、装置、存储介质及电子设备 Active CN111488275B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010263425.7A CN111488275B (zh) 2020-04-03 2020-04-03 Ui自动化测试方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010263425.7A CN111488275B (zh) 2020-04-03 2020-04-03 Ui自动化测试方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111488275A CN111488275A (zh) 2020-08-04
CN111488275B true CN111488275B (zh) 2023-08-25

Family

ID=71812634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010263425.7A Active CN111488275B (zh) 2020-04-03 2020-04-03 Ui自动化测试方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111488275B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238953A (zh) * 2021-05-26 2021-08-10 杭州安恒信息技术股份有限公司 Ui自动化测试方法、装置、电子设备和存储介质
CN117573567A (zh) * 2024-01-17 2024-02-20 易方信息科技股份有限公司 一种自动生成ui自动化测试用例的方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407980A (zh) * 2014-12-17 2015-03-11 用友软件股份有限公司 移动应用自动化测试装置和方法
WO2018010552A1 (zh) * 2016-07-12 2018-01-18 博彦科技股份有限公司 测试方法和装置
CN108932194A (zh) * 2018-06-21 2018-12-04 北京京东金融科技控股有限公司 自动化测试方法、装置、系统、介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691584B2 (en) * 2018-09-28 2020-06-23 Sap Se Behavior driven development integration with test tool

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407980A (zh) * 2014-12-17 2015-03-11 用友软件股份有限公司 移动应用自动化测试装置和方法
WO2018010552A1 (zh) * 2016-07-12 2018-01-18 博彦科技股份有限公司 测试方法和装置
CN107608874A (zh) * 2016-07-12 2018-01-19 博彦科技股份有限公司 测试方法和装置
CN108932194A (zh) * 2018-06-21 2018-12-04 北京京东金融科技控股有限公司 自动化测试方法、装置、系统、介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
柳晓华 ; 李劲华 ; .基于BDD的数据驱动自动化测试方法.青岛大学学报(自然科学版).2016,(第03期),全文. *

Also Published As

Publication number Publication date
CN111488275A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN113032195A (zh) 芯片仿真验证方法、系统、设备及存储介质
US9286191B2 (en) Logging code generation and distribution
KR20180122019A (ko) 실시간 데이터플로우 프로그래밍 언어를 위한 도구 및 방법
US9658944B2 (en) Generic test automation for graphical user interface (GUI) applications
JP2008176793A (ja) ソフトウェアテストシステム、ソフトウェアのテスト方法、および、そのテスト方法を実行するためのプログラムを記録したコンピュータ読取り可能な記録媒体
CN111488275B (zh) Ui自动化测试方法、装置、存储介质及电子设备
WO2023061874A1 (en) Checking source code validity at time of code update
CN111740948B (zh) 数据包发布方法、动态更新方法、装置、设备及介质
CN113505082B (zh) 应用程序测试方法及装置
CN112882930B (zh) 自动化测试方法、装置、存储介质及电子设备
CN111338925A (zh) 小程序测试方法及装置、系统、电子设备和存储介质
CN111176629A (zh) 一种应用开发的方法和装置
CN115344300A (zh) 分支流水线构建方法、装置、设备及存储介质
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
CN113238739A (zh) 一种插件开发和数据获取方法、装置、电子设备及介质
CN116841543A (zh) 基于Flutter动态生成跨平台多端应用的开发方法
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
US11573787B1 (en) Hot reloading a running application with an unsaved source code change
CN113641575B (zh) 一种测试方法、装置、设备及存储介质
CN110795338B (zh) 一种基于前后端交互的自动化测试方法、装置及电子设备
CN115269375A (zh) 多端交互的自动化测试方法和装置、电子设备
CN114546850A (zh) 一种埋点的自动化测试方法、系统、装置及存储介质
CN113190462A (zh) 一种动态化的数据调试方法和装置及设备
CN114238831A (zh) Html代码片段的处理方法、系统、电子设备和存储介质
CN111880775A (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