CN111949522B - 用户界面自动化测试方法及装置 - Google Patents
用户界面自动化测试方法及装置 Download PDFInfo
- Publication number
- CN111949522B CN111949522B CN202010756100.2A CN202010756100A CN111949522B CN 111949522 B CN111949522 B CN 111949522B CN 202010756100 A CN202010756100 A CN 202010756100A CN 111949522 B CN111949522 B CN 111949522B
- Authority
- CN
- China
- Prior art keywords
- control
- page
- target
- test
- label
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 137
- 238000001545 Page's trend test Methods 0.000 claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000010998 test method Methods 0.000 claims abstract description 16
- 230000004044 response Effects 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 12
- 230000009471 action Effects 0.000 claims description 9
- 238000010845 search algorithm Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000012827 research and development Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 241000256836 Apis Species 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013142 basic testing Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
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
技术领域
本申请涉及软件测试领域,也可用于互联网金融领域,具体涉及一种用户界面自动化测试方法及装置。
背景技术
随着计算机硬件和软件技术的飞速发展,在软件开发全生命周期内自动化测试占据了越来越重要的位置。不论是Web还是手机软件产品,呈现给用户的都是UI操作界面,因此基于UI的自动化测试方法被广泛运用在软件自动化测试领域中。
发明人发现,现有技术中基于UI的自动化测试技术普遍存在门槛高,对测试人员编程能力要求高的问题,且UI界面变动频繁,自动化测试脚本创建耗时多、维护变更成本高,数据易变更、环境不稳定等因素导致UI自动化测试不能完全发挥出机器替代手工的优势。
发明内容
针对现有技术中的问题,本申请提供一种用户界面自动化测试方法及装置,能够有效提高用户界面自动化测试的效率和准确率,节省人力和研发成本。
为了解决上述问题中的至少一个,本申请提供以下技术方案:
第一方面,本申请提供一种用户界面自动化测试方法,包括:
接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到;
根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
进一步地,在所述接收用户发送的页面测试案例之前,包括:
解析目标页面的网页源码,确定各控件和与所述各控件对应的控件响应代码块;
根据所述各控件的控件响应代码块,得到控件搜索引擎。
进一步地,在所述接收用户发送的页面测试案例之前,还包括:
根据用户发送的对预设操作分类库中的目标操作的选择指令、对预设控件搜索引擎中的目标控件的选择指令以及目标控件参数,生成页面测试案例。
进一步地,所述根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果,包括:
根据所述页面测试案例中的目标控件,从所述控件搜索引擎中得到与所述目标控件对应的控件响应代码块;
根据所述控件响应代码块、所述目标操作及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
第二方面,本申请提供一种用户界面自动化测试装置,包括:
测试案例接收模块,用于接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到;
目标页面测试模块,用于根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
进一步地,还包括:
网页源码解析单元,用于解析目标页面的网页源码,确定各控件和与所述各控件对应的控件响应代码块;
控件搜索引擎构建单元,用于根据所述各控件的控件响应代码块,得到控件搜索引擎。
进一步地,还包括:
测试案例生成单元,用于根据用户发送的对预设操作分类库中的目标操作的选择指令、对预设控件搜索引擎中的目标控件的选择指令以及目标控件参数,生成页面测试案例。
进一步地,所述目标页面测试模块包括:
控件响应代码块确定单元,用于根据所述页面测试案例中的目标控件,从所述控件搜索引擎中得到与所述目标控件对应的控件响应代码块;
页面测试执行单元,用于根据所述控件响应代码块、所述目标操作及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的用户界面自动化测试方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的用户界面自动化测试方法的步骤。
由上述技术方案可知,本申请提供一种用户界面自动化测试方法及装置,通过接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到,然后,根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果,以此降低了自动化测试的门槛,节约了时间和人力成本,业务测试人员不需要关注编程细节,只需要按手工操作过程列出操作步骤,准备好案例需要的测试数据,通过自动组装测试案例与数据,机器构建、多次运行,快速覆盖各测试场景和数据分支,极大提高了测试效率,提升了UI层机器自动测试替代手工测试的比例。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中的用户界面自动化测试方法的流程示意图之一;
图2为本申请实施例中的用户界面自动化测试方法的流程示意图之二;
图3为本申请实施例中的用户界面自动化测试方法的流程示意图之三;
图4为本申请实施例中的用户界面自动化测试装置的结构图之一;
图5为本申请实施例中的用户界面自动化测试装置的结构图之二;
图6为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本公开用户界面自动化测试方法及装置可用于金融领域,也可用于除金融领域之外的任意领域,本公开用户界面自动化测试方法及装置的应用领域不做限定。
考虑到现有技术中基于UI的自动化测试技术普遍存在门槛高,对测试人员编程能力要求高的问题,且UI界面变动频繁,自动化测试脚本创建耗时多、维护变更成本高,数据易变更、环境不稳定等因素导致UI自动化测试不能完全发挥出机器替代手工的优势的问题,本申请提供一种用户界面自动化测试方法及装置,通过接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到,然后,根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果,以此降低了自动化测试的门槛,节约了时间和人力成本,业务测试人员不需要关注编程细节,只需要按手工操作过程列出操作步骤,准备好案例需要的测试数据,通过自动组装测试案例与数据,机器构建、多次运行,快速覆盖各测试场景和数据分支,极大提高了测试效率,提升了UI层机器自动测试替代手工测试的。
为了能够有效提高用户界面自动化测试的效率和准确率,节省人力和研发成本,本申请提供一种用户界面自动化测试方法的实施例,参见图1,所述用户界面自动化测试方法具体包含有如下内容:
步骤S101:接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到。
可以理解的是,所述预设控件搜索引擎用于提取控件关键字,创建虚控件,解析Html源码,构建符号树,利用标签匹配、关键字深度优先搜索算法,按照模式最佳匹配原则对标签进行识别和定位,采用堆栈结构存储标签,标签定位后将操作与控件动态绑定,从而触发对控件的操作。
可以理解的是,所述预设操作分类库用于将UI常用操作进行分类,根据Html控件的标签名字和值,按操作作用于不同控件的反应,进行不同的操作模式定义,形成了控件操作分类库。
步骤S102:根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
可选的,测试案例的语句例如为:点击("登录");搜索引擎解析出搜索关键字“登录”,创建了“登录”按钮的虚拟控件,然后解析Html控件树,根据最佳匹配规则,搜索到“登录”按钮所在的标签<input name="login"value="登录"></input>,记录位置,并将“登录”控件定位到该位置,然后“点击”操作作用于“登录”按钮上,登录按钮响应点击的动作,模拟手动在该按钮上做点击操作,从而完成了测试案例点击("登录")功能。
从上述描述可知,本申请实施例提供的用户界面自动化测试方法,能够通过接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到,然后,根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果,以此降低了自动化测试的门槛,节约了时间和人力成本,业务测试人员不需要关注编程细节,只需要按手工操作过程列出操作步骤,准备好案例需要的测试数据,通过自动组装测试案例与数据,机器构建、多次运行,快速覆盖各测试场景和数据分支,极大提高了测试效率,提升了UI层机器自动测试替代手工测试的。
为了能够根据目标页面的网页源码,得到控件搜索引擎,以用于测试案例的生成,在本申请的用户界面自动化测试方法的一实施例中,参见图2,还可以具体包含如下内容:
步骤S201:解析目标页面的网页源码,确定各控件和与所述各控件对应的控件响应代码块。
步骤S202:根据所述各控件的控件响应代码块,得到控件搜索引擎。
具体的,所述控件搜索引擎工作流程例如如下:
(1)提取搜索关键字:搜索引擎根据测试案例传入的控件名称或标签值(例如:登录按钮控件的名字“登录”),作为搜索时模糊匹配关键字,用于解析Html页面源码时的匹配条件。
(2)创建虚控件:页面接口根据上一步骤传入的控件的关键字,创建一个虚拟控件,该控件被存放到页面的哈希控件表里,哈希表存储的key是控件关键字,用于后续步骤控件被实例化。
(3)解析Html控件树:搜索引擎根据控件关键字,解析Html页面源码,根据设置的搜索匹配模式(关键字+标签),按照深度优先搜索算法,从Html当前Frame沿着Html树状结构,从根节点往叶子节点探寻。
(4)标签匹配和定位:当搜索到关键字时,记录关键字当前位置和Html最邻近标签开始位置,根据Html标签成对匹配特性找到标签结束位置并记录,同时将查找到的标签入栈,判断该标签是否满足搜索结束条件,若不满足,继续往下搜索,直到按最佳匹配模式定位到关键字和标签时,满足了搜索结束条件,搜索过程才结束,结束时从栈里取出最佳匹配标签和位置。
(5)操作和控件绑定:页面接口从页面控件哈希表里,根据控件关键字提取出页面控件,将控件位置赋予控件,从而构建出一个真实的构件并定位到页面上其所在位置。操作作用于该控件时,根据控件的标签属性,操作的模式,将操作和控件动态绑定,触发控件的操作动作,并使控件做出对应的响应,完成Html页面上该控件的操作过程。
为了能够根据灵活、准确、有针对性得生成测试案例,在本申请的用户界面自动化测试方法的一实施例中,还可以具体包含如下内容:
根据用户发送的对预设操作分类库中的目标操作的选择指令、对预设控件搜索引擎中的目标控件的选择指令以及目标控件参数,生成页面测试案例。
为了能够准确解析用户发送的测试案例,并依据测试案例中的测试逻辑对目标页面进行页面测试,在本申请的用户界面自动化测试方法的一实施例中,参见图3,还可以具体包含如下内容:
步骤S301:根据所述页面测试案例中的目标控件,从所述控件搜索引擎中得到与所述目标控件对应的控件响应代码块。
步骤S302:根据所述控件响应代码块、所述目标操作及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
例如,测试案例的语句为:点击("登录");搜索引擎解析出搜索关键字“登录”,创建了“登录”按钮的虚拟控件,然后解析Html控件树,根据最佳匹配规则,搜索到“登录”按钮所在的标签<input name="login"value="登录"></input>,记录位置,并将“登录”控件定位到该位置,然后“点击”操作作用于“登录”按钮上,登录按钮响应点击的动作,模拟手动在该按钮上做点击操作,从而完成了测试案例点击("登录")功能。
为了能够有效提高用户界面自动化测试的效率和准确率,节省人力和研发成本,本申请提供一种用于实现所述用户界面自动化测试方法的全部或部分内容的用户界面自动化测试装置的实施例,参见图4,所述用户界面自动化测试装置具体包含有如下内容:
测试案例接收模块10,用于接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到。
目标页面测试模块20,用于根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
从上述描述可知,本申请实施例提供的用户界面自动化测试装置,能够通过接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到,然后,根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果,以此降低了自动化测试的门槛,节约了时间和人力成本,业务测试人员不需要关注编程细节,只需要按手工操作过程列出操作步骤,准备好案例需要的测试数据,通过自动组装测试案例与数据,机器构建、多次运行,快速覆盖各测试场景和数据分支,极大提高了测试效率,提升了UI层机器自动测试替代手工测试的。
为了能够根据目标页面的网页源码,得到控件搜索引擎,以用于测试案例的生成,在本申请的用户界面自动化测试装置的一实施例中,还具体包含有如下内容:
网页源码解析单元,用于解析目标页面的网页源码,确定各控件和与所述各控件对应的控件响应代码块。
控件搜索引擎构建单元,用于根据所述各控件的控件响应代码块,得到控件搜索引擎。
为了能够根据灵活、准确、有针对性得生成测试案例,在本申请的用户界面自动化测试装置的一实施例中,还具体包含有如下内容:
测试案例生成单元,用于根据用户发送的对预设操作分类库中的目标操作的选择指令、对预设控件搜索引擎中的目标控件的选择指令以及目标控件参数,生成页面测试案例。
为了能够准确解析用户发送的测试案例,并依据测试案例中的测试逻辑对目标页面进行页面测试,在本申请的用户界面自动化测试装置的一实施例中,参见图5,所述目标页面测试模块20包括:
控件响应代码块确定单元21,用于根据所述页面测试案例中的目标控件,从所述控件搜索引擎中得到与所述目标控件对应的控件响应代码块。
页面测试执行单元22,用于根据所述控件响应代码块、所述目标操作及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
为了更进一步说明本方案,本申请还提供一种应用上述用户界面自动化测试装置实现用户界面自动化测试方法的具体应用实例,具体包含有如下内容:驱动层、处理层、服务层、应用层四层架构。
其中,驱动层的WebDriver提供浏览器驱动,与浏览器进行交互。
处理层包括:搜索引擎和操作库两个核心处理组件。
服务层的案例类和页面类提供给上层应用层直接使用;工具类实现测试工具统一管理,数据类实现数据加载与解析,配置类实现页面和数据灵活配置,使数据与代码分离。
具体的,1、驱动层:WebDriver组件封装了浏览器原生的API,支持IE、Firefox、Chrome浏览器。通过Selenium引擎驱动浏览器进行打开、关闭、在浏览器网页或手机上进行点击、输入、选择等各种操作。
2、处理层:搜索引擎提取控件关键字,创建虚控件,解析Html源码,构建符号树,利用标签匹配、关键字深度优先搜索算法,按照模式最佳匹配原则对标签进行识别和定位,采用堆栈结构存储标签,标签定位后将操作与控件动态绑定,从而触发对控件的操作。
搜索引擎工作流程详解如下:
(1)提取搜索关键字:搜索引擎根据测试案例传入的控件名称或标签值(例如:登录按钮控件的名字“登录”),作为搜索时模糊匹配关键字,用于解析Html页面源码时的匹配条件。
(2)创建虚控件:页面接口根据上一步骤传入的控件的关键字,创建一个虚拟控件,该控件被存放到页面的哈希控件表里,哈希表存储的key是控件关键字,用于后续步骤控件被实例化。
(3)解析Html控件树:搜索引擎根据控件关键字,解析Html页面源码,根据设置的搜索匹配模式(关键字+标签),按照深度优先搜索算法,从Html当前Frame沿着Html树状结构,从根节点往叶子节点探寻。
(4)标签匹配和定位:当搜索到关键字时,记录关键字当前位置和Html最邻近标签开始位置,根据Html标签成对匹配特性找到标签结束位置并记录,同时将查找到的标签入栈,判断该标签是否满足搜索结束条件,若不满足,继续往下搜索,直到按最佳匹配模式定位到关键字和标签时,满足了搜索结束条件,搜索过程才结束,结束时从栈里取出最佳匹配标签和位置。
(5)操作和控件绑定:页面接口从页面控件哈希表里,根据控件关键字提取出页面控件,将控件位置赋予控件,从而构建出一个真实的构件并定位到页面上其所在位置。操作作用于该控件时,根据控件的标签属性,操作的模式,将操作和控件动态绑定,触发控件的操作动作,并使控件做出对应的响应,完成Html页面上该控件的操作过程。
示例简要说明下该过程:测试案例语句:点击("登录");搜索引擎解析出搜索关键字“登录”,创建了“登录”按钮的虚拟控件,然后解析Html控件树,根据最佳匹配规则,搜索到“登录”按钮所在的标签<input name="login"value="登录"></input>,记录位置,并将“登录”控件定位到该位置,然后“点击”操作作用于“登录”按钮上,登录按钮响应点击的动作,模拟手动在该按钮上做点击操作,从而完成了测试案例点击("登录")功能。
操作库将UI常用操作进行分类,根据Html控件的标签名字和值,按操作作用于不同控件的反应,进行不同的操作模式定义,形成了控件的操作库。
操作库使用时,根据Html控件本身特性,可点击、可输入、可选择等特性,与手动对控件的操作保持一致,不需要额外记忆,语法近自然语言,格式是:操作(“对象”)。比如:点击“登录”按钮这个操作,使用操作库中的操作“点击”,作用的对象是“登录”按钮,编写案例的语句就是:点击("登录");输入用户名这个操作,使用操作库中的操作“输入”,作用的对象是“用户名”,输入的用户名是“张三”,则编写案例的语句就是:输入("用户名","张三");
3、服务层:工具类实现测试工具统一管理,提供日志记录、数据库处理、XML文件解析、字符串处理等工具集;数据类实现测试数据加载与解析,支持XML数据文件、Config文件、页面文件的格式自定义及动态加载;配置类实现页面和数据灵活配置(见图4),数据与代码分开管理,实现解耦;页面类对应于Html的Web页面,使用时由页面工厂动态创建,使用后自动销毁,节省内存,页面类封装了所有页面控件的基本操作供案例类使用;案例类是服务层提供给应用层使用的测试案例基类,封装了测试案例执行的环境检测、公共操作处理、初始化加载、案例执行后的清理操作,使上层用户编写自动化测试案例时,无需关注底层实现细节,也无需处理测试案例执行依赖的环境因素、案例执行前后的公共处理。
4、应用层:是自动化测试人员编写测试案例的一个层。测试案例采用近自然语言书写方式,与实际手动操作步骤一致,不要求测试人员编程能力,只需要测试人员关注核心测试场景设计,按手工操作步骤列出操作过程。比如:验证一个:商户档案审批的测试场景,该场景的基本测试步骤是:查询某个待审批商户档案->查看商户档案详情->点击通过->填写审批意见->提交->验证审批结果->返回。
由上述内容可知,本申请降低了自动化测试的门槛,节约了时间和人力成本。业务测试人员不需要关注编程细节,只需要按手工操作过程列出操作步骤,准备好案例需要的测试数据,工具可自动组装测试案例与数据,机器构建、多次运行,快速覆盖各测试场景和数据分支,极大提高了测试效率,提升了UI层机器自动测试替代手工测试的比例。
从硬件层面来说,为了能够有效提高用户界面自动化测试的效率和准确率,节省人力和研发成本,本申请提供一种用于实现所述用户界面自动化测试方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现用户界面自动化测试装置与核心业务***、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的用户界面自动化测试方法的实施例,以及用户界面自动化测试装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,用户界面自动化测试方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图6为本申请实施例的电子设备9600的***构成的示意框图。如图6所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图6是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,用户界面自动化测试方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤S101:接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到。
步骤S102:根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
从上述描述可知,本申请实施例提供的电子设备,通过接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到,然后,根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果,以此降低了自动化测试的门槛,节约了时间和人力成本,业务测试人员不需要关注编程细节,只需要按手工操作过程列出操作步骤,准备好案例需要的测试数据,通过自动组装测试案例与数据,机器构建、多次运行,快速覆盖各测试场景和数据分支,极大提高了测试效率,提升了UI层机器自动测试替代手工测试的。
在另一个实施方式中,用户界面自动化测试装置可以与中央处理器9100分开配置,例如可以将用户界面自动化测试装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现用户界面自动化测试方法功能。
如图6所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图6中所示的所有部件;此外,电子设备9600还可以包括图6中没有示出的部件,可以参考现有技术。
如图6所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的用户界面自动化测试方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的用户界面自动化测试方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤S101:接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到。
步骤S102:根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
从上述描述可知,本申请实施例提供的计算机可读存储介质,通过接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到,然后,根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果,以此降低了自动化测试的门槛,节约了时间和人力成本,业务测试人员不需要关注编程细节,只需要按手工操作过程列出操作步骤,准备好案例需要的测试数据,通过自动组装测试案例与数据,机器构建、多次运行,快速覆盖各测试场景和数据分支,极大提高了测试效率,提升了UI层机器自动测试替代手工测试的。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种用户界面自动化测试方法,其特征在于,所述方法包括:
解析目标页面的网页源码,确定各控件和与所述各控件对应的控件响应代码块;根据所述各控件的控件响应代码块,得到控件搜索引擎;根据用户发送的对预设操作分类库中的目标操作的选择指令、对预设控件搜索引擎中的目标控件的选择指令以及目标控件参数,生成页面测试案例;接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到;
根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果;
其中,所述控件搜索引擎的工作流程如下:
搜索引擎根据测试案例传入的控件名称或标签值,为搜索时模糊匹配关键字,用于解析Html页面源码时的匹配条件;
页面接口根据上一步骤传入的控件的关键字,创建一个虚拟控件,所述虚拟控件被存放到页面的哈希控件表里,哈希表存储的key是控件关键字,用于后续步骤控件被实例化;
搜索引擎根据控件关键字,解析Html页面源码,根据设置的搜索匹配模式,按照深度优先搜索算法,从Html当前Frame沿着Html树状结构,从根节点往叶子节点探寻;
当搜索到关键字时,记录关键字当前位置和Html最邻近标签开始位置,根据Html标签成对匹配特性找到标签结束位置并记录,同时将查找到的标签入栈,判断该标签是否满足搜索结束条件,若不满足,继续往下搜索,直到按最佳匹配模式定位到关键字和标签时,满足了搜索结束条件,搜索过程才结束,结束时从栈里取出最佳匹配标签和位置;
页面接口从页面控件哈希表里,根据控件关键字提取出页面控件,将控件位置赋予控件,从而构建出一个真实的构件并定位到页面上其所在位置;操作作用于该控件时,根据控件的标签属性,操作的模式,将操作和控件动态绑定,触发控件的操作动作,并使控件做出对应的响应,完成Html页面上该控件的操作过程。
2.根据权利要求1所述的用户界面自动化测试方法,其特征在于,所述根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果,包括:
根据所述页面测试案例中的目标控件,从所述控件搜索引擎中得到与所述目标控件对应的控件响应代码块;
根据所述控件响应代码块、所述目标操作及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
3.一种用户界面自动化测试装置,其特征在于,包括:
测试案例接收模块,用于解析目标页面的网页源码,确定各控件和与所述各控件对应的控件响应代码块;根据所述各控件的控件响应代码块,得到控件搜索引擎;根据用户发送的对预设操作分类库中的目标操作的选择指令、对预设控件搜索引擎中的目标控件的选择指令以及目标控件参数,生成页面测试案例;接收用户发送的页面测试案例,其中,所述页面测试案例是根据预设操作分类库、预设控件搜索引擎和用户输入的目标控件参数得到;
目标页面测试模块,用于根据所述页面测试案例中的目标操作、目标控件及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果;
其中,所述控件搜索引擎的工作流程如下:
搜索引擎根据测试案例传入的控件名称或标签值,为搜索时模糊匹配关键字,用于解析Html页面源码时的匹配条件;
页面接口根据上一步骤传入的控件的关键字,创建一个虚拟控件,所述虚拟控件被存放到页面的哈希控件表里,哈希表存储的key是控件关键字,用于后续步骤控件被实例化;
搜索引擎根据控件关键字,解析Html页面源码,根据设置的搜索匹配模式,按照深度优先搜索算法,从Html当前Frame沿着Html树状结构,从根节点往叶子节点探寻;
当搜索到关键字时,记录关键字当前位置和Html最邻近标签开始位置,根据Html标签成对匹配特性找到标签结束位置并记录,同时将查找到的标签入栈,判断该标签是否满足搜索结束条件,若不满足,继续往下搜索,直到按最佳匹配模式定位到关键字和标签时,满足了搜索结束条件,搜索过程才结束,结束时从栈里取出最佳匹配标签和位置;
页面接口从页面控件哈希表里,根据控件关键字提取出页面控件,将控件位置赋予控件,从而构建出一个真实的构件并定位到页面上其所在位置;操作作用于该控件时,根据控件的标签属性,操作的模式,将操作和控件动态绑定,触发控件的操作动作,并使控件做出对应的响应,完成Html页面上该控件的操作过程。
4.根据权利要求3所述的用户界面自动化测试装置,其特征在于,所述目标页面测试模块包括:
控件响应代码块确定单元,用于根据所述页面测试案例中的目标控件,从所述控件搜索引擎中得到与所述目标控件对应的控件响应代码块;
页面测试执行单元,用于根据所述控件响应代码块、所述目标操作及所述目标控件参数,对目标页面进行页面测试,得到页面测试结果。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至2任一项所述的用户界面自动化测试方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至2任一项所述的用户界面自动化测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010756100.2A CN111949522B (zh) | 2020-07-31 | 2020-07-31 | 用户界面自动化测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010756100.2A CN111949522B (zh) | 2020-07-31 | 2020-07-31 | 用户界面自动化测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949522A CN111949522A (zh) | 2020-11-17 |
CN111949522B true CN111949522B (zh) | 2024-05-03 |
Family
ID=73338864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010756100.2A Active CN111949522B (zh) | 2020-07-31 | 2020-07-31 | 用户界面自动化测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949522B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597053A (zh) * | 2020-12-30 | 2021-04-02 | 中国工商银行股份有限公司 | 设有安全控件的用户界面自动化测试方法及装置 |
CN112817582B (zh) * | 2021-03-05 | 2023-08-08 | 网易(杭州)网络有限公司 | 代码处理方法、装置、计算机设备和存储介质 |
CN113238969B (zh) * | 2021-06-23 | 2024-02-23 | 中国农业银行股份有限公司 | 界面自动化测试方法、装置、设备及存储介质 |
CN113791786B (zh) * | 2021-09-23 | 2024-01-19 | 安然 | 基于ios***的app页面控件自动化方法及装置 |
CN115373965B (zh) * | 2022-10-25 | 2023-01-10 | 中汽信息科技(天津)有限公司 | 基于堆栈技术的用户标签识别方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389407A (zh) * | 2014-08-21 | 2016-03-09 | 波音公司 | 复杂***的整合可视化与分析 |
CN105808417A (zh) * | 2014-12-29 | 2016-07-27 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
CN105893586A (zh) * | 2016-04-06 | 2016-08-24 | 中国建设银行股份有限公司 | 一种基于积分规则自动生成动态页面的方法 |
CN107729230A (zh) * | 2017-09-18 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于控件模式下的web自动化测试装置及测试方法 |
CN109783388A (zh) * | 2019-01-16 | 2019-05-21 | 北京金山云网络技术有限公司 | Ui自动化测试方法、装置及电子设备 |
CN110688103A (zh) * | 2019-10-10 | 2020-01-14 | 北京东软望海科技有限公司 | 代码编写方法、装置、电子设备及计算机可读存储介质 |
CN111124919A (zh) * | 2019-12-24 | 2020-05-08 | 浙江诺诺网络科技有限公司 | 一种用户界面的测试方法、装置、设备及存储介质 |
CN111427577A (zh) * | 2020-04-27 | 2020-07-17 | 北京每日优鲜电子商务有限公司 | 代码处理方法、装置及服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10565095B2 (en) * | 2016-12-15 | 2020-02-18 | Syntel, Inc. | Hybrid testing automation engine |
-
2020
- 2020-07-31 CN CN202010756100.2A patent/CN111949522B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389407A (zh) * | 2014-08-21 | 2016-03-09 | 波音公司 | 复杂***的整合可视化与分析 |
CN105808417A (zh) * | 2014-12-29 | 2016-07-27 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
CN105893586A (zh) * | 2016-04-06 | 2016-08-24 | 中国建设银行股份有限公司 | 一种基于积分规则自动生成动态页面的方法 |
CN107729230A (zh) * | 2017-09-18 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于控件模式下的web自动化测试装置及测试方法 |
CN109783388A (zh) * | 2019-01-16 | 2019-05-21 | 北京金山云网络技术有限公司 | Ui自动化测试方法、装置及电子设备 |
CN110688103A (zh) * | 2019-10-10 | 2020-01-14 | 北京东软望海科技有限公司 | 代码编写方法、装置、电子设备及计算机可读存储介质 |
CN111124919A (zh) * | 2019-12-24 | 2020-05-08 | 浙江诺诺网络科技有限公司 | 一种用户界面的测试方法、装置、设备及存储介质 |
CN111427577A (zh) * | 2020-04-27 | 2020-07-17 | 北京每日优鲜电子商务有限公司 | 代码处理方法、装置及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111949522A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949522B (zh) | 用户界面自动化测试方法及装置 | |
US10937413B2 (en) | Techniques for model training for voice features | |
US10394925B2 (en) | Automating web tasks based on web browsing histories and user actions | |
CN101373431B (zh) | 增强型小组件合成平台 | |
US10656907B2 (en) | Translation of natural language into user interface actions | |
US20170357486A1 (en) | Enhancing a crowdsourced integrated development environment application | |
CN111417949A (zh) | 数字文档的基于内容的变换 | |
CN114138372B (zh) | 前端组件加载方法及装置 | |
US20200098351A1 (en) | Techniques for model training for voice features | |
CN113110829B (zh) | 多ui组件库数据处理方法及装置 | |
US20220198153A1 (en) | Model training | |
CN112785284A (zh) | 基于结构化文档的报文入库方法及装置 | |
CN110399305B (zh) | Btt模块的测试方法及装置 | |
CN116661936A (zh) | 页面数据的处理方法、装置、计算机设备及存储介质 | |
CN113076262B (zh) | 网页自动化测试方法及装置 | |
US20220300830A1 (en) | Updating chatbot workspaces | |
CN113179183B (zh) | 服务开关状态控制装置及方法 | |
CN112948251B (zh) | 软件自动测试方法及装置 | |
JP2024508412A (ja) | グラフィックユーザインタフェースからの自然言語インタフェースの生成 | |
US11468378B2 (en) | Method and apparatus for skill sharing | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
US11269961B2 (en) | Systems and methods for App query driven results | |
CN112860314B (zh) | 代码建模方法及装置 | |
CN110955451B (zh) | 联机接口的变更方法及装置 | |
CN113190236A (zh) | Hql脚本校验方法及装置 |
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 |