CN113704110B - 用户界面的自动化测试方法及装置 - Google Patents
用户界面的自动化测试方法及装置 Download PDFInfo
- Publication number
- CN113704110B CN113704110B CN202111003625.XA CN202111003625A CN113704110B CN 113704110 B CN113704110 B CN 113704110B CN 202111003625 A CN202111003625 A CN 202111003625A CN 113704110 B CN113704110 B CN 113704110B
- Authority
- CN
- China
- Prior art keywords
- page
- preset
- test
- mobile terminal
- target control
- 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 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- 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—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种用户界面的自动化测试方法。该方法包括:服务端设备获取预设的测试用例,测试用例用于对点击目标控件后跳转至预设的跳转页面的功能进行测试;服务端设备通过预设的用户界面自动化测试工具执行所述测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给移动端设备;移动端设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面,所述待展示页面包括所述目标控件;移动端设备接收预设的代理服务基于拦截到的所述网络请求返回的模拟页面数据,并根据所述模拟页面数据进行页面渲染得到模拟页面;移动端设备根据所述测试指令获取所述跳转页面链接,并根据跳转页面链接跳转至跳转页面。本申请可提高测试效率。
Description
技术领域
本申请涉及测试技术领域,尤其涉及一种用户界面的自动化测试方法及装置。
背景技术
开发人员在开发出移动端设备的应用程序(Application,App)的人机交互界面(User Interface,UI)之后,通常需要对UI进行测试,测试UI是否能够实现预设功能。
现有技术中,在使用测试用例对包含点击控件后跳转对应的页面的操作进行测试时,由于服务器返回的数据经常会发生改变,导致现有技术在对这种功能进行测试时,会因为数据发生变化导致跳转的页面与用例中对应的页面不同,进而使得该测试用例不能通过导致测试失败。
发明内容
有鉴于此,现提供一种用户界面的自动化测试方法、装置、计算机设备及计算机可读存储介质,以解决现有技术中在测试App的UI时无法准确识别UI的控件元素的问题。
本申请提供了一种用户界面的自动化测试方法,包括:
服务端设备获取预设的测试用例,所述测试用例用于对点击目标控件后跳转至预设的跳转页面的功能进行测试;
所述服务端设备通过预设的用户界面自动化测试工具执行所述测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给移动端设备;
所述移动端设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面,所述待展示页面包括所述目标控件;
所述移动端设备接收预设的代理服务基于拦截到的所述网络请求返回的模拟页面数据,并根据所述模拟页面数据进行页面渲染得到模拟页面,其中,所述代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据;
所述移动端设备根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面。
可选地,代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据包括:
所述代理服务对所述服务器返回的待展示页面数据进行拦截,并根据所述目标控件对应的字段信息从所述待展示页面数据查找到所述原始页面链接;
所述代理服务将所述原始页面链接修改为所述跳转页面链接,并将修改后的待展示页面数据作为所述模拟页面数据。
可选地,所述测试指令还包括所述代理服务的参数信息,所述移动端设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面的步骤之前,还包括:
移动端设备根据所述参数信息连接所述代理服务。
可选地,所述移动端设备根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面包括:
所述移动端设备根据所述测试指令从所述模拟页面中识别出所述目标控件;
所述移动端设备根据所述测试指令点击所述目标控件;
所述移动端设备根据对所述目标控件的点击操作构建路由跳转请求;
所述移动端设备根据所述路由跳转请求跳转至所述跳转页面。
可选地,所述移动端设备根据所述测试指令从所述模拟页面中识别出所述目标控件包括:
所述移动端设备对所述模拟页面进行截图操作,得到截图图像;
所述移动端设备采用预设的图像识别算法从所述截图图像中识别出所述目标控件。
可选地,所述自动化测试工具为Appium,所述服务端设备通过预设的用户界面自动化测试工具执行所述测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给移动端设备的包括:
所述服务端设备启动所述Appium;
所述服务端设备通过所述Appium将所述自动化测试脚本转换为所述测试指令,并将所述测试指令发给所述移动端设备。
可选地,所述服务端设备获取预设的测试用例包括:
所述服务端设备从待测试应用的测试用例文件中依次获取测试用例;
所述服务端设备判断当前获取到的测试用例是否为所述预设的测试用例;
若所述服务端设备当前获取到的测试用例不为所述预设的测试用例,则所述服务端设备继续从所述测试用例文件中获取测试用例,直至获取到所述预设的测试用例。
本申请还提供了一种用户界面的自动化测试系统,包括服务端设备以及移动端设备,其中:
所述服务端设备,用于获取预设的测试用例,所述测试用例用于对点击目标控件后跳转至预设的跳转页面的功能进行测试;
所述服务端设备,还用于通过预设的用户界面自动化测试工具执行所述测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给所述移动端设备;
所述移动端设备,用于设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面,所述待展示页面包括所述目标控件;
所述移动端设备,还用于接收预设的代理服务基于拦截到的所述网络请求返回的模拟页面数据,并根据所述模拟页面数据进行页面渲染得到模拟页面,其中,所述代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据;
所述移动端设备,还用于根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面。
本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本实施例的用户界面的自动化测试方法通过在用户界面自动化测试过程中,通过移动端设备根据测试指令加载模拟页面,而无需根据服务器返回的页面数据来进行页面显示。由于模拟页面中的目标控件绑定的跳转页面是一个稳定的页面,从而可以在点击该目标控件时,可以显示一个稳定的跳转页面,避免跳转页面中元素不稳定会导致的后续测试用例执行失败,提高测试效率。
附图说明
图1为本申请实施例的用户界面的自动化测试方法的环境示意图;
图2为本申请所述的用户界面的自动化测试方法的一种实施例的流程图;
图3为本申请一实施方式中服务端设备获取预设的测试用例的步骤细化流程示意图;
图4为本申请一实施方式中服务端设备通过预设的用户界面自动化测试工具执行所述测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给移动端设备的步骤细化流程示意图;
图5为本申请一实施方式中代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据的步骤细化流程示意图;
图6为本申请一实施方式中移动端设备根据所述测试指令加载预设的模拟页面,并在完成所述模拟页面的加载后,跳转至所述跳转页面的步骤细化流程示意图;
图7为本申请一实施方式中移动端设备根据所述测试指令从所述模拟页面中识别出所述目标控件的步骤细化流程示意图;
图8为本申请所述的用户界面的自动化测试系统的一种实施例的架构图;
图9为本申请实施例提供的执行用户界面的自动化测试方法的计算机设备的硬件结构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本申请的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
图1示意性示出了根据本申请实施例的用户界面的自动化测试方法的应用环境示意图。在示例性的实施例中,该应用环境的系统可包括移动端设备10、服务端设备20。其中,移动端设备10与服务端设备20形成无线或有线连接。移动端设备10可以为安卓系统的手机、iPAD,平板电脑等,也可以为IOS系统的手机、iPAD,平板电脑等。服务端设备20可以为电脑,一台服务器或多台服务器组成的服务器集群或云计算中心等,具体此处不作限定。需要说明的是,本实施例中的用户界面的自动化测试方法可以应用于的自动化测试中。
其中,用户界面(User interface,简称UI)的自动化测试指的是以代码方式来模拟用户手动操作用户界面,并实现自动操作和验证用户界面功能布局是否合理,整体风格是否一致和各个控件的放置位置是否符合客户使用习惯、操作是否便捷,导航是否简单易懂,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等等的一种自动化测试手段。
参阅图2,其为本申请一实施例的用户界面的自动化测试方法的流程示意图。本申请中的自动化测试方法应用于包括服务端设备以及移动端设备的用户界面测试系统中,可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的用户界面的自动化测试方法包括:
步骤S20、服务端设备获取预设的测试用例,所述测试用例用于对点击目标控件后跳转至预设的跳转页面的功能进行测试。
具体地,测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
其中,所述预设的测试用例为用户所指定的测试用例,该预设的测试用例用于对待测试应用中点击目标控件后实现页面跳转的交互功能进行测试,在本实施例中,为了区分一般的测试用例和所述预设的测试用例,可以采用预设的标记对所述预设的测试用例进行标记,比如,可以采用标记“1”代表所述预设的测试用例,采用标记“0”代表一般的测试用例。
在本实施例中,所述预设的测试用例包括至少一个测试步骤,每一个测试步骤可以通过测试操作及测试操作针对的目标控件进行描述。示例性的,假设存在如下所述的预设的测试用例,该测试用例用于对应用程序A的页面B跳转功能进行测试,该测试用例包括如下信息:
测试用例标识:应用程序A_01;
测试功能:对页面A的页面跳转功能进行测试;
测试步骤:1、滑动刷新页面以向服务器请求获取页面B;2、点击页面B中的目标控件C。
与测试步骤相对应的测试结果:1、显示页面B;2、显示跳转页面D。
在该测试用例中,“2、点击页面B中的目标控件C”通过测试操作“点击”及“目标控件C”来描述。
需要说明的是,每一个测试步骤均预先配置有对应的测试结果,该测试结果用于描述执行完相应的测试操作后预期要显示的用户界面。在本实施例中,该测试结果包括模拟页面的信息以及跳转页面的信息。
需要说明的是,本实施例中的服务端设备为安装有用户界面自动化测试工具的设备。
在一示例性的实施方式中,参照图3,所述服务端设备获取预设的测试用例包括:
步骤S31,所述服务端设备从待测试应用的测试用例文件中依次获取测试用例。
具体地,所述待测试应用为需要进行用户界面自动化测试的应用。在实际应用中,测试人员可以为待测试应用编写多个测试用例,并将多个测试用例保存至一个测试用例文件中,之后,将编写好的测试用例文件与待测试应用的应用标识关联存储至预先构建的测试用例库中。这样,在对待测试应用进行UI自动化测试时,所述服务端设备可以先根据待测试应用的应用标识从测试用例库中获取测试用例文件,之后,从该测试用例文件中依次获取测试用例。
步骤S31,所述服务端设备判断当前获取到的测试用例是否为所述预设的测试用例。
具体地,可以预先为所述预设的测试用例配置预设的标识信息,通过该预设的标识信息来区分当前获取到的测试用例是否为所述预设的测试用例。
步骤S32,若所述服务端设备当前获取到的测试用例不为所述预设的测试用例,则所述服务端设备继续从所述测试用例文件中获取测试用例,直至获取到所述预设的测试用例。
具体地,当服务端设备判断出当前获取到的测试用例不包含有预设的标识信息,则可以判定当前的测试用例不为所述预设的测试用例,则可以继续从所述测试用例文件中获取测试用例,直至获取到所述预设的测试用例;当服务端设备判断出当前获取到的测试用例包含有预设的标识信息时,则可以判定当前的测试用例为所述预设的测试用例。
步骤S21,所述服务端设备通过预设的用户界面自动化测试工具执行所述测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给移动端设备。
具体地,用户界面自动化测试工具为用于实现用户界面自动化测试的工具,所述用户界面自动化测试工具可以为UIAutomation、Appium等,在本实施例中不作限定。
其中,UIAutomation是微软提供的UI自动化框架,当然它的初衷并不仅仅是为自动化测试而产生的,它的任务是给更多的开发或者应用去调用windows的UI控件,不过还是可以用于自动化测试的;因为之前微软就有类似的工具,而这个是重新设计的ui操作类框架,其目的是为了兼容支持windows系列操作系统的UI自动化操作【xp,vista,server2003】,还有就是天然支持WPF。当然其设计与通常的自动化工具就不一样了,比如:没有把控件支持的方法绑定在控件对象本身,没有提供专门的鼠标/键盘事件,但是却提供了特定控件对象的事件响应监听及处理方法的定制。其工作流程大概是这样的:
a、先获取特定的元素对象,有多种方法,如:句柄,属性值等。
b、获取这个元素对象的模式。
c、通过这个模式在进行具体的方法调用,属性值获取等。
d、监听指定对象的特定事件,一旦发生则执行指定的事件处理函数。
其中,Appium是一个移动端自动化测试开源工具,支持iOS和Android平台,支持Python、Java等语言,即同一套Java或Python脚本可以同时运行在iOS和Android平台,Appium 是一个C/S架构,核心是一个Web服务器,它提供了一套REST的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在HTTP响应中返还给客户端。
在本实施例中,测试人员在编写好测试用例后,可以根据该测试用例编写自动化执行该测试用例的自动化测试脚本,以便可以通过该自动化测试脚本实现用户界面的自动化测试。
需要说明的是,本实施例中的自动化测试指的是编写的自动化测试脚本在预设条件下自动运行系统或应用程序,并评估运行结果的测试方法。
在本实施例中,自动化测试工具在执行自动化测试脚本后,会将该自动化测试脚本转换为移动端设备可以识别的测试指令。
需要说明的是,本实施例中的移动端设备为待进行用户界面测试的安卓系统的手机、iPAD,平板电脑等,或者为IOS系统的手机、iPAD,平板电脑等。
可以理解的是,自动化测试工具在将测试指令发给移动端设备之前,需要先与移动端设备建立连接。在本实施例中,为了与移动端设备建立连接,所述测试指令中需要包含该移动端设备的设备信息,以便自动化测试工具可以根据该设备信息找到移动端设备,并与移动端设备建立连接。
在一示例性的实施方式中,参照图4,所述自动化测试工具为Appium,所述服务端设备通过预设的用户界面自动化测试工具执行所述测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给移动端设备包括:步骤S40,所述服务端设备启动所述Appium;步骤S41,所述服务端设备通过所述Appium将所述自动化测试脚本转换为所述测试指令,并将所述测试指令发给所述移动端设备。
具体地,所述服务端设备上安装有Appium,当需要进行用户界面的自动化测试时,用户可以触发启动指令,所述服务端在接收到该启动指令后,可以启动所述Appium,之后,就可以通过所述Appium将所述自动化测试脚本转换为所述测试指令,并将所述测试指令发给所述移动端设备。
步骤S22,所述移动端设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面,所述待展示页面包括所述目标控件。
具体地,所述服务器为待测试应用提供服务的服务,例如提供资源、保存数据等服务的服务器。移动端设备在接收到服务端设备的测试指令后,首先会向服务器发送网络请求,以便可以通过网络请求获取到待展示页面的页面数据。
需要说明的是,所述待展示页面是待测试应用程序中包含有该目标控件的页面。
步骤S23,所述移动端设备接收预设的代理服务基于拦截到的所述网络请求返回的模拟页面数据,并根据所述模拟页面数据进行页面渲染得到模拟页面,其中,所述代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据。
具体地,移动端设备在发送网络请求获取待展示页面数据时,代理服务会对该网络请求进行拦截,以便可以将该网络请求的获取到的待展示页面数据修改为模拟页面数据,具体而言,代理服务在拦截到网络请求后,会将该网络请求转发给对应的服务器,在服务器基于该网络请求返回响应数据(待展示页面数据)后,代理服务会继续拦截该响应数据,而不会将该响应数据返回给移动端设备,而是会将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,从而得到模拟页面数据,之后将模拟页面数据返回给移动端设备,以将该模拟页面数据作为所述网络请求的响应数据。
其中,所述代理服务是一个软件,运行于某台计算机上,使用代理服务的计算机与Internet交换信息时都先将信息发给代理服务,由其转发,并且将收到的应答回送给该计算机。
在本实施例中,所述模拟页面也可以称为mock页面,用于替换原本服务器返回的页面。模拟页面中包含有目标控件的信息。
作为示例,模拟页面中包括的目标控件的信息如下所示:
“id":87174,
"1ink":"https://www.bi1ibi1i.com/blackboard/dynamic/133628",
"pic":"https://10.hdslb.com/bfs/1ive/562d8f25d657e22aaf4da2fbe4f74a9f5ec267c7.Jpg",
“title":"MSI赛事预测参与互动有奖”。
在本实施例中,id字段代表目标控件的标识信息;link字段代表此目标控件已与地址链接为"https://www.bilibili.com/blackboard/dynamic/133628"的跳转页面绑定;pic字段代表目标控件的图片地址信息;title字段代表目标控件的标题。
在一示例性的实施方式中,参照图5,代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据包括:
步骤S50,所述代理服务对所述服务器返回的待展示页面数据进行拦截,并根据所述目标控件对应的字段信息从所述待展示页面数据查找到所述原始页面链接。
具体地,代理服务中可以预先存储好目标控件的字段信息,该字段信息用于从待展示页面数据中获取目标控件对应的代码数据。这样,当代理服务获取到待展示页面数据之后,即可以根据该字段信息从待展示页面数据找到所述目标控件对应的代码数据。之后,可以从该代码数据中获取到目标控件的原始页面链接。
比如,目标控件对应的字段信息为“link”字段,找到的“link”字段代码数据如下:
link :https://www.bilibili.com/blackboard/dynamic/12452。
步骤S51,所述代理服务将所述原始页面链接修改为所述跳转页面链接,并将修改后的待展示页面数据作为所述模拟页面数据。
具体地,所述跳转页面链接是一个指定的页面的URL(Uniform ResourceLocator,统一资源定位器),URL是定位资源在网络上的统一且唯一地址。通过该跳转页面链接可以访问到跳转页面。
步骤S24,所述移动端设备根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面。
具体地,所述测试指令为用于对移动端设备中的待测试应用中的用户界面进行操作的指令。
在本实施例中,移动端设备在接收到所述测试指令后,可以先加载模拟页面,并在完成模拟页面的加载后,模拟用户点击所述模拟页面中的目标控件,以便在点击该目标控件后,移动端设备可以根据与该目标控件绑定的跳转页面的URL地址(跳转页面链接)向服务器请求该跳转页面的页面数据,并在获取到页面数据后,根据该页面数据对页面进行渲染,从而显示所述跳转页面,实现从模拟页面跳转至所述跳转页面。
本实施例的用户界面的自动化测试方法通过在用户界面自动化测试过程中,通过移动端设备根据测试指令加载模拟页面,而无需根据服务器返回的页面数据来进行页面显示。由于模拟页面中的目标控件绑定的跳转页面是一个稳定的页面,从而可以在点击该目标控件时,可以显示一个稳定的跳转页面,避免跳转页面中元素不稳定会导致的后续测试用例执行失败,提高测试效率。
在一示例性的实施方式中,所述测试指令还包括所述代理服务的参数信息,所述移动端设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面的步骤之前,还包括:
移动端设备根据所述参数信息连接所述代理服务。
具体地,所述参数信息可以包括代理服务的端口信息、地址信息等。
本实施例中,移动端设备在加载模拟页面之前,会首先根据参数信息与代理服务建立连接,这样,后续在接收到移动端发送的网络请求后,即可以拦截该网络请求。
在一示例性的实施方式中,参照图6,所述移动端设备根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面包括:步骤S60,所述移动端设备根据所述测试指令从所述模拟页面中识别出所述目标控件;步骤S61,所述移动端设备根据所述测试指令点击所述目标控件;步骤S62,所述移动端设备根据对所述目标控件的点击操作构建路由跳转请求;步骤S63,所述移动端设备根据所述路由跳转请求跳转至所述跳转页面。
本实施例中,移动端设备在接收到测试指令后,即可以根据该测试指令实现对用户界面的自动化测试操作。具体而言,移动端设备会加载预设的模拟页面,并在完成模拟页面的加载后,点击模拟页面中的目标控件,从而实现将当前的模拟页面跳转至跳转页面。
其中,路由跳转指的是根据数据包的地址进行定向转发的过程。在APP中具体指根据页面中包含的URL跳转至相应页面的过程。
在本实施例中,目标控件关联有link链接,比如目标控件关联有如下link链接:"https://www.bilibili.com/blackboard/dynamic/133628"。当点击该目标控件后,移动端设备中安装的APP(应用程序)会解析与该目标控件所关联的link链接的内容,将此link链接对应的url与必要的参数共同构造成一个路由跳转请求RouteRequest,再通过Router.routeTo路由跳转至该url指定的页面。
在本实施例中,根据mock后的目标控件中的link链接,来构建路由跳转请求,跳转至所述的跳转页面,由于该跳转页面是一个固定页面,其页面中元素不会或很少发发生变化,因此,在进行自动化测试过程中,可以进行进一步的测试操作,以此减少由于元素变化对自动化测试稳定性的影响。
在一示例性的实施方式中,参照图7,所述移动端设备根据所述测试指令从所述模拟页面中识别出所述目标控件包括:步骤S70,所述移动端设备对所述模拟页面进行截图操作,得到截图图像;步骤S71,所述移动端设备采用预设的图像识别算法从所述截图图像中识别出所述目标控件。
具体地,所述图像识别算法可以为传统的图像识别方式,比如,基于模板匹配模型的图像识别方式。在另一实施方式中,也可以采用基于深度学习技术的图像识别技术进行实现,在本实施例中不作限定。
参阅图8所示,是本申请用户界面的自动化测试系统80一实施例的架构图。
本实施例中,用户界面的自动化测试系统80包括服务端设备81及移动端设备82,其中:
服务端设备81,用于获取预设的测试用例,所述测试用例用于对点击目标控件后跳转至预设的跳转页面的功能进行测试;
所述服务端设备81,还用于通过预设的用户界面自动化测试工具执行所述测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给所述移动端设备;
所述移动端设备82,用于设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面,所述待展示页面包括所述目标控件;
所述移动端设备82,还用于接收预设的代理服务基于拦截到的所述网络请求返回的模拟页面数据,并根据所述模拟页面数据进行页面渲染得到模拟页面,其中,所述代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据;
所述移动端设备82,还用于根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面。
在一示例性的实施方式中,所述代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据包括:
所述代理服务对所述服务器返回的待展示页面数据进行拦截,并根据所述目标控件对应的字段信息从所述待展示页面数据查找到所述原始页面链接;
所述代理服务将所述原始页面链接修改为所述跳转页面链接,并将修改后的待展示页面数据作为所述模拟页面数据。
在一示例性的实施方式中,测试指令包括所述代理服务的参数信息,所述移动端设备82,还用于根据所述参数信息连接所述代理服务。
在一示例性的实施方式中,所述移动端设备82,还用于根据所述测试指令从所述模拟页面中识别出所述目标控件;根据所述测试指令点击所述目标控件;根据对所述目标控件的点击操作构建路由跳转请求;根据所述路由跳转请求跳转至所述跳转页面。
在一示例性的实施方式中,所述移动端设备82,还用于对所述模拟页面进行截图操作,得到截图图像;采用预设的图像识别算法从所述截图图像中识别出所述目标控件。
在一示例性的实施方式中,所述自动化测试工具为Appium,所述服务端设备81还用于启动所述Appium;通过所述Appium将所述自动化测试脚本转换为所述测试指令,并将所述测试指令发给所述移动端设备82。
在一示例性的实施方式中,所述服务端设备81,还用于从待测试应用的测试用例文件中依次获取测试用例;判断当前获取到的测试用例是否为所述预设的测试用例;若所述服务端设备当前获取到的测试用例不为所述预设的测试用例,则继续从所述测试用例文件中获取测试用例,直至获取到所述预设的测试用例。
本实施例的用户界面的自动化测试方法通过在用户界面自动化测试过程中,通过移动端设备根据测试指令加载模拟页面,而无需根据服务器返回的页面数据来进行页面显示。由于模拟页面中的目标控件绑定的跳转页面是一个稳定的页面,从而可以在点击该目标控件时,可以显示一个稳定的跳转页面,避免跳转页面中元素不稳定会导致的后续测试用例执行失败,提高测试效率。
图9示意性示出了根据本申请实施例的适于实现用户界面的自动化测试方法的计算机设备9的硬件架构示意图。本实施例中,计算机设备9是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图9所示,计算机设备9至少包括但不限于:可通过系统总线相互通信链接存储器120、处理器121、网络接口122。其中:
存储器120至少包括一种类型的计算机可读存储介质,该可读存储介质可以是易失性的,也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备9的内部存储模块,例如该计算机设备9的硬盘或内存。在另一些实施例中,存储器120也可以是计算机设备9的外部存储设备,例如该计算机设备9上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器120还可以既包括计算机设备9的内部存储模块也包括其外部存储设备。本实施例中,存储器120通常用于存储安装于计算机设备9的操作系统和各类应用软件,例如用户界面的自动化测试方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器121在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它用户界面的自动化测试芯片。该处理器121通常用于控制计算机设备9的总体操作,例如执行与计算机设备9进行数据交互或者通信相关的控制和处理等。本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。
网络接口122可包括无线网络接口或有线网络接口,该网络接口122通常用于在计算机设备9与其它计算机设备之间建立通信链接。例如,网络接口122用于通过网络将计算机设备9与外部终端相连,在计算机设备9与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图9仅示出了具有部件120~122的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的9件。
在本实施例中,存储于存储器120中的用户界面的自动化测试方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本申请。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的用户界面的自动化测试方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的用户界面的自动化测试方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种用户界面的自动化测试方法,应用于包括服务端设备以及移动端设备的用户界面测试系统中,其特征在于,包括:
服务端设备获取预设的测试用例,所述预设的测试用例用于对点击目标控件后跳转至预设的跳转页面的功能进行测试;
所述服务端设备通过预设的用户界面自动化测试工具执行所述预设的测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给移动端设备;
所述移动端设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面,所述待展示页面包括所述目标控件;
所述移动端设备接收预设的代理服务基于拦截到的所述网络请求返回的模拟页面数据,并根据所述模拟页面数据进行页面渲染得到模拟页面,其中,所述代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据;
所述移动端设备根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面。
2.根据权利要求1所述的用户界面的自动化测试方法,其特征在于,所述代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据包括:
所述代理服务对所述服务器返回的待展示页面数据进行拦截,并根据所述目标控件对应的字段信息从所述待展示页面数据查找到所述原始页面链接;
所述代理服务将所述原始页面链接修改为所述跳转页面链接,并将修改后的待展示页面数据作为所述模拟页面数据。
3.根据权利要求2所述的用户界面的自动化测试方法,其特征在于,测试指令还包括所述代理服务的参数信息,所述移动端设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面的步骤之前,还包括:
所述移动端设备根据所述参数信息连接所述代理服务。
4.根据权利要求1所述的用户界面的自动化测试方法,其特征在于,所述移动端设备根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面包括:
所述移动端设备根据所述测试指令从所述模拟页面中识别出所述目标控件;
所述移动端设备根据所述测试指令点击所述目标控件;
所述移动端设备根据对所述目标控件的点击操作构建路由跳转请求;
所述移动端设备根据所述路由跳转请求跳转至所述跳转页面。
5.根据权利要求4所述的用户界面的自动化测试方法,其特征在于,所述移动端设备根据所述测试指令从所述模拟页面中识别出所述目标控件包括:
所述移动端设备对所述模拟页面进行截图操作,得到截图图像;
所述移动端设备采用预设的图像识别算法从所述截图图像中识别出所述目标控件。
6.根据权利要求5所述的用户界面的自动化测试方法,其特征在于,所述自动化测试工具为Appium,所述服务端设备通过预设的用户界面自动化测试工具执行所述预设的测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给移动端设备的包括:
所述服务端设备启动所述Appium;
所述服务端设备通过所述Appium将所述自动化测试脚本转换为所述测试指令,并将所述测试指令发给所述移动端设备。
7.根据权利要求1至6任一项所述的用户界面的自动化测试方法,其特征在于,所述服务端设备获取预设的测试用例包括:
所述服务端设备从待测试应用的测试用例文件中依次获取测试用例;
所述服务端设备判断当前获取到的测试用例是否为所述预设的测试用例;
若所述服务端设备当前获取到的测试用例不为所述预设的测试用例,则所述服务端设备继续从所述测试用例文件中获取测试用例,直至获取到所述预设的测试用例。
8.一种用户界面的自动化测试系统,其特征在于,包括服务端设备以及移动端设备,其中:
所述服务端设备,用于获取预设的测试用例,所述预设的测试用例用于对点击目标控件后跳转至预设的跳转页面的功能进行测试;
所述服务端设备,还用于通过预设的用户界面自动化测试工具执行所述预设的测试用例对应的自动化测试脚本,以将针对所述目标控件的测试指令发给所述移动端设备;
所述移动端设备,用于设备根据所述测试指令向预设的服务器发送网络请求,以访问待展示页面,所述待展示页面包括所述目标控件;
所述移动端设备,还用于接收预设的代理服务基于拦截到的所述网络请求返回的模拟页面数据,并根据所述模拟页面数据进行页面渲染得到模拟页面,其中,所述代理服务对所述服务器返回的待展示页面数据进行拦截并将所述待展示页面数据中包含的所述目标控件对应的原始页面链接修改为预设的跳转页面链接,生成所述模拟页面数据;
所述移动端设备,还用于根据所述测试指令获取所述跳转页面链接,并根据所述跳转页面链接跳转至所述跳转页面。
9.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111003625.XA CN113704110B (zh) | 2021-08-30 | 2021-08-30 | 用户界面的自动化测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111003625.XA CN113704110B (zh) | 2021-08-30 | 2021-08-30 | 用户界面的自动化测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704110A CN113704110A (zh) | 2021-11-26 |
CN113704110B true CN113704110B (zh) | 2024-09-06 |
Family
ID=78656758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111003625.XA Active CN113704110B (zh) | 2021-08-30 | 2021-08-30 | 用户界面的自动化测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704110B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138664B (zh) * | 2021-12-09 | 2025-01-28 | 拉扎斯网络科技(上海)有限公司 | 页面测试方法及装置、存储介质、计算机设备 |
CN114489448B (zh) * | 2021-12-17 | 2024-03-19 | 北京达佳互联信息技术有限公司 | 一种页面测试展示方法、装置、设备及存储介质 |
CN115567564B (zh) * | 2022-12-06 | 2023-09-08 | 东方空间(西安)宇航技术有限公司 | 一种航天设备的测试方法、装置、系统及设备 |
CN117762305B (zh) * | 2023-11-07 | 2024-08-16 | 上海艾门韦思网络科技有限公司 | 基于智能绘画的页面交互方法、装置、电子设备与介质 |
CN117310458B (zh) * | 2023-11-29 | 2024-01-30 | 北京飘石科技有限公司 | 一种fpga芯片的最终测试方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790593A (zh) * | 2016-12-28 | 2017-05-31 | 北京奇虎科技有限公司 | 一种页面处理方法和装置 |
CN107133180A (zh) * | 2017-06-07 | 2017-09-05 | 腾讯科技(深圳)有限公司 | 动态页面的测试方法、测试装置及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064399A1 (en) * | 2004-09-21 | 2006-03-23 | Giuseppe De Sio | Method and system for testing distributed software applications |
US9262311B1 (en) * | 2013-12-03 | 2016-02-16 | Amazon Technologies, Inc. | Network page test system and methods |
CN108255701B (zh) * | 2017-06-27 | 2022-07-22 | 平安普惠企业管理有限公司 | 场景测试方法及移动终端 |
CN108170611B (zh) * | 2018-01-23 | 2019-07-16 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN113050923B (zh) * | 2021-04-21 | 2024-06-14 | 中国工商银行股份有限公司 | 前端接口数据模拟方法、装置及系统 |
-
2021
- 2021-08-30 CN CN202111003625.XA patent/CN113704110B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790593A (zh) * | 2016-12-28 | 2017-05-31 | 北京奇虎科技有限公司 | 一种页面处理方法和装置 |
CN107133180A (zh) * | 2017-06-07 | 2017-09-05 | 腾讯科技(深圳)有限公司 | 动态页面的测试方法、测试装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113704110A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113704110B (zh) | 用户界面的自动化测试方法及装置 | |
US9983892B2 (en) | Deep linking to mobile application states through programmatic replay of user interface events | |
CN111061526B (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN109901834B (zh) | 文档页面生成方法、装置、计算机设备和存储介质 | |
CN112765023B (zh) | 测试用例生成方法、装置 | |
US20140380281A1 (en) | Automated software testing | |
CN111563032B (zh) | App调试方法、装置、计算机设备及存储介质 | |
CN110196809B (zh) | 接口测试方法及装置 | |
CN108920359B (zh) | 应用程序的测试方法、装置、存储介质和电子装置 | |
CN110955409B (zh) | 在云平台上创建资源的方法和装置 | |
WO2017081558A1 (en) | Monitoring and actuation of view controller parameters to reach deep states without manual developer intervention | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
CN114063958B (zh) | 页面分屏显示方法及装置 | |
US9026997B2 (en) | Systems and methods for executing object-oriented programming code invoking pre-existing objects | |
CN113535567A (zh) | 软件测试方法、装置、设备和介质 | |
CN112068879A (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 | |
CN113656326A (zh) | 程序测试方法、装置、计算机系统及存储介质 | |
US8615751B2 (en) | Seeding product information | |
CN111930629A (zh) | 页面测试方法、装置、电子设备及存储介质 | |
CN111752559B (zh) | 前后端分离系统、方法、装置和存储介质 | |
CN109814839B (zh) | 国际化信息生成方法、装置及计算机可读存储介质 | |
CN114860302A (zh) | 页面配置方法及装置、电子设备及存储介质 | |
RU2595763C2 (ru) | Способ и устройство менеджмента загрузки на базе браузера android | |
CN110196803B (zh) | 一种软件缺陷培训方法和系统 | |
CN110704483A (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 |