CN107015903A - 一种界面测试程序的生成方法、装置及电子设备 - Google Patents
一种界面测试程序的生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN107015903A CN107015903A CN201610056823.5A CN201610056823A CN107015903A CN 107015903 A CN107015903 A CN 107015903A CN 201610056823 A CN201610056823 A CN 201610056823A CN 107015903 A CN107015903 A CN 107015903A
- Authority
- CN
- China
- Prior art keywords
- component level
- template
- component
- level element
- program code
- 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.)
- Granted
Links
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/3684—Test management for test design, e.g. generating new test cases
-
- 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
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)
- Stored Programmes (AREA)
Abstract
本申请公开了一种界面测试程序的生成方法、装置和电子设备。其中所述界面测试程序的生成方法包括:获取为待处理的测试用例预先生成的组件化模板;针对组件化模板包括的各个组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与组件级元素对应的程序代码;根据组件级元素在组件化模板中的排列顺序,对与组件级元素对应的程序代码进行合成,作为待处理的测试用例的测试程序。采用本申请提供的方法,能够自动生成待处理的测试用例的测试程序,从而达到降低维护成本的效果。
Description
技术领域
本申请涉及界面测试技术领域,具体涉及一种界面测试程序的生成方法、装置及电子设备。
背景技术
界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。通过用户界面(UI,User Interface)测试能够核实用户与软件的交互。UI测试的目标在于确保用户界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI测试还要确保UI功能内部的对象符合预期要求,并遵循公司或行业的标准。
在一个高度交互性和响应的软件流程时代,通过执行自动测试工具或者用某种程序设计语言编写测试程序,控制被测软件中的各种模块,模拟手动测试步骤,完成测试是十分必要的。实现界面测试的自动化具有很多优点,例如,可频繁的进行回归测试、将测试结果快速反馈给开发人员、几乎无限的重复测试用例的执行、不会错过人工手动测试可能遗漏的缺陷等。
以Web界面测试为例,目前比较完整的Web界面自动化测试的实践方式,均基于Selenium开源解决方案上,主要分为两种方式:
1)基于Selenium IDE的页面录制方式。
Selenium IDE是一个Firefox插件,可以录制用户的基本操作,生成测试用例。随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化脚本,即:界面测试程序。
2)基于Selenium 2.0API进行编程的方式。
该方式首先通过元素xpath定位建立页面元素集合、形成页面建模数据文件;然后,启动浏览器读取页面建模数据文件,从中获取页面的受测对象和测试用例;最后,再结合测试场景进行测试程序的编写。这种实现方式需要对页面元素的类型、html标签、selenium2.0都有一定的了解和测试场景编写能力。
上述现有的界面测试程序的生成方式,提供了一种通用的自动化方案,但在实际应用中缺乏策略指导。具体的,上述第一种方式支持的浏览器有限,主要适用于工作在Firefox浏览器下,而当今主流且前端工具丰富的浏览器(如Google Chrome)却无法适用;上述第二种方式的存在如下缺点为:在业务快速变化且维护人员不断变更的情况下,对测试程序的编写及测试程序的维护均需较高成本,使得页面自动化本身的持续回归和自动化的意义完全体现不出来。
综上所述,业务的迅速发展导致界面测试程序需要频繁修改,现有技术需要人工定位测试程序中的代码并进行维护,从而导致维护成本较高。因而,现有技术存在无法自动生成测试程序的问题。
发明内容
本申请提供一种界面测试程序的生成方法、装置及电子设备,以解决现有技术存在无法自动生成测试程序的问题。
本申请提供一种界面测试程序的生成方法,包括:
获取为待处理的测试用例预先生成的组件化模板;所述组件化模板是指,包括组件级元素的、能够表达所述测试用例的业务流程的界面文件;所述组件级元素是指,与所述测试用例中控件级元素相对应的组件化元素,所述组件级元素采用预设的组件标签进行标识;
针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码;
根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述测试用例的测试程序。
可选的,所述生成与所述组件级元素对应的程序代码,包括:
解析所述组件级元素,获取所述组件级元素包括的所述组件标签、及所述组件级元素的属性;
根据所述组件标签及所述预设的组件标签与程序代码模板的对应关系,获取与所述组件级元素对应的程序代码模板;
根据所述组件级元素的属性和所述程序代码模板,生成与所述组件级元素对应的程序代码。
可选的,所述组件化模板包括非组件级元素的程序代码;
所述对与所述组件级元素对应的程序代码进行合成,采用如下规则:
所述测试程序包括所述非组件级元素的程序代码、且所述非组件级元素的程序代码在所述测试程序中的位置与在所述组件化模板中的位置相对应。
可选的,所述组件级元素与预设事件绑定,当所述预设事件被触发时,执行所述界面测试程序的生成方法;所述预设事件包括对所述组件级元素的属性进行增加、修改或删除的事件。
可选的,还包括:
通过浏览器对所述预设事件进行监听。
可选的,还包括:
当所述测试用例发生变更时,修改所述组件化模板;所述发生变更包括所述业务流程发生变更;
执行所述界面测试程序的生成方法,根据修改后的组件化模板,生成修改后的测试用例的测试程序。
可选的,所述组件化模板与模板变更事件绑定;所述执行所述界面测试程序的生成方法,采用如下方式:
当所述模板变更事件被触发时,执行所述界面测试程序的生成方法。
可选的,还包括:
通过浏览器对所述模板变更事件进行监听。
可选的,在所述获取为待处理的测试用例预先生成的组件化模板之前,还包括:
根据预设的控件标签与组件标签的对应关系,为所述测试用例构建所述组件化模板。
可选的,所述组件级元素包括选择列表元素、文本输入元素、可选项元素或按钮元素;所述组件级元素包括元素定位属性,所述元素定位属性包括元素标识属性或元素名称属性。
相应的,本身请还提供一种界面测试程序的生成装置,包括:
获取单元,用于获取为待处理的测试用例预先生成的组件化模板;所述组件化模板是指,包括组件级元素的、能够表达所述测试用例的业务流程的界面文件;所述组件级元素是指,与所述测试用例中控件级元素相对应的组件化元素,所述组件级元素采用预设的组件标签进行标识;
生成单元,用于针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码;
合成单元,用于根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述测试用例的测试程序。
可选的,所述生成单元包括生成子单元,用于生成与所述组件级元素对应的程序代码;
所述生成子单元包括:
解析子单元,用于解析所述组件级元素,获取所述组件级元素包括的所述组件标签、及所述组件级元素的属性;
获取子单元,用于根据所述组件标签及所述预设的组件标签与程序代码模板的对应关系,获取与所述组件级元素对应的程序代码模板;
第一生成子单元,用于根据所述组件级元素的属性和所述程序代码模板,生成与所述组件级元素对应的程序代码。
可选的,所述组件级元素与预设事件绑定,当所述预设事件被触发时,执行所述界面测试程序的生成方法;所述预设事件包括对所述组件级元素的属性进行增加、修改或删除的事件;所述装置还包括:
第一监听单元,用于通过浏览器对所述预设事件进行监听。
可选的,所述组件化模板与模板变更事件绑定;所述执行所述界面测试程序的生成方法,采用如下方式:当所述模板变更事件被触发时,执行所述界面测试程序的生成方法;所述装置还包括:
第二监听单元,用于通过浏览器对所述模板变更事件进行监听。
相应的,本申请还提供一种电子设备,包括:
显示器;
处理器;以及
存储器,用于存储界面测试程序的生成装置,所述界面测试程序的生成装置被所述处理器执行时,包括如下步骤:获取为待处理的测试用例预先生成的组件化模板;所述组件化模板是指,包括组件级元素的、能够表达所述测试用例的业务流程的界面文件;所述组件级元素是指,与所述测试用例中控件级元素相对应的组件化元素,所述组件级元素采用预设的组件标签进行标识;针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码;根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述测试用例的测试程序。
与现有技术相比,本申请具有以下优点:
本申请提供一种界面测试程序的生成方法、装置和电子设备,通过获取为待处理的测试用例预先生成的组件化模板;针对组件化模板包括的各个组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与组件级元素对应的程序代码;根据组件级元素在组件化模板中的排列顺序,对与组件级元素对应的程序代码进行合成,作为待处理的测试用例的测试程序。采用本申请提供的方法,能够自动生成待处理的测试用例的测试程序,从而达到降低维护成本的效果。
附图说明
图1是本申请的界面测试程序的生成方法实施例的流程图;
图2是本申请的界面测试程序的生成方法实施例生成组件级元素的程序代码的具体流程图;
图3是本申请的界面测试程序的生成装置实施例的示意图;
图4是本申请的界面测试程序的生成装置实施例的具体示意图;
图5是本申请的电子设备实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,提供了一种界面测试程序的生成方法、装置及电子设备。在下面的实施例中逐一进行详细说明。
本申请实施例提供的界面测试程序的生成方法,其核心的基本思想是:根据预设的组件标签与程序代码的对应关系,对待处理的测试用例的组件化模板进行解析,生成待处理的测试用例的测试程序。由于能够自动生成待处理的测试用例的测试程序,从而达到降低维护成本的效果。
请参考图1,其为本申请的界面测试程序的生成方法实施例的流程图。所述方法包括如下步骤:
步骤S101:获取为待处理的测试用例预先生成的组件化模板。
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。本申请实施例所述的待处理的测试用例包括从操作型界面中抽象出的测试用例。
界面分为操作型界面和查询型界面。相对于查询型界面而言,操作型界面的特点为具有业务交互流程。用户登录界面是一种典型的操作型界面,用户首先需要输入账号及密码等信息,然后点击提交按钮启动后台进行用户身份的验证。在实际应用中,一个操作型界面可抽象出至少一个测试用例。
本申请实施例所述的组件化模板是指,包括组件级元素的、能够表达测试用例的业务流程的界面文件。一个测试用例对应一个组件化模板。所述的组件级元素是指,与测试用例中控件级元素相对应的组件化元素。
控件(Control)和组件(Component)均是对数据和方法的封装。控件一般是为了完成特定的展示或特定页面/窗体的技术功能,而组件一般指对一些小功能点的封装,封装后的集合(组件)一般具有较独立的功能,可以完成某一项任务。因此,控件是为了页面/窗体级复用而出现的,而组件是为了项目级复用而出现的,从这个意义上来说,组件的意思更接近于模块。综上所述,控件和组件的区别在于:控件是可视的、而组件是不可视的,即:控件就是可视化的组件。
本申请实施例所述的控件级元素是指可视化的界面组成元素,所述的组件级元素是指不可视的界面组成元素。所述的组件级元素采用预设的组件标签进行标识。组件级元素包括但不限于:选择列表元素、文本输入元素、可选项元素或按钮元素等。从元素属性角度,所述的组件级元素包括元素定位属性或值属性等。所述的元素定位属性包括元素标识属性或元素名称属性。通过元素定位属性能够对组件级元素进行定位。
需要说明的是,现有技术在对Web页面元素进行定位时,部分元素可能包括id或name属性,而另外部分元素则需要用复杂的xpath来表达。本申请实施例提供的方法,可为复杂的xpath元素增加元素标识或元素名称属性。由于每个组件级元素均可具有元素标识或元素名称属性,因此,只要该元素不删除,页面的dom结构修改便不会影响该元素的定位,从而减少业务需求变更对测试程序的影响。
下面通过本申请实施例的一个组件化模板对上述概念进行具体说明。本实施例的组件化模板代码如下:
@url(“http://output.wmp.daily.taobao.net/quality/packageQ_C.htm”)
@select([name:”desk”,value:”质检台1”])
@text([id:”packageCode”,value:”PASZC150907000004”])
for(int i=0;i<itemNum;i++)
@text([id:”itemCode”,value:”482031-90”])
@button([id:”completeQC”])
上述代码中的@url、@select、@text、@button均为组件标签,其中,@url标签表示driver跳转的目标页面链接,@select和@text标签对应的组件级元素通过输入方式完成,@button标签对应的组件级元素通过点击方式完成。上述每一个组件标签对应的一行代码表示一个组件级元素,例如,@button对应的@button([id:”completeQC”])即表示一个组件级元素,@button标签的id属性为元素标识属性,”completeQC”表示该元素的元素标识值。@text([id:”itemCode”,value:”482031-90”])元素中的value属性(即:值属性)表示实际操作时的测试数据。
要实施本申请实施例提供的方法,首先需要构建待处理的测试用例的组件化模板。在实际应用中,可根据预设的控件标签与组件标签的对应关系,为待处理的测试用例构建组件化模板。例如,控件标签与组件标签的对应关系包括:select对应@select、textarea对应@text等。
需要说明的是,在实际应用中,上述控件标签与组件标签的对应关系可以采用多种具体的形式。该对应关系的各种形式的变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
步骤S103:针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码。
本申请实施例提供的界面测试程序的生成方法,根据预设的组件标签与程序代码模板的对应关系,将组件级元素解析为与其对应的测试程序代码。本步骤即针对组件化模板中的各个组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与各个组件级元素分别对应的测试程序代码。
本申请实施例所述的组件标签与程序代码模板的对应关系实质为一种解析规则,例如,@url标签对应的Java代码模板为driver.get(…)、@text标签对应的代码模板为driver.findElement(…).clear().sendKeys(…).sendKeys(Keys.ENTER)、@button对应的Java代码模板为driver.findElement(…).click()。
所述的程序代码模板是指不包括具体参数的程序代码,例如,组件级元素为@text([id:”packageCode”,value:”PASZC150907000004”]),该元素的组件标签为@text,该组件标签对应的程序代码模板为driver.findElement(By.id(&id)).clear().sendKeys(&value).sendKeys(Keys.ENTER),该组件标签对应的程序代码如下:
driver.findElement(By.id(”packageCode”)).clear();
driver.findElement(By.id(”packageCode”)).sendKeys(”PASZC150907000004”);
driver.findElement(By.id(”packageCode”)).sendKeys(Keys.ENTER);
需要说明的是,在实际应用中,上述组件标签与程序代码模板的对应关系可以采用多种具体的形式。该对应关系的各种形式的变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。此外,可为组件标签设置不同程序语言的程序代码模板,例如,Java语言、C++语言等。
请参考图2,其为本申请的界面测试程序的生成方法实施例生成组件级元素的程序代码的具体流程图。在本实施例中,生成与组件级元素对应的程序代码,包括如下步骤:
步骤S201:解析所述组件级元素,获取所述组件级元素包括的所述组件标签、及所述组件级元素的属性。
要生成与组件级元素对应的程序代码,首先需要对组件级元素进行解析,获取组件级元素包括的组件标签及属性,例如,组件级元素包括的元素定位属性、值属性等。解析组件级元素,可通过文本比对的方法进行。
步骤S203:根据所述组件标签及所述预设的组件标签与程序代码模板的对应关系,获取与所述组件级元素对应的程序代码模板。
获取到组件级元素包括的组件标签后,本步骤以组件标签为检索条件,在预设的组件标签与程序代码的对应关系中进行检索,以获取与所述组件级元素对应的程序代码模板。
步骤S205:根据所述组件级元素的属性和所述程序代码模板,生成与所述组件级元素对应的程序代码。
最后,根据组件级元素的属性对程序代码模板的可变部分进行填充,生成与组件级元素对应的程序代码。例如,组件级元素@text([id:”packageCode”,value:”PASZC150907000004”]),该元素的组件标签对应的程序代码模板包括代码driver.findElement(By.id(&id)).clear(),因此,需读取该元素的id属性,将id属性值填充到代码中,形成程序代码driver.findElement(By.id(”packageCode”)).clear()。
需要说明的是,在实际应用中,可以采用多种具体的实施方式实现步骤S103。实现该步骤的各种形式的变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
步骤S105:根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述待处理的测试用例的测试程序。
本申请实施例所述的组件化模板能够表达测试用例的业务流程,业务流程是通过组件级元素在组件化模板中的排列顺序表示的。以步骤S101给出的组件化模板代码为例,该界面代码所表达的业务流程为:1)选取质检台;2)输入包裹号;3)输入子项编码;4)点击按钮进行提交。
本步骤对于组件化模板包括的各个组件化元素,将与组件化元素对应的程序代码进行合成,以生成待处理的测试用例的测试程序。合成的规则为:按照组件级元素的排列顺序,对组件级元素的程序代码进行合成,即:与组件级元素对应的程序代码在测试程序中的位置、与组件级元素在组件化模板中的位置相对应。
需要说明的是,本申请实施例所述的组件化模板可包括非组件级元素的程序代码,例如,步骤S101给出的组件化模板代码中的for(int i=0;i<itemNum;i++)部分即为非组件级元素的程序代码。与组件级元素不同,非组件级元素的程序代码无需解析。当组件化模板包括非组件级元素的程序代码时,对与组件级元素对应的程序代码进行合成,采用如下规则:测试程序包括非组件级元素的程序代码、且非组件级元素的程序代码在测试程序中的位置与在组件化模板中的位置相对应。
下面以步骤S101给出的组件化模板代码为例,给出应用本申请实施例提供的方法生成的测试程序,以直观说明应用本申请实施例提供的方法所达到的效果。生成的测试程序如下:
在实际应用中,当待处理的测试用例发生变更时,例如,业务流程发生变更(如增加了输入框)、元素属性名被修改、测试数据变更等情况下,首先需要修改与测试用例对应的组件化模板,然后,执行本申请实施例提供的界面测试程序的生成方法,即可根据修改后的组件化模板,自动生成新的测试程序。
作为一种优选的实施方式,本申请实施例提供的界面测试程序的生成方法,可通过为组件化模板绑定模板变更事件,并对模板变更事件进行监听,以实现测试程序的自动更新,即:当监听到模板变更事件被触发时,执行本申请实施例提供的方法。
对于目前常用的Web页面的测试用例,可通过浏览器对模板变更事件进行监听。当对组件化模板进行修改时,实时重新加载(reload)相应的测试程序代码,对Web页面进行回归测试时选取最新版本的测试程序。
作为又一种优选的实施方式,本申请实施例提供的界面测试程序的生成方法,也可通过为组件级元素绑定预设事件,并对预设事件进行监听,以实现测试程序的自动更新,即:当监听到预设事件被触发时,执行本申请实施例提供的方法。
本申请实施例所述的预设事件包括但不限于:对组件级元素的属性值进行增加、修改或删除的事件,还可包括对组件级元素的属性名进行增加、修改或删除的事件等。例如,可通过如下代码:
@text([id:”packageCode”,value:”PASZC150907000004”])
@bind(onChange())
为组件级元素@text([id:”packageCode”,value:”PASZC150907000004”])绑定onChange事件。其中,@bind标签表示为上一个组件级元素绑定动态事件,即:为@text标签所标识的元素绑定onChange事件,也就是会监控该元素的所有属性变更,例如,当对该元素的value属性的值进行修改时,能够触发onChange事件,从而自动更新该元素对应的程序代码。
本申请实施例提供的界面测试程序的生成方法,通过对组件级元素或组件化模板绑定监听事件,使得对组件级元素的属性进行增删改时或对业务流程进行变更时,能够自动触发本申请实施例提供的方法的执行,进一步简化了界面测试程序的生成操作,从而达到进一步降低维护成本的效果。
在上述的实施例中,提供了一种界面测试程序的生成方法,与之相对应的,本申请还提供一种界面测试程序的生成装置。该装置是与上述方法的实施例相对应。
请参看图3,其为本申请的界面测试程序的生成装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种界面测试程序的生成装置,包括:
获取单元101,用于获取为待处理的测试用例预先生成的组件化模板;所述组件化模板是指,包括组件级元素的、能够表达所述测试用例的业务流程的界面文件;所述组件级元素是指,与所述测试用例中控件级元素相对应的组件化元素,所述组件级元素采用预设的组件标签进行标识;
生成单元103,用于针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码;
合成单元105,用于根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述测试用例的测试程序。
请参看图4,其为本申请的界面测试程序的生成装置实施例的具体示意图。可选的,所述生成单元103包括生成子单元,用于生成与所述组件级元素对应的程序代码;
所述生成子单元包括:
解析子单元201,用于解析所述组件级元素,获取所述组件级元素包括的所述组件标签、及所述组件级元素的属性;
获取子单元203,用于根据所述组件标签及所述预设的组件标签与程序代码模板的对应关系,获取与所述组件级元素对应的程序代码模板;
第一生成子单元205,用于根据所述组件级元素的属性和所述程序代码模板,生成与所述组件级元素对应的程序代码。
可选的,所述组件级元素与预设事件绑定,当所述预设事件被触发时,执行所述界面测试程序的生成方法;所述预设事件包括对所述组件级元素的属性进行增加、修改或删除的事件;所述装置还包括:
第一监听单元,用于通过浏览器对所述预设事件进行监听。
可选的,所述组件化模板与模板变更事件绑定;所述执行所述界面测试程序的生成方法,采用如下方式:当所述模板变更事件被触发时,执行所述界面测试程序的生成方法;所述装置还包括:
第二监听单元,用于通过浏览器对所述模板变更事件进行监听。
请参考图5,其为本申请的电子设备实施例的示意图。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
本实施例的一种电子设备,该电子设备包括:显示器1101;处理器1102;以及存储器1103,获取为待处理的测试用例预先生成的组件化模板;所述组件化模板是指,包括组件级元素的、能够表达所述测试用例的业务流程的界面文件;所述组件级元素是指,与所述测试用例中控件级元素相对应的组件化元素,所述组件级元素采用预设的组件标签进行标识;针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码;根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述测试用例的测试程序。
本申请提供一种界面测试程序的生成方法、装置和电子设备,通过获取为待处理的测试用例预先生成的组件化模板;针对组件化模板包括的各个组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与组件级元素对应的程序代码;根据组件级元素在组件化模板中的排列顺序,对与组件级元素对应的程序代码进行合成,作为待处理的测试用例的测试程序。采用本申请提供的方法,能够自动生成待处理的测试用例的测试程序,从而达到降低维护成本的效果。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (15)
1.一种界面测试程序的生成方法,其特征在于,包括:
获取为待处理的测试用例预先生成的组件化模板;所述组件化模板是指,包括组件级元素的、能够表达所述测试用例的业务流程的界面文件;所述组件级元素是指,与所述测试用例中控件级元素相对应的组件化元素,所述组件级元素采用预设的组件标签进行标识;
针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码;
根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述测试用例的测试程序。
2.根据权利要求1所述界面测试程序的生成方法,其特征在于,所述生成与所述组件级元素对应的程序代码,包括:
解析所述组件级元素,获取所述组件级元素包括的所述组件标签、及所述组件级元素的属性;
根据所述组件标签及所述预设的组件标签与程序代码模板的对应关系,获取与所述组件级元素对应的程序代码模板;
根据所述组件级元素的属性和所述程序代码模板,生成与所述组件级元素对应的程序代码。
3.根据权利要求1所述界面测试程序的生成方法,其特征在于,所述组件化模板包括非组件级元素的程序代码;
所述对与所述组件级元素对应的程序代码进行合成,采用如下规则:
所述测试程序包括所述非组件级元素的程序代码、且所述非组件级元素的程序代码在所述测试程序中的位置与在所述组件化模板中的位置相对应。
4.根据权利要求1所述界面测试程序的生成方法,其特征在于,所述组件级元素与预设事件绑定,当所述预设事件被触发时,执行所述界面测试程序的生成方法;所述预设事件包括对所述组件级元素的属性进行增加、修改或删除的事件。
5.根据权利要求4所述界面测试程序的生成方法,其特征在于,还包括:
通过浏览器对所述预设事件进行监听。
6.根据权利要求1所述界面测试程序的生成方法,其特征在于,还包括:
当所述测试用例发生变更时,修改所述组件化模板;所述发生变更包括所述业务流程发生变更;
执行所述界面测试程序的生成方法,根据修改后的组件化模板,生成修改后的测试用例的测试程序。
7.根据权利要求6所述界面测试程序的生成方法,其特征在于,所述组件化模板与模板变更事件绑定;所述执行所述界面测试程序的生成方法,采用如下方式:
当所述模板变更事件被触发时,执行所述界面测试程序的生成方法。
8.根据权利要求7所述界面测试程序的生成方法,其特征在于,还包括:
通过浏览器对所述模板变更事件进行监听。
9.根据权利要求1所述界面测试程序的生成方法,其特征在于,在所述获取为待处理的测试用例预先生成的组件化模板之前,还包括:
根据预设的控件标签与组件标签的对应关系,为所述测试用例构建所述组件化模板。
10.根据权利要求1所述界面测试程序的生成方法,其特征在于,所述组件级元素包括选择列表元素、文本输入元素、可选项元素或按钮元素;所述组件级元素包括元素定位属性,所述元素定位属性包括元素标识属性或元素名称属性。
11.一种界面测试程序的生成装置,其特征在于,包括:
获取单元,用于获取为待处理的测试用例预先生成的组件化模板;所述组件化模板是指,包括组件级元素的、能够表达所述测试用例的业务流程的界面文件;所述组件级元素是指,与所述测试用例中控件级元素相对应的组件化元素,所述组件级元素采用预设的组件标签进行标识;
生成单元,用于针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码;
合成单元,用于根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述测试用例的测试程序。
12.根据权利要求11所述界面测试程序的生成装置,其特征在于,所述生成单元包括生成子单元,用于生成与所述组件级元素对应的程序代码;
所述生成子单元包括:
解析子单元,用于解析所述组件级元素,获取所述组件级元素包括的所述组件标签、及所述组件级元素的属性;
获取子单元,用于根据所述组件标签及所述预设的组件标签与程序代码模板的对应关系,获取与所述组件级元素对应的程序代码模板;
第一生成子单元,用于根据所述组件级元素的属性和所述程序代码模板,生成与所述组件级元素对应的程序代码。
13.根据权利要求11所述界面测试程序的生成装置,其特征在于,所述组件级元素与预设事件绑定,当所述预设事件被触发时,执行所述界面测试程序的生成方法;所述预设事件包括对所述组件级元素的属性进行增加、修改或删除的事件;所述装置还包括:
第一监听单元,用于通过浏览器对所述预设事件进行监听。
14.根据权利要求11所述界面测试程序的生成装置,其特征在于,所述组件化模板与模板变更事件绑定;所述执行所述界面测试程序的生成方法,采用如下方式:当所述模板变更事件被触发时,执行所述界面测试程序的生成方法;所述装置还包括:
第二监听单元,用于通过浏览器对所述模板变更事件进行监听。
15.一种电子设备,其特征在于,包括:
显示器;
处理器;以及
存储器,用于存储界面测试程序的生成装置,所述界面测试程序的生成装置被所述处理器执行时,包括如下步骤:获取为待处理的测试用例预先生成的组件化模板;所述组件化模板是指,包括组件级元素的、能够表达所述测试用例的业务流程的界面文件;所述组件级元素是指,与所述测试用例中控件级元素相对应的组件化元素,所述组件级元素采用预设的组件标签进行标识;针对各个所述组件级元素,根据预设的组件标签与程序代码模板的对应关系,生成与所述组件级元素对应的程序代码;根据所述组件级元素在所述组件化模板中的排列顺序,对与所述组件级元素对应的程序代码进行合成,作为所述测试用例的测试程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610056823.5A CN107015903B (zh) | 2016-01-27 | 2016-01-27 | 一种界面测试程序的生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610056823.5A CN107015903B (zh) | 2016-01-27 | 2016-01-27 | 一种界面测试程序的生成方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107015903A true CN107015903A (zh) | 2017-08-04 |
CN107015903B CN107015903B (zh) | 2021-08-10 |
Family
ID=59438564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610056823.5A Active CN107015903B (zh) | 2016-01-27 | 2016-01-27 | 一种界面测试程序的生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107015903B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678941A (zh) * | 2017-08-31 | 2018-02-09 | 深圳市小牛在线互联网信息咨询有限公司 | 应用程序测试的方法及装置、存储介质和计算机设备 |
CN109446092A (zh) * | 2018-10-31 | 2019-03-08 | 北京微播视界科技有限公司 | 对用户界面ui元素进行标识的方法、装置及电子设备 |
CN110727582A (zh) * | 2019-09-06 | 2020-01-24 | 平安健康保险股份有限公司 | 一种程序测试方法、装置、计算机设备及存储介质 |
CN111324546A (zh) * | 2020-03-20 | 2020-06-23 | 普信恒业科技发展(北京)有限公司 | 一种任务测试方法及装置 |
CN112306893A (zh) * | 2020-11-27 | 2021-02-02 | 平安普惠企业管理有限公司 | 一种ui页面测试方法、装置、计算机设备及存储介质 |
CN112579949A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 确定页面样式污染的方法和装置、存储介质和设备 |
CN116166567A (zh) * | 2023-04-23 | 2023-05-26 | 成都华兴汇明科技有限公司 | 一种基于图形编程的测试用例生成方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049369A (zh) * | 2011-10-14 | 2013-04-17 | 阿里巴巴集团控股有限公司 | 一种自动化测试方法及系统 |
CN103838672A (zh) * | 2014-03-04 | 2014-06-04 | 中国工商银行股份有限公司 | 一种通用报表的自动化测试方法及装置 |
US20140337673A1 (en) * | 2013-05-13 | 2014-11-13 | Hewlett-Packard Development, L.P. | Creating test templates based on steps in existing tests |
CN104407973A (zh) * | 2014-11-25 | 2015-03-11 | 珠海格力电器股份有限公司 | 一种自动化单元测试的实现方法及装置 |
CN104809056A (zh) * | 2014-01-27 | 2015-07-29 | 阿里巴巴集团控股有限公司 | 一种接口测试代码的生成方法和装置 |
-
2016
- 2016-01-27 CN CN201610056823.5A patent/CN107015903B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049369A (zh) * | 2011-10-14 | 2013-04-17 | 阿里巴巴集团控股有限公司 | 一种自动化测试方法及系统 |
US20140337673A1 (en) * | 2013-05-13 | 2014-11-13 | Hewlett-Packard Development, L.P. | Creating test templates based on steps in existing tests |
CN104809056A (zh) * | 2014-01-27 | 2015-07-29 | 阿里巴巴集团控股有限公司 | 一种接口测试代码的生成方法和装置 |
CN103838672A (zh) * | 2014-03-04 | 2014-06-04 | 中国工商银行股份有限公司 | 一种通用报表的自动化测试方法及装置 |
CN104407973A (zh) * | 2014-11-25 | 2015-03-11 | 珠海格力电器股份有限公司 | 一种自动化单元测试的实现方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678941A (zh) * | 2017-08-31 | 2018-02-09 | 深圳市小牛在线互联网信息咨询有限公司 | 应用程序测试的方法及装置、存储介质和计算机设备 |
CN109446092A (zh) * | 2018-10-31 | 2019-03-08 | 北京微播视界科技有限公司 | 对用户界面ui元素进行标识的方法、装置及电子设备 |
CN110727582A (zh) * | 2019-09-06 | 2020-01-24 | 平安健康保险股份有限公司 | 一种程序测试方法、装置、计算机设备及存储介质 |
CN112579949A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 确定页面样式污染的方法和装置、存储介质和设备 |
CN111324546A (zh) * | 2020-03-20 | 2020-06-23 | 普信恒业科技发展(北京)有限公司 | 一种任务测试方法及装置 |
CN112306893A (zh) * | 2020-11-27 | 2021-02-02 | 平安普惠企业管理有限公司 | 一种ui页面测试方法、装置、计算机设备及存储介质 |
CN116166567A (zh) * | 2023-04-23 | 2023-05-26 | 成都华兴汇明科技有限公司 | 一种基于图形编程的测试用例生成方法及装置 |
CN116166567B (zh) * | 2023-04-23 | 2023-08-11 | 成都华兴汇明科技有限公司 | 一种基于图形编程的测试用例生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107015903B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015903A (zh) | 一种界面测试程序的生成方法、装置及电子设备 | |
Bezemer et al. | Enabling multi-tenancy: An industrial experience report | |
US9720811B2 (en) | Unified model for visual component testing | |
CN109902016B (zh) | 一种Web的测试方法及测试平台 | |
US8151276B2 (en) | Test script transformation analyzer with change guide engine | |
CN104298588B (zh) | 一种持续集成的实现方法及装置 | |
CN104572463B (zh) | 测试接口信息的方法及装置 | |
US20090254880A1 (en) | Techniques for offering and applying code modifications | |
US11582170B2 (en) | Conversation-enabled document system and method | |
CN109308254B (zh) | 一种测试方法、装置及测试设备 | |
US20100095265A1 (en) | Application-Aware Recording and Replay | |
CN104424093A (zh) | 一种兼容性测试方法及系统 | |
CN108132925A (zh) | 一种报表文件生成方法及装置 | |
CN105743736A (zh) | 自动化测试方法及系统 | |
US20140068464A1 (en) | System And Method For Capturing Computer Application-Related Information | |
Mehrpour et al. | Active documentation: Helping developers follow design decisions | |
US10282398B1 (en) | Editing tool for domain-specific objects with reference variables corresponding to preceding pages | |
EP2883134A1 (en) | Executable software specification generation | |
CN107038117A (zh) | 一种基于事件处理函数间定义‑引用的web自动化测试方法 | |
Javed et al. | Model Based Testing for Web Applications: A Literature Survey Presented. | |
US20230195825A1 (en) | Browser extension with automation testing support | |
US11010140B2 (en) | Integration of workflow and logical data objects using visual programming | |
Rizzo et al. | Professional SharePoint 2010 Development | |
Ceballos Delgado et al. | FADE: A forensic image generator for android device education | |
Fehlmann et al. | ART for Agile: Autonomous Real-Time Testing in the Product Development Cycle |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180425 Address after: Cayman Islands, Grand Cayman Island capital building, four level 847 box Applicant after: CAINIAO SMART LOGISTICS HOLDING Ltd. Address before: Cayman Islands Grand Cayman capital building a four storey No. 847 mailbox Applicant before: ALIBABA GROUP HOLDING Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |