CN115344471A - 用户界面的测试方法、系统、集群、介质及程序产品 - Google Patents
用户界面的测试方法、系统、集群、介质及程序产品 Download PDFInfo
- Publication number
- CN115344471A CN115344471A CN202110521597.4A CN202110521597A CN115344471A CN 115344471 A CN115344471 A CN 115344471A CN 202110521597 A CN202110521597 A CN 202110521597A CN 115344471 A CN115344471 A CN 115344471A
- Authority
- CN
- China
- Prior art keywords
- test
- clients
- different types
- user interface
- api
- 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
Links
- 238000010998 test method Methods 0.000 title claims description 11
- 238000012360 testing method Methods 0.000 claims abstract description 299
- 238000000034 method Methods 0.000 claims abstract description 66
- 230000002159 abnormal effect Effects 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 18
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 claims description 14
- 229910052711 selenium Inorganic materials 0.000 claims description 14
- 239000011669 selenium Substances 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 13
- 241000208306 Apium Species 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 239000008186 active pharmaceutical agent Substances 0.000 claims 10
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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
-
- 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)
Abstract
本申请提供了一种用户界面的测试方法,包括:针对不同类型客户端提供相同的界面测试API,接收不同类型客户端的测试用例,其中,测试用例基于相同的界面测试API编写,然后执行不同类型客户端的测试用例,从而实现对不同类型客户端的UI的测试。该方法通过抽象出对不同类型客户端统一的界面测试API,使得测试者可以针对不同客户端类型使用统一的界面测试API编写测试用例,将用例编写方法统一和简化,提高了测试用例的编写效率,提高了UI的测试效率。并且,该方法减小不同客户端上编写自动化测试用例的成本,节约了测试成本。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种用户界面的测试方法、系统、集群、计算机可读存储介质以及计算机程序产品。
背景技术
随着计算机技术尤其是前端技术的迅猛发展,许多互联网服务提供商提供了多种客户端类型,以为不同设备的用户提供服务。具体地,互联网服务提供商可以针对互联网软件产品提供网页(web)页面、应用(application,APP)程序。其中,web页面可以通过通用的web客户端如浏览器(桌面浏览器、移动端浏览器)呈现给用户,APP程序为专用客户端,通常可以基于支持该APP程序的操作系统分为不同类型,例如同一软件可以包括Android版、iOS版等多个版本。
在web页面或APP程序开发过程中,通常需要对用户界面(user interface,UI)进行测试。目前,业界提出了UI自动化测试工具,例如用于web页面测试的工具Selenium以及用于app测试的工具Appium等。
然而,在编写不同客户端类型的测试用例时,例如编写web类型、app类型的测试用例时,需要集成不同的测试框架进行开发。不同客户端类型的测试用例编写方法不统一,使用的应用程序编程接口(application programming interface,API)也存在差异,导致同样的业务场景,通常需要编写多份代码,测试用例的编写效率低下,进而极大地影响了UI的测试效率。
发明内容
本申请提供了一种UI的测试方法。该方法通过抽象出对不同类型客户端统一的界面测试API,使得测试者可以针对不同客户端类型使用统一的界面测试API编写测试用例,将用例编写方法统一和简化,提高了测试用例的编写效率,进而提高了UI的测试效率。并且,本申请还大大减小不同客户端上编写自动化测试用例的成本,节约了测试成本。本申请还提供了上述方法对应的UI的测试系统以及计算机集群、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种UI的测试方法。该方法可以应用于UI的测试系统。UI的测试系统具体可以是软件系统,该软件系统可以部署在包括至少一台计算机的计算机集群中。计算机集群运行该软件系统,以实现多类型客户端统一的UI自动化测试。
具体地,UI的测试系统可以针对不同类型客户端提供相同的界面测试API,用户(例如是测试者)可以基于该界面测试API编写不同类型客户端的测试用例,UI的测试系统接收上述不同类型客户端的测试用例,然后执行不同类型客户端的测试用例,从而实现对不同类型客户端的UI的测试。
该方法通过抽象出对不同类型客户端统一的界面测试API,使得测试者可以针对不同客户端类型使用统一的界面测试API编写测试用例,将用例编写方法统一和简化,提高了测试用例的编写效率,进而提高了UI的测试效率。并且,本申请实施例还大大减小不同客户端上编写自动化测试用例的成本,节约了测试成本。
在一些可能的实现方式中,所述界面测试API应用于多个平台。如此,测试者在需要对不同平台(不同类型)的UI进行测试时,可以基于上述界面测试API编写测试用例,而无需考虑平台的差异重新编写测试用例的实现代码,例如可以基于同一套实现代码实现对不同平台的UI进行测试,或者在一个平台对应的测试用例的实现代码的基础上进行微调得到另一个平台对应的测试用例的实现代码,并由此实现对不同平台的UI进行测试。
在一些可能的实现方式中,所述多个平台包括网页平台和应用平台。其中,网页平台可以是网页客户端如web浏览器。进一步地,网页平台还可以包括移动网页平台和桌面网页平台。应用平台可以是应用(application,APP)客户端。APP客户端包括电子邮件客户端、即时通信客户端、电子商务客户端或者是游戏客户端等专用客户端。提供相同服务的客户端还可以按照运行该客户端的设备类型或设备上操作系统的类型进行分类。例如,对于某电子邮件客户端,开发者通常可以在应用市场发布针对不同操作系统的版本,以便用户根据各自设备的操作系统选择相应的版本。
该方法通过对不同平台统一的界面测试API,实现以统一方法编写不同平台的UI对应的测试用例,对于不同平台均具有较好的适应性,满足了测试需求。
在一些可能的实现方式中,UI的测试系统在进行测试时可以先确认客户端类型,然后基于客户端类型选择调用相应的服务进行UI的测试。例如,UI的测试系统可以确认客户端类型为网页客户端,例如是web浏览器,然后根据所述界面测试API调用Selenium服务(用于对网页进行测试的服务)进行UI的测试。
基于上述方法,一方面可以解决原有测试框架如Selenium仅支持特定类型的UI的测试的问题,另一方面无需对原有测试框架进行大幅改动,节省了成本。
在一些可能的实现方式中,UI的测试系统在进行测试时可以先确认客户端类型,然后基于客户端类型选择调用相应的服务进行UI的测试。例如,UI的测试系统可以确认客户端类型为APP客户端,然后可以根据所述界面测试API调用Appium服务进行用户界面的测试。由此解决了原有测试框架如Appium仅支持特定类型的UI的测试的问题,另一方面无需对原有测试框架进行大幅改动,节省了成本。
在一些可能的实现方式中,UI的测试系统在执行测试用例,以对UI进行测试时,还可以出现异常情况,例如出现对UI控件操作异常的情况。UI的测试系统可以检测异常类型,然后根据所述异常类型,调整等待时间,以完成对所述用户界面控件的操作。
与直接使用原有的测试框架如Selenium、Appium,本申请通过智能等待提高了控件操作的成功率,进而提高了测试效率和测试质量。
在一些可能的实现方式中,所述异常类型包括:所述UI控件未加载完成或者是所述UI控件已加载且所述UI控件的关联数据未加载完成。其中,UI控件未加载完成可以进一步分为以下几种情况:(1)UI控件在页面中查找失败,且无法对UI控件操作;(2)UI控件在页面中查找成功,但是无法对UI控件操作,例如UI控件出现在页面中,但处于灰化状态。
上述UI的测试方法可以实现在多种异常情况下进行智能等待,当异常恢复后,再执行测试用例。如此,可以实现高效、稳定的UI测试。
第二方面,本申请提供一种UI的测试系统。所述系统包括:
接口单元,用于针对不同类型客户端提供相同的界面测试API;
通信单元,用于接收不同类型客户端的测试用例,所述不同类型客户端的测试用例基于所述相同的界面测试API编写;
测试单元,用于执行所述不同类型客户端的测试用例,实现对不同类型客户端的用户界面的测试。
在一些可能的实现方式中,所述界面测试API应用于多个平台。
在一些可能的实现方式中,所述多个平台包括网页平台和应用平台。
在一些可能的实现方式中,所述测试单元具体用于:
确认客户端类型为网页客户端,根据所述界面测试API调用Selenium服务进行用户界面的测试。
在一些可能的实现方式中,所述测试单元具体用于:
确认客户端类型为应用客户端,根据所述界面测试API调用Appium服务进行用户界面的测试。
在一些可能的实现方式中,所述测试单元具体用于:
对所述用户界面控件的操作异常时,检测异常类型;
根据所述异常类型,调整等待时间,以完成对所述用户界面控件的操作。
在一些可能的实现方式中,所述异常类型包括:所述UI控件未加载完成或者是所述UI控件已加载且所述用户界面控件的关联数据未加载完成。
第三方面,本申请提供一种计算机集群。所述计算机集群包括至少一台计算机,所述计算机包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,以执行如第一方面或第一方面的任一种实现方式中的用户界面的测试方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第一方面或第一方面的任一种实现方式所述的用户界面的测试方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第一方面的任一种实现方式所述的用户界面的测试方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种计算机集群的系统架构图;
图2为本申请实施例提供的一种UI的测试系统的结构示意图;
图3为本申请实施例提供的一种UI的测试方法的流程图;
图4为本申请实施例提供的一种云服务购买界面的示意图;
图5为本申请实施例提供的一种云服务购买界面的示意图;
图6为本申请实施例提供的一种订单管理界面的示意图;
图7为本申请实施例提供的一种计算机集群的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
为了便于理解本申请实施例,首先,对本申请涉及的部分术语进行解释说明。
网页web页面:一种由超文本标记语言(hyper text markup language,HTML)建立,且能够被浏览器解释或翻译的信息载体。该信息载体能够承载文字、图片、声音、视频等多媒体信息中的任意一种或多种。web页面可以包括各种组织的官方网页或者是信息管理系统的网页。
客户端:一种为客户提供本地服务的程序。客户端也可以称作用户端,客户端可以在本地设备独立运行,或者与远端服务器上的服务端协作运行。客户端可以分为通用的web客户端(例如是浏览器)和专用的APP客户端。通用的web客户端可以通过不同web页面实现不同功能,例如实现电子邮件、电子商务等功能,专用的APP客户端包括电子邮件客户端、即时通信客户端、电子商务客户端或者是游戏客户端等等。其中,提供相同服务的客户端还可以按照运行该客户端的设备类型或设备上操作系统的类型进行分类。例如,对于某电子邮件客户端,开发者通常可以在应用市场发布针对不同操作系统的版本,以便用户根据各自设备的操作系统选择相应的版本。
测试框架:一种为自动化测试用例或者脚本提供执行环境而搭建的基础设施软件。测试框架提供有丰富的组件,从而为软件测试提供帮助。例如,测试框架提供有日志管理组件、测试报告生成及管理组件、测试用例管理组件、测试数据管理组件等等。
在web页面或APP客户端开发过程中,通常需要对用户界面UI进行测试。目前,业界提出了UI自动化测试工具,例如用于web页面测试的工具Selenium以及用于APP客户端测试的工具Appium等。然而,在编写不同客户端类型的测试用例时,例如编写web类型、app类型的测试用例时,需要集成不同的测试框架进行开发。不同客户端类型的测试用例编写方法不统一,使用的应用程序编程接口API也存在差异,导致同样的业务场景,通常需要编写多份代码,测试用例的编写效率低下,进而极大地影响了UI的测试效率。
为了解决上述技术问题,本申请实施例提供一种UI的测试方法。该方法可以应用于UI的测试系统。UI的测试系统具体可以是软件系统,该软件系统可以部署在包括至少一台计算机的计算机集群中。计算机集群运行该软件系统,以实现多类型客户端统一的UI自动化测试。
具体地,UI的测试系统可以针对不同类型客户端提供相同的界面测试API,用户(例如是测试者)可以基于该界面测试API编写不同类型客户端的测试用例,UI的测试系统接收上述不同类型客户端的测试用例,然后执行不同类型客户端的测试用例,从而实现对不同类型客户端的UI的测试。
本申请实施例通过抽象出对不同类型客户端统一的界面测试API,使得测试者可以针对不同客户端类型使用统一的界面测试API编写测试用例,将用例编写方法统一和简化,提高了测试用例的编写效率,进而提高了UI的测试效率。并且,本申请实施例还大大减小不同客户端上编写自动化测试用例的成本,节约了测试成本。
下文将围绕以上介绍的总体思路对本申请实施例作出详细介绍。
首先请参见图1,图1是根据本申请实施例的计算机集群的系统架构示意图。
如图1所示,计算机集群100包括服务器110和终端120,服务器110和终端120通过网络130连接。服务器110可以是云环境中的云服务器。其中,云环境指示云服务提供商拥有的,用于提供计算、存储、通信资源的计算集群。服务器110也可以是本地数据中心的本地服务器。本地数据中心是指用户如测试者所属数据中心。终端120可以是台式机、笔记本电脑、平板电脑或者其他设备。测试者可以通过终端120与服务器110交互,从而实现对不同类型客户端的UI进行统一测试。
具体地,服务器110包括硬件资源和软件资源。硬件资源包括网卡、处理器、存储器……等服务器通用的硬件设备。其中,处理器可以包括中央处理器(central processingunit,CPU)和图形处理器(graphics processing unit,GPU)中的至少一个。一个服务器可以包括至少一个CPU以及至少一个GPU。图1以一个服务器包括一个CPU和一个GPU进行示例说明。
软件资源包括服务器操作系统以及UI的测试系统。其中,服务器操作系统用于对服务器110的硬件设备和部署在服务器110中的软件进行直接控制和管理协调。UI的测试系统运行在服务器操作系统上,用于对不同类型客户端的UI进行统一测试。
其中,不同类型客户端包括web客户端和APP客户端中的至少一个。Web客户端的UI包括web页面。APP客户端的UI包括APP客户端的登录页面、主页面、详情页面、配置页面等等。web客户端可以根据客户端所在设备分为mobile web客户端和个人电脑(personalcomputer,PC)web客户端。APP客户端可以根据客户端所在设备(或者是设备上的操作系统)分为不同类型。
为了使得本申请的技术方案更加清楚、易于理解,以下请参见图2,图2是根据本申请实施例的UI的测试系统的结构示意图,如图2所示,UI的测试系统200包括接口单元202、通信单元204和测试单元206。下面对各个单元的功能进行说明。
接口单元202用于针对不同类型客户端提供相同的界面测试API。该界面测试API包括控件操作层中控件操作方法对应的API。控件操作层封装有UI控件的操作类对应的控件操作方法。其中,UI控件是指用于生成UI的控件,包括但不限于选择控件、输入控件、提交控件等。操作类具体可以包括点击(单击、双击等)、选中等操作的抽象类。操作类可以实例化,从而生成对应的控件操作方法。该控件操作方法相对于不同类型客户端(例如是mobileweb客户端、PC web客户端或者是基于特定操作系统的APP客户端)统一。
通信单元204用于接收不同类型客户端的测试用例。其中,不同类型客户端的测试用例可以是用户(例如为测试者)基于所述相同的界面测试API编写。
测试单元204用于执行上述不同类型客户端的测试用例,实现对不同类型客户端的用户界面的测试。由此可以实现对不同类型客户端,例如是web客户端和APP客户端的UI的一体化测试。
在一些可能的实现方式中,界面测试API可以应用于多个平台,例如是网页平台和应用平台,从而实现对相应类型的客户端进行UI的测试。在一些可能的实现方式中,界面测试API还可以应用于其他平台,从而实现对其他类型的客户端进行UI的测试。
具体地,接口单元202还针对不同平台提供对应的操作方法的API。具体地,接口单元202还包括平台操作层,例如包括网页平台操作和应用平台操作层。其中,网页平台操作层基于Selenium服务封装web客户端如浏览器的操作方法,应用平台操作层基于Appium服务封装APP客户端的操作方法。其中,APP客户端的操作方法还包括设备连接管理方法,用于对部署APP客户端的设备如手机等进行连接管理。控件操作层的API可以调用平台操作层的API,形成API调用链,通过API调用链实现对相应类型的客户端的UI的测试。
进一步地,应用平台还可以根据操作系统类型分为不同的应用平台。基于此,接口单元202还针对不同操作系统类型对应的应用分别提供相应的驱动(drive)。具体地,应用平台包括第一应用平台和第二应用平台,第一应用平台和第二应用平台对应不同类型的操作系统。接口单元202还包括第一应用平台驱动层和第二应用平台驱动层。第一应用平台驱动层包括第一应用平台的驱动,第二应用平台驱动层包括第二应用平台的驱动。
需要说明的是,平台操作层不限于上述网页平台操作层和应用平台操作层,还可以支持其他更多的平台。
在一些可能的实现方式中,接口单元202还可以提供通用操作的API。参见图2,接口单元202还包括基础层,该基础层封装有通用操作方法,例如是超文本传输协议(hypertext transfer protocol,HTTP)请求、模拟(mock)操作或者数据库操作等通用操作方法。基础层提供上述通用操作方法的API,以便于测试调用上述API。此外,基础层还可以实现对测试用例的统一调度。对测试用例的统一调度具体为对不同测试用例执行相同处理。例如,针对不同测试用例增加公共前置条件或公共后置处理,该公共前置条件例如可以是设置环境变量,该公共后置处理例如可以是数据清理、信息收集等。
接口单元202提供的基础层、控件操作层、平台操作层等可以形成web客户端和APP客户端一体化的测试框架。该一体化的测试框架可以提供Selenium服务和Appium服务。测试单元206在执行不同类型客户端的测试用例时,可以确认客户端类型。当客户端类型为网页客户端,则根据所述界面测试API调用Selenium服务进行UI的测试。当客户端类型为应用客户端,根据所述界面测试API调用Appium服务进行UI的测试。
接下来,将结合附图,从UI的测试系统角度对本申请实施例提供的UI的测试方法进行详细说明。
参见图3所示的UI的测试方法的流程图,该方法包括:
S302:UI的测试系统针对不同类型客户端提供相同的界面测试API。
具体地,客户端可以基于通用程度分为通用的web客户端和专用的APP客户端。其中,web客户端还可以基于适用的设备分为mobile web客户端和PC web客户端,APP客户端还可以基于适用的设备(具体是设备中的操作系统)分为桌面客户端和嵌入式客户端,其中,嵌入式客户端可以包括不同嵌入式操作系统对应的客户端。
针对上述不同类型客户端,UI的测试系统基于一体化的测试框架,提供相同的界面测试API,以供测试者基于上述界面测试API编写测试用例。其中,一体化的测试框架包括控件操作层,该控件操作层封装有UI控件的操作类对应的控件操作方法。控件操作层可以暴露上述UI控件的操作类对应的控件操作方法的API,也即界面测试API。
由于控件操作层中封装的控件操作方法时基于Selenium、Appium等测试框架封装的方法抽象得到,基于此,控件操作层暴露的API如界面测试API对于不同类型客户端是相同的。
S304:UI的测试系统接收不同类型客户端的测试用例。
不同类型客户端的测试用例可以是用户(例如为测试者)基于S302中所述的相同的界面测试API编写。具体地,针对不同类型的客户端,用户可以通过相同的界面测试API编写测试用例的实现代码。例如,UI包括点击控件时,用户均可以使用clickElement()方法,UI包括文本输入控件时,用户均可以使用inputText()方法,UI包括等待元素加载控件时,用户均可以使用waitElementAppear()方法。
本申请实施例还以某网站的登录页面的测试用例进行示例说明。
PC web客户端如PC浏览器登录网站时的登录页面对应的测试用例如下所示:
mobile web客户端如手机浏览器登录网站时的登录页面对应的测试用例如下所示:
基于上述实现代码,可知不同类型客户端的登录页面的方法类的实现代码几乎一致,实现代码主要包括界面测试API的调用,界面测试API在不同平台或者不同类型客户端上的调用方法可以是一致的。不同客户端对应的测试用例的实现代码的主要区别在于类名、测试用例名称等信息。因此,用户如测试者在编写完一个类型客户端的测试用例后,可以对已编写的测试用例进行微调得到其他类型客户端的测试用例。
S306:UI的测试系统执行所述不同类型客户端的测试用例,实现对不同类型客户端的用户界面的测试。
UI的测试系统提供了不同类型客户端的测试用例的执行环境,UI的测试系统可以在该执行环境下执行不同类型客户端的测试用例,从而实现对不同类型客户端的UI的测试。
需要说明的是,UI的测试系统执行测试用例时,还可以出现对UI控件的操作异常的情况。基于此,UI的测试系统还可以在对UI控件的操作异常时,检测异常类型。其中,异常类型可以包括以下类型:(1)UI控件未加载完成;(2)UI控件已加载且所述UI控件的关联数据未加载完成。其中,UI控件未加载完成可以包括多种情况,一种情况是UI控件尚未在页面中显示,另一种情况是UI控件在页面中显示,但处于不可用状态(例如是灰化状态)。UI的测试系统可以根据上述异常类型,调整等待时间,以完成对所述用户界面控件的操作。如此解决了Selenium、Appium等测试框架的操作方法不稳定的问题,提升了控件操作成功率,进而提高了测试质量和测试效率。
为了便于理解,下面结合界面图对上述异常情况及其处理结果进行示例说明。
第一种异常情况:UI控件未加载完成,具体是UI控件在页面中查找失败,且无法对UI控件操作。
参见如图4所示的云服务购买界面的示意图,界面400中显示了区域控件,未显示“计费模式”和“购买时长”等控件。本申请实施例的UI测试系统在检测到第一种异常情况,例如“计费模式”和“购买时长”等控件在页面中未显示时,可以预测上述控件的加载完成时间,然后调整等待时间。具体地,测试框架通常设置有默认等待时间,该默认等待时间可以是最大等待时间,例如可以为60秒(second,s)。在本申请实施例中,UI的测试系统可以调整等待时间,例如在默认等待时间的区间内,每间隔设定时间,例如为10s,检测UI控件是否出现,若是,则停止等待,自动完成对上述控件的操作,如选择“包年包月”的计费模式以及选择“购买时长”为1个月。
第二种异常情况:UI控件未加载完成,具体是UI控件在页面中查找成功,但是无法对UI控件操作(例如是UI控件处于灰化状态)。
参见图5所示的云服务购买界面的示意图,界面500中显示了“加入清单”控件,但是该控件处于灰化状态,无法对该控件进行操作。本申请实施例的UI测试系统在检测到第二种异常情况,例如“加入清单”控件在页面中显示,但不可用时,可以预测上述控件由不可用变为可用的等待时间,然后调整等待时间。具体地,测试框架通常设置有默认等待时间,该默认等待时间可以是最大等待时间,例如可以为60秒(second,s)。UI的测试系统可以调整等待时间,例如在默认等待时间的区间内,每间隔设定时间,例如为10s,获取UI控件如“加入清单”控件的属性,基于该属性确定控件是否可用,若是,则停止等待,并对上述控件执行相应的操作。
第三种异常情况:UI控件加载完成,但UI控件关联的数据未加载完成。
参见如图6所示的订单管理界面的示意图,界面500中展示了产品类型控件和区域控件,然而产品类型控件关联的数据以及区域控件关联的数据并未返回,界面500中悬浮了加载框,用于标识数据仍在加载。本申请实施例的UI的测试系统在检测到第三种异常情况,可以预测关联的数据的加载完成时间,当加载完成时间到达时,UI的测试系统可以自动检测是否能触发对UI控件的操作,例如是触发对产品类型控件中特定产品类型的筛选操作,或者是触发对区域控件中特点区域的筛选操作。若是,则执行上述操作完成UI的测试。
基于上述内容描述,本申请实施例提供了一种UI的测试方法。该方法通过抽象出对不同类型客户端统一的界面测试API,使得测试者可以针对不同客户端类型使用统一的界面测试API编写测试用例,将用例编写方法统一和简化,提高了测试用例的编写效率,进而提高了UI的测试效率。并且,本申请实施例还大大减小不同客户端上编写自动化测试用例的成本,节约了测试成本。
进一步地,在执行测试用例过程中,对UI控件的操作异常时,还可以检测异常类型,然后根据所述异常类型,智能调整等待时间,以完成对所述用户界面控件的操作。如此可以解决原生操作方法不稳定的问题,提高控件操作成功率。
此外,本申请实施例在设计一体化的测试框架时,采用分层思路,将测试用例统一调度、公共能力、统一控件操作、驱动分层设计,降低了测试用例实现层面的复杂性。
上文结合图1至图6对本申请实施例提供的UI的测试方法进行了详细介绍,下面将结合附图对本申请实施例提供的UI的测试系统进行介绍。
参见图2所示的UI的测试系统的结构示意图,该系统200包括:
接口单元202,用于针对不同类型客户端提供相同的界面测试应用程序编程接口API;
通信单元204,用于接收不同类型客户端的测试用例,所述不同类型客户端的测试用例基于所述相同的界面测试API编写;
测试单元206,用于执行所述不同类型客户端的测试用例,实现对不同类型客户端的用户界面的测试。
在一些可能的实现方式中,所述界面测试API应用于多个平台。
在一些可能的实现方式中,所述多个平台包括网页平台和应用平台。
在一些可能的实现方式中,所述测试单元206具体用于:
确认客户端类型为网页客户端,根据所述界面测试API调用Selenium服务进行用户界面的测试。
在一些可能的实现方式中,所述测试单元206具体用于:
确认客户端类型为应用客户端,根据所述界面测试API调用Appium服务进行用户界面的测试。
在一些可能的实现方式中,所述测试单元206具体用于:
对所述用户界面控件的操作异常时,检测异常类型;
根据所述异常类型,调整等待时间,以完成对所述用户界面控件的操作。
在一些可能的实现方式中,所述异常类型包括:所述用户界面控件未加载完成或者是所述用户界面控件已加载且所述用户界面控件的关联数据未加载完成。
根据本申请实施例的UI的测试系统200可对应于执行本申请实施例中描述的方法,并且UI的测试系统200的各个模块/单元的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机集群。该计算机集群可以是云环境、边缘环境或者终端设备中的至少一台计算机形成的计算机集群。该计算机集群具体用于实现如图2所示实施例中UI的测试系统200的功能。
图7提供了一种计算机集群的结构示意图,如图7所示,计算机集群70包括至少一台计算机700,计算机700包括总线701、处理器702、通信接口703和存储器704。处理器702、存储器704和通信接口703之间通过总线701通信。
总线701可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器702可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口703用于与外部通信。例如,一台计算机的通信接口703可以用于接收不同类型客户端的测试用例等等。
存储器704可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器704还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器704中存储有可执行代码,处理器702执行该可执行代码以执行前述UI的测试。
具体地,在实现图2所示实施例的情况下,且图2实施例中所描述的UI的测试系统200的各模块为通过软件实现的情况下,图2中通信单元204功能由通信接口703实现,执行图2中功能所需的软件或程序代码可以存储在存储器704中。处理器702执行存储器704中存储的上述模块或单元对应的程序代码,以执行前述UI的测试方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述UI的测试方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
所述计算机程序产品可以为一个软件安装包,在需要使用前述UI的测试方法的任一方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
Claims (17)
1.一种用户界面的测试方法,其特征在于,包括:
针对不同类型客户端提供相同的界面测试应用程序编程接口API;
接收不同类型客户端的测试用例,所述不同类型客户端的测试用例基于所述相同的界面测试API编写;
执行所述不同类型客户端的测试用例,实现对不同类型客户端的用户界面的测试。
2.根据权利要求1所述的方法,其特征在于,所述界面测试API应用于多个平台。
3.根据权利要求2所述的方法,其特征在于,所述多个平台包括网页平台和应用平台。
4.根据权利要求3所述的方法,其特征在于,执行所述不同类型客户端的测试用例,实现对不同类型客户端的用户界面的测试,包括:
确认客户端类型为网页客户端,根据所述界面测试API调用Selenium服务进行用户界面的测试。
5.根据权利要求1至4任一项所述的方法,其特征在于,执行所述不同类型客户端的测试用例,实现对不同类型客户端的用户界面的测试,包括:
确认客户端类型为应用客户端,根据所述界面测试API调用Appium服务进行用户界面的测试。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述执行所述不同类型客户端的测试用例,包括:
对用户界面控件的操作异常时,检测异常类型;
根据所述异常类型,调整等待时间,以完成对所述用户界面控件的操作。
7.根据权利要求6所述的方法,其特征在于,所述异常类型包括:所述用户界面控件未加载完成或者是所述用户界面控件已加载且所述用户界面控件的关联数据未加载完成。
8.一种用户界面的测试系统,其特征在于,包括:
接口单元,用于针对不同类型客户端提供相同的界面测试应用程序编程接口API;
通信单元,用于接收不同类型客户端的测试用例,所述不同类型客户端的测试用例基于所述相同的界面测试API编写;
测试单元,用于执行所述不同类型客户端的测试用例,实现对不同类型客户端的用户界面的测试。
9.根据权利要求8所述的系统,其特征在于,所述界面测试API应用于多个平台。
10.根据权利要求9所述的系统,其特征在于,所述多个平台包括网页平台和应用平台。
11.根据权利要求10所述的系统,其特征在于,所述测试单元具体用于:
确认客户端类型为网页客户端,根据所述界面测试API调用Selenium服务进行用户界面的测试。
12.根据权利要求8至11任一项所述的系统,其特征在于,所述测试单元具体用于:
确认客户端类型为应用客户端,根据所述界面测试API调用Appium服务进行用户界面的测试。
13.根据权利要求8至12任一项所述的系统,其特征在于,所述测试单元具体用于:
对用户界面控件的操作异常时,检测异常类型;
根据所述异常类型,调整等待时间,以完成对所述用户界面控件的操作。
14.根据权利要求13所述的系统,其特征在于,所述异常类型包括:所述用户界面控件未加载完成或者是所述用户界面控件已加载且所述用户界面控件的关联数据未加载完成。
15.一种计算机集群,其特征在于,所述计算机集群包括至少一台计算机,所述计算机包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,以执行如权利要求1至7任一项所述的用户界面的测试方法。
16.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至7任一项所述的用户界面的测试方法。
17.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至7任一项所述的用户界面的测试方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110521597.4A CN115344471A (zh) | 2021-05-12 | 2021-05-12 | 用户界面的测试方法、系统、集群、介质及程序产品 |
PCT/CN2022/092154 WO2022237826A1 (zh) | 2021-05-12 | 2022-05-11 | 用户界面的测试方法、系统、集群、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110521597.4A CN115344471A (zh) | 2021-05-12 | 2021-05-12 | 用户界面的测试方法、系统、集群、介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115344471A true CN115344471A (zh) | 2022-11-15 |
Family
ID=83977808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110521597.4A Pending CN115344471A (zh) | 2021-05-12 | 2021-05-12 | 用户界面的测试方法、系统、集群、介质及程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115344471A (zh) |
WO (1) | WO2022237826A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483690A (zh) * | 2023-03-20 | 2023-07-25 | 中国人民财产保险股份有限公司 | 应用的业务流程测试方法、测试设备、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089217B2 (en) * | 2014-09-23 | 2018-10-02 | Red Hat, Inc. | Identification of software test cases |
CN106844213A (zh) * | 2017-01-21 | 2017-06-13 | 江苏千米网络科技股份有限公司 | 一种前端自动化测试方法及装置 |
CN111061526B (zh) * | 2019-10-12 | 2023-12-01 | 天航长鹰(江苏)科技有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN111913889A (zh) * | 2020-09-11 | 2020-11-10 | 中移(杭州)信息技术有限公司 | 一种测试系统搭建方法及测试系统 |
-
2021
- 2021-05-12 CN CN202110521597.4A patent/CN115344471A/zh active Pending
-
2022
- 2022-05-11 WO PCT/CN2022/092154 patent/WO2022237826A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022237826A1 (zh) | 2022-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933522B (zh) | 一种自动化用例的测试方法、测试系统及存储介质 | |
CN109325195B (zh) | 浏览器的渲染方法和系统、计算机设备、计算机存储介质 | |
CN110532020A (zh) | 一种微服务编排的数据处理方法、装置及系统 | |
US20220027969A1 (en) | Virtualized Services Discovery and Recommendation Engine | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN111782988B (zh) | 确定应用程序来源的方法、装置、计算机系统和存储介质 | |
WO2019029451A1 (zh) | 发布移动应用的方法和电子设备 | |
CN112395098A (zh) | 应用程序接口调用方法、装置、存储介质和电子设备 | |
CN113050984A (zh) | 资源调取方法、装置、电子设备及存储介质 | |
CN104598267A (zh) | 应用的调起方法及装置 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
US10073689B2 (en) | Managing application lifecycles within a federation of distributed software applications | |
CN114048415A (zh) | 表单生成方法及装置、电子设备和计算机可读存储介质 | |
WO2022237826A1 (zh) | 用户界面的测试方法、系统、集群、介质及程序产品 | |
CN113191889A (zh) | 风控配置方法、配置系统、电子设备及可读存储介质 | |
CN112506781A (zh) | 测试监控方法、装置、电子设备、存储介质及程序产品 | |
KR101553539B1 (ko) | 동적 링크 제공 방법 및 이를 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
CN113064987A (zh) | 数据处理方法、装置、电子设备、介质和程序产品 | |
CN111881025A (zh) | 一种自动化测试任务调度方法、装置及系统 | |
CN110764792B (zh) | 一种应用程序的安装方法、装置、设备及存储介质 | |
CN114816385B (zh) | 一种异构系统的集成方法、装置和设备以及存储介质 | |
CN113342633B (zh) | 一种性能测试方法和装置 | |
CN111324888B (zh) | 应用程序启动时的验证方法、装置、电子设备及存储介质 | |
CN117435464A (zh) | 软件测试方法及装置、电子设备和计算机可读存储介质 | |
CN113835796A (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 |