CN111414309A - 应用程序的自动化测试方法、计算机设备和存储介质 - Google Patents

应用程序的自动化测试方法、计算机设备和存储介质 Download PDF

Info

Publication number
CN111414309A
CN111414309A CN202010227941.4A CN202010227941A CN111414309A CN 111414309 A CN111414309 A CN 111414309A CN 202010227941 A CN202010227941 A CN 202010227941A CN 111414309 A CN111414309 A CN 111414309A
Authority
CN
China
Prior art keywords
tested
screen
application object
preset
main screen
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
Application number
CN202010227941.4A
Other languages
English (en)
Other versions
CN111414309B (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.)
Wuhan United Imaging Healthcare Co Ltd
Original Assignee
Wuhan United Imaging Healthcare 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 Wuhan United Imaging Healthcare Co Ltd filed Critical Wuhan United Imaging Healthcare Co Ltd
Priority to CN202010227941.4A priority Critical patent/CN111414309B/zh
Publication of CN111414309A publication Critical patent/CN111414309A/zh
Application granted granted Critical
Publication of CN111414309B publication Critical patent/CN111414309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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

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

应用程序的自动化测试方法、计算机设备和存储介质
技术领域
本申请涉及互联网技术领域,特别是涉及一种应用程序的自动化测试方法、计算机设备和存储介质。
背景技术
自动化测试一般是指软件测试的自动化,软件测试就是在预设条件下运行***或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。
对于通过浏览器的形式访问应用的客户端来说,目前已有的UI(User Interface,用户界面)自动化测试,存在selenium等测试方法。已有的自动化测试方法虽然能实现对软件进行自动化测试,但是这种测试方法通常用于针对单屏进行测试,对于涉及到多个屏幕且主副屏幕不在同一个iframe下的使用场景,已有的自动化测试方法无法完成自动测试。
发明内容
基于此,有必要针对上述无法完成多屏场景的自动化测试的技术问题,提供一种适用于多屏幕的应用程序的自动化测试方法、计算机设备和存储介质。
一种应用程序的自动化测试方法,所述方法包括:
响应测试启动指令,获取应用程序对应的测试用例;
解析所述测试用例,识别所述测试用例对应的待测试操作以及所述待测试操作对应的目标应用对象标识;
当所述目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在所述主屏幕模拟所述待测试操作;
当所述目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在所述副屏幕中模拟所述待测试操作;
获取模拟执行所述待测试操作的执行结果,基于所述执行结果生成所述应用程序的测试结果,其中,所述主屏幕与所述副屏幕相互关联。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述应用程序的自动化测试方法、计算机设备和存储介质,在检测到测试启动指令时,获取应用程序对应的预设测试用例,根据解析测试用例确定待测试操作以及对应的目标应用对象标识,当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕中模拟待测试操作,而当目标应用对象表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作;在获取到模拟待测试操作的执行结果之后,基于执行结果生成应用程序的测试结果。上述方法在针对应用于多屏的应用程序自动化测试中,对于主屏幕和副屏幕的操作分别调用不同的自动化测试方法在主屏幕和在副屏幕中实现模拟用户操作,并获取模拟用户操作的执行结果,根据该执行结果生成应用程序的测试结果,两个屏幕中的模拟操作互不影响,从而可以实现多屏幕上的应用程序自动化测试。
附图说明
图1为一个实施例中应用程序的自动化测试方法的应用环境图;
图2为一个实施例中应用程序的自动化测试方法的流程示意图;
图3为一个实施例中当待测试操作为在主屏幕的操作时,通过调用selenium的预设主屏幕模拟操作程序在主屏幕中模拟待测试操作的流程示意图;
图4为一个实施例中调用selenium的预设主屏幕模拟操作程序在主屏幕中测试用例对应的浏览器页面中模拟待测试操作的流程示意图;
图5为一个具体实施例中应用程序的自动化测试方法的流程示意图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的应用程序的自动化测试方法,在一些实施例中可以应用于如图1所示的应用环境中。其中,涉及多个终端(多个屏幕),本实施例中以终端110和终端120表示,终端110和终端120均通过网络与服务器130进行通信。在一些实施例中,服务器130在检测到测试启动指令时,获取应用程序对应的预设测试用例,根据解析测试用例确定待测试操作以及对应的目标应用对象标识,当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕中模拟待测试操作,而当目标应用对象表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作;在获取到模拟待测试操作的执行结果之后,基于执行结果生成应用程序的测试结果;其中,主屏幕和副屏幕分别对应终端110和终端120;在另一些实施例中,主屏幕和副屏幕的个数也可能存在多个。其中,终端110、终端120可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器130可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种应用程序的自动化测试方法,以该方法应用于图1中的服务器为例进行说明,包括步骤S210至步骤S250。
步骤S210,响应测试启动指令,获取应用程序对应的测试用例。
其中,测试启动指令用于指示启动自动测试,测试启动指令中指定了需要进行自动测试的应用程序,具体可以是测试启动指令携带应用程序标识;在一个实施例中,测试启动指令中还指定了预设用例的标识;在一个实施例中,测试启动指令是由测试人员发起的指令。
测试用例(Test Case)是指对一项特定的应用程序进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定的应用程序需求。一个实施例中测试用例中设定了待执行的测试步骤及顺序。
一个实施例中,在检测到测试启动指令时,根据测试启动指令获取对应的测试用例;在另一个实施例中,测试用例是预先设定的,当检测到测试启动指令时,获取应用程序对应的测试用例。
在一个实施例中,应用程序可以是用于远程诊断的应用程序,在主屏幕中可以显示诊断报告,而在副屏幕中查看图像,该应用程序的使用过程中涉及到多个屏幕切换操作;同时,在主屏幕中是基于浏览器的形式来访问应用程序。
步骤S220,解析测试用例,识别测试用例对应的待测试操作以及待测试操作对应的目标应用对象标识。
一个测试用例中可以包括一个或者多个操作;对测试用例进行解析,可以获得测试用例中下一步需要执行的操作,在本实施例中记为待测试操作;在一个实施例中,待测试操作可以是如双击检查列表等。本实施例中,应用对象是指应用程序在运行时设置在界面中的控件,待测试操作对应的应用对象标识表示的是该待测试操作所对应的控件(应用对象)的唯一标识,在本实施例中记为目标应用对象的标识;以待测试操作为双击检查列表为例,待测试操作对应的目标应用对象标识表示的是检查列表对应的控件。
步骤S230,当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕模拟待测试操作。
本实施例中应用程序的自动化测试方法应用于多屏幕的应用程序,因此需要确定测试用例的待测试操作对应的操作;在本实施例中,根据目标应用对象标识确定待测试操作所在的屏幕,从而确定需要在哪一屏幕中的哪一位置模拟待测试操作。
当根据目标应用对象标识待测试操作所在的位置为主屏幕时,通过调用第一预设自动化测试方法在主屏幕中模拟待测试操作;在一个具体实施例中,第一预设自动化测试方法可以根据实际情况设置,用于在主屏幕中实现应用程序的自动化测试。在一个具体实施例中,对于主屏幕中是通过浏览器访问应用程序的应用场景,可以通过selenium中的方法在主屏幕模拟待测试操作。
步骤S240,当目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作。
当根据目标应用对象标识待测试操作所在的位置为副屏幕时,通过调用第二预设自动化测试方法在副屏幕中模拟待测试操作;在一个具体实施例中,第二预设自动化测试方法可以根据实际情况设置,用于在副屏幕中实现应用程序的自动化测试。在一个具体实施例中,通过调用AutoIt录制获得的文件模拟待测试操作。
更进一步,当在调用第二预设自动化测试方法在副屏幕中模拟待测试操作之后,可以根据第一预设自动化测试方法和第二预设自动化测试方法得到第三预设自动化测试方法,调用第三预设自动化测试方法在主屏幕中模拟待测试操作。
在一个具体实施例中,第一预设自动化测试方法是selenium测试方法,第二预设自动化测试方法是AutoIt录制测试,第三预设自动化测试方法是包含selenium测试方法和AutoIt录制测试的自动化测试方法。
步骤S250,当模拟完测试用例中所有待测试步骤时,获取模拟执行待测试操作的执行结果,基于执行结果生成应用程序的测试结果,其中,主屏幕与副屏幕相互关联。
当在主屏幕或者副屏幕中模拟待测试操作之后,获取应用程序的响应结果,在本实施例中记为待测试操作的执行结果;例如在一个具体实施例中,待测试操作为双击检查列表,假设在主屏幕中模拟双击检查列表之后,根据应用程序的逻辑将会在副屏幕中将会自动在副屏幕中打开对应的图像;因此,当在主屏幕中模拟双击检查列表之后,若执行结果为检测到在副屏幕中自动打开对应的图像,表示应用程序正常;当在主屏幕中模拟双击检查列表之后,若执行结果为在副屏幕中未检测到对应的图像时,表示应用程序可能发生了异常。
在一个实施例中,测试用例中包括多个步骤时,当模拟一次待测试操作之后,返回识别待执行步骤和待执行步骤对应的目标应用对象标识的步骤,依次执行测试用例中的所有待执行步骤,并获得待执行步骤的执行结果。
进一步地,根据模拟待测试操作的执行结果确定本次应用程序的测试结果;在一个实施例中,一个测试用例中包括多个待测试操作,在模拟一次待测试操作后,返回解析测试用例识别测试用例对应的待测试操作和待测试操作对应的目标应用对象标识的步骤;在所有待执行步骤完成之后,获取各待执行步骤的执行结果,根据各待执行步骤的执行结果确定应用程序的测试结果。
在一个实施例中,应用程序的测试结果包括:测试用例对应的标识,测试用例对应的互联网协议地址,测试用例的执行时间以及待测试操作的执行结果。
上述应用程序的自动化测试方法,在检测到测试启动指令时,获取应用程序对应的预设测试用例,根据解析测试用例确定待测试操作以及对应的目标应用对象标识,当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕中模拟待测试操作,而当目标应用对象表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作;在获取到模拟待测试操作的执行结果之后,基于执行结果生成应用程序的测试结果。上述方法在针对应用于多屏的应用程序自动化测试中,对于主屏幕和副屏幕的操作分别调用不同的自动化测试方法在主屏幕和在副屏幕中实现模拟用户操作,并获取模拟用户操作的执行结果,根据该执行结果生成应用程序的测试结果,两个屏幕中的模拟操作互不影响,从而可以实现多屏幕上的应用程序自动化测试。
进一步地,在一个实施例中,当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕模拟待测试操作包括:当目标应用对象标识表征主屏幕时,调用selenium的预设主屏幕模拟操作程序在主屏幕中模拟待测试操作。
其中,selenium是一个用于Web应用程序测试的工具;Selenium测试直接运行在浏览器中,就像真正的用户在操作一样;Selenium这个工具的主要功能包括:测试与浏览器的兼容性:测试应用程序是否能够兼容的工作在不同浏览器和操作***之上。测试***功能包括创建回归测试检验应用程序功能和用户需求;支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本;一个实施例中,Selenium通过selenium webdriver实现在对页面中的元素进行定位操作。
当根据目标应用对象标识表征在主屏幕时,表示需要在主屏幕中模拟待测试操作,调用预设主屏幕模拟操作程序在主屏幕中模拟相应的待测试操作,一个实施例中预设主屏幕模拟操作程序为selenium中的程序。
更进一步地,在一个实施例中,如图3所示,当待测试操作为在主屏幕的操作时,通过调用selenium的预设主屏幕模拟操作程序在主屏幕中模拟待测试操作包括步骤S310至步骤S330。
步骤S310,当目标应用对象标识表征主屏幕时,侦听主屏幕中浏览器启动事件。
在一个实施例中,主屏幕中浏览器启动事件对应的是在主屏幕中启动浏览器的操作,当侦听到主屏幕中的启动浏览器的操作时,表示主屏幕中浏览器已被启动,而如果未侦听到主屏幕中启动浏览器的操作,表示主屏幕中浏览器未启动。在另一个实施例中,浏览器启动事件对应的是检测主屏幕中有已经打开的浏览器界面,当检测到主屏幕中存在打开的浏览器界面时,表示侦听到主屏幕的浏览器启动事件,当检测到主屏幕中不存在打开的浏览器界面时,表示未侦听到浏览器启动事件。在其它实施例中,主屏幕中浏览器启动事件也设置为其他事件。
步骤S320,当未侦听到浏览器启动事件时,调用selenium webdriver启动主屏幕的浏览器,得到测试用例对应的浏览器页面。
当在主屏幕中未侦听到浏览器启动事件时,表示当前主屏幕没有浏览器被启动,因此需要先在主屏幕中启动浏览器,具体可以通过调用selenium中的selenium webdriver程序来启动主屏幕中的浏览器,并得到应用程序的测试用例对应的待测试的浏览器界面。
其中,Selenium Webdriver(也就是Selenium2,Selenium3)和Selenium RC(Selenium 1)均提供了网页web自动化的各种语言调用接口库;具体地,SeleniumWebdriver是通过各种浏览器的驱动(web driver)来驱动浏览器的。
步骤S330,调用selenium的预设主屏幕模拟操作程序在主屏幕中测试用例对应的浏览器页面中模拟待测试操作。
在启动主屏幕的浏览器且得到测试用例对应的浏览器界面之后,根据待测试步骤对应的预设主屏幕模拟操作,在主屏幕中模拟待测试操作;其中预设主屏幕模拟操作是selenium中的程序。
在一个实施例中,如图4所示,调用selenium的预设主屏幕模拟操作程序在主屏幕中测试用例对应的浏览器页面中模拟待测试操作包括步骤S410和步骤S420。
步骤S410,在主屏幕中测试用例对应的浏览器页面中定位目标应用对象标识对应的目标应用对象的位置。
根据测试用例获得了目标应用对象标识,在主屏幕中已经启动浏览器打开测试用例对应的浏览器页面之后,可以在浏览器页面中定位该目标应用对象标识对应的目标应用对象在该浏览器页面中所在的位置,记为目标应用对象的位置。
在一个实施例中,在主屏幕中测试用例对应的浏览器页面中定位目标应用对象标识对应的目标应用对象的位置包括:调用selenium中的元素标识获取方法,获取主屏幕中测试用例对应的浏览器页面中应用对象标识与应用对象位置对应关系;根据主屏幕中测试用例对应的浏览器页面中应用对象标识与应用对象位置对应关系,查找目标应用对象标识对应的目标应用对象的位置。
在启动主屏幕的浏览器,获得测试用例对应的浏览器界面之后,可以通过调用相关的方法获取该浏览器界面中各应用对象的序号、名称等,在本实施例中,将浏览器页面中的应用对象的序号和名称记为应用对象标识,进一步地,获取各应用对象在浏览器页面中的位置,获得各应用程序对象标识与位置的对应关系;在浏览器页面的各应用程序对象标识与位置的对应关系,查找目标应用对象标识对应的目标对象在浏览器页面中所对应的目标应用对象的位置。
在一个具体实施例中,元素(应用对象)标识获取方法具体可以是元素序号获取方法(get Element Id)或者元素名称获取方法(get Element Name)等方法。
步骤S420,基于目标应用对象的位置,调用selenium中待测试操作对应的预设主屏幕模拟操作程序,模拟待测试操作。
调用selenium中待测试操作对应的预设主屏幕模拟操作程序在目标应用对象的位置执行,即可完成模拟待测试操作的步骤。
在一个实施例中,待测试操作包括对元素执行输入、点击操作等,在一个具体实施例中,可以采用元素输入方法(element.send_keys)、元素点击方法(element.click)等方法实现模拟应用对象(元素)的输入、点击操作。
在另一个实施例中,当目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作包括:当目标应用对象标识表征副屏幕时,调用待测试操作对应的预设副屏幕模拟操作文件在副屏幕中模拟待测试操作;其中,预设副屏幕模拟操作文件为通过AutoIt在副屏幕录制待测试操作对应的用户操作生成。
其中,AutoIt用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务;AutoIt的常用功能包括:运行Windows和Dos程序、模拟键击动作(支持大多数键盘布局)、模拟鼠标移动和点击动作、对窗口进行移动,调整大小和其它操作、直接与窗口的“控件”交互(设置/获取文本,移动,关闭等等)、配合剪贴板进行剪切/粘贴文本操作,以及对注册表进行操作等等;一个实施例中,AutoIt通过捕捉屏幕的坐标对页面中的元素进行定位。
本实施例中描述的是当目标应用对象表示待测试操作需要在副屏幕上执行时,调用预设副屏幕模拟操作文件在副屏幕中模拟待测试。一个实施例中,第二预设自动化测试方法采用的是调用AutoIt录制的模拟操作文件。在一个实施例中,根据待测试步骤确定需要调用的预设副屏幕模拟操作文件。
一个实施例中,预设副屏幕模拟操作文件为通过AutoIt录制的.exe文件,当调用预设副屏幕模拟操作文件时,具体为调用待测试操作对应的预设副屏幕模拟操作文件进行播放。
进一步地,AutoIt录制的模拟操作文件中携带了所模拟的操作对应的屏幕的坐标位置,通过捕捉屏幕中的坐标实现定位模拟操作文件所模拟的操作在屏幕中对应的位置,实现通过回放相应的模拟操作文件达到在屏幕中模拟待测试操作的效果。
上述方法,在主屏幕和副屏幕中模拟待测试操作,获得执行结果之后,若测试用例中还包括其他的待测试步骤,则确定下一待测试步骤,确定该下一待测试步骤所对应的位置(主屏幕或者副屏幕),进一步对下一待测试步骤在屏幕中进行模拟,可以实现主屏幕和副屏幕之间的切换。
在一个具体实施例中,如图5所示,上述应用程序的自动化测试方法包括以下步骤:
预先利用AutoIt在副屏幕中录制各种操作步骤,并生成exe可执行文件。
检测到测试启动指令时,获取应用程序对应的测试用例;解析测试用例获得待测试步骤。
在主屏幕中未侦听到浏览器启动事件时,在主屏幕senium webdriver通过启动浏览器driver;通过浏览器driver可以模拟人工操作,对浏览器界面中各元素进行定位操作。
当根据测试用例确定待测试操作为“在主屏幕双击检查列表”时,在浏览器页面中定位“检查列表”控件对应的位置,调用预设模拟操作程序(如点击),在定位的“检查列表”控件位置模拟双击操作;检测在副屏幕是否打开对应的检查列表图像,获得该“在主屏幕双击检查列表”的待测试操作的执行结果。
返回获取待测试操作的步骤,并对获得的待测试操作进行主副屏幕的判断,当根据测试用例确定待测试操作为“在副屏幕执行操作X”时,调用与操作X对应的AutoIt生成的exe文件进行操作回放,对应在副屏幕中模拟待测试操作。
返回确定待测试操作的步骤,依次确定测试用例中各步骤对应主屏幕或者副屏幕,当在主屏幕时,通过浏览器driver调用相应的模拟程序在主屏幕模拟待测试操作,当对应副屏幕时,通过调用相应的exe文件在副屏幕中进行回放;模拟待测试操作后获得待测试操作的执行结果;其中如果副屏幕的待测试操作完成后,返回主屏幕,可以直接再次操作driver。在测试用例中各步骤均已执行完成时,根据各步骤的执行结果生成应用程序的自动测试结果。
上述方法中,在副屏幕中通过调用AutoIt录制EXE脚本模拟操作不会影响在主屏幕通过浏览器driver模拟操作的实现,因此在应用程序的自动化测试中可以在主屏幕、副屏幕可以随意切换,实现涉及多屏幕的应用程序自动化测试。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种应用程序的自动化测试装置,包括:获取模块、解析模块、主屏幕操作模拟模块、副屏幕操作模拟模块和测试结果生成模块,其中:
获取模块,用于响应测试启动指令,获取应用程序对应的测试用例;
解析模块,用于解析测试用例,识别测试用例对应的待测试操作以及待测试操作对应的目标应用对象标识;
主屏幕操作模拟模块,用于当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕模拟待测试操作;
副屏幕操作模拟模块,用于当目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作;
测试结果生成模块,用于获取模拟执行待测试操作的执行结果,基于执行结果生成应用程序的测试结果,其中,主屏幕与副屏幕相互关联。
上述应用程序的自动化测试装置,在检测到测试启动指令时,获取应用程序对应的预设测试用例,根据解析测试用例确定待测试操作以及对应的目标应用对象标识,当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕中模拟待测试操作,而当目标应用对象表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作;在获取到模拟待测试操作的执行结果之后,基于执行结果生成应用程序的测试结果。上述方法在针对应用于多屏的应用程序自动化测试中,对于主屏幕和副屏幕的操作分别调用不同的自动化测试方法在主屏幕和在副屏幕中实现模拟用户操作,并获取模拟用户操作的执行结果,根据该执行结果生成应用程序的测试结果,两个屏幕中的模拟操作互不影响,从而可以实现多屏幕上的应用程序自动化测试。
关于应用程序的自动化测试装置的具体限定可以参见上文中对于应用程序的自动化测试方法的限定,在此不再赘述。上述应用程序的自动化测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储测试用例等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用程序的自动化测试方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
响应测试启动指令,获取应用程序对应的测试用例;
解析测试用例,识别测试用例对应的待测试操作以及待测试操作对应的目标应用对象标识;
当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕模拟待测试操作;
当目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作;
当模拟完测试用例中所有待测试步骤时,获取模拟执行待测试操作的执行结果,基于执行结果生成应用程序的测试结果,其中,主屏幕与副屏幕相互关联。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕模拟待测试操作包括:
当目标应用对象标识表征主屏幕时,调用selenium的预设主屏幕模拟操作程序在主屏幕中模拟待测试操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当待测试操作为在主屏幕的操作时,通过调用selenium的预设主屏幕模拟操作程序在主屏幕中模拟待测试操作包括:
当目标应用对象标识表征主屏幕时,侦听主屏幕中浏览器启动事件;
当未侦听到浏览器启动事件时,调用selenium webdriver启动主屏幕的浏览器,得到测试用例对应的浏览器页面;
调用selenium的预设主屏幕模拟操作程序在主屏幕中测试用例对应的浏览器页面中模拟待测试操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用selenium的预设主屏幕模拟操作程序在主屏幕中测试用例对应的浏览器页面中模拟待测试操作包括:
在主屏幕中测试用例对应的浏览器页面中定位目标应用对象标识对应的目标应用对象的位置;
基于目标应用对象的位置,调用selenium中待测试操作对应的预设主屏幕模拟操作程序,模拟待测试操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在主屏幕中测试用例对应的浏览器页面中定位目标应用对象标识对应的目标应用对象的位置包括:
调用selenium中的元素标识获取方法,获取主屏幕中测试用例对应的浏览器页面中应用对象标识与应用对象位置对应关系;
根据主屏幕中测试用例对应的浏览器页面中应用对象标识与应用对象位置对应关系,查找目标应用对象标识对应的目标应用对象的位置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作包括:
当目标应用对象标识表征副屏幕时,调用待测试操作对应的预设副屏幕模拟操作文件在副屏幕中模拟待测试操作;预设副屏幕模拟操作文件为通过AutoIt在副屏幕录制待测试操作对应的用户操作生成。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用待测试操作对应的预设副屏幕模拟操作文件在副屏幕中模拟待测试操作包括:
调用待测试操作对应的预设副屏幕模拟操作文件进行播放。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:应用程序的测试结果包括:测试用例对应的标识,测试用例对应的互联网协议地址,测试用例的执行时间以及待测试操作的执行结果。
在另一个实施例中,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
响应测试启动指令,获取应用程序对应的测试用例;
解析测试用例,识别测试用例对应的待测试操作以及待测试操作对应的目标应用对象标识;
当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕模拟待测试操作;
当目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作;
当模拟完测试用例中所有待测试步骤时,获取模拟执行待测试操作的执行结果,基于执行结果生成应用程序的测试结果,其中,主屏幕与副屏幕相互关联。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在主屏幕模拟待测试操作包括:
当目标应用对象标识表征主屏幕时,调用selenium的预设主屏幕模拟操作程序在主屏幕中模拟待测试操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当待测试操作为在主屏幕的操作时,通过调用selenium的预设主屏幕模拟操作程序在主屏幕中模拟待测试操作包括:
当目标应用对象标识表征主屏幕时,侦听主屏幕中浏览器启动事件;
当未侦听到浏览器启动事件时,调用selenium webdriver启动主屏幕的浏览器,得到测试用例对应的浏览器页面;
调用selenium的预设主屏幕模拟操作程序在主屏幕中测试用例对应的浏览器页面中模拟待测试操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:调用selenium的预设主屏幕模拟操作程序在主屏幕中测试用例对应的浏览器页面中模拟待测试操作包括:
在主屏幕中测试用例对应的浏览器页面中定位目标应用对象标识对应的目标应用对象的位置;
基于目标应用对象的位置,调用selenium中待测试操作对应的预设主屏幕模拟操作程序,模拟待测试操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在主屏幕中测试用例对应的浏览器页面中定位目标应用对象标识对应的目标应用对象的位置包括:
调用selenium中的元素标识获取方法,获取主屏幕中测试用例对应的浏览器页面中应用对象标识与应用对象位置对应关系;
根据主屏幕中测试用例对应的浏览器页面中应用对象标识与应用对象位置对应关系,查找目标应用对象标识对应的目标应用对象的位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在副屏幕中模拟待测试操作包括:
当目标应用对象标识表征副屏幕时,调用待测试操作对应的预设副屏幕模拟操作文件在副屏幕中模拟待测试操作;预设副屏幕模拟操作文件为通过AutoIt在副屏幕录制待测试操作对应的用户操作生成。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:调用待测试操作对应的预设副屏幕模拟操作文件在副屏幕中模拟待测试操作包括:
调用待测试操作对应的预设副屏幕模拟操作文件进行播放。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:应用程序的测试结果包括:测试用例对应的标识,测试用例对应的互联网协议地址,测试用例的执行时间以及待测试操作的执行结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种应用程序的自动化测试方法,所述方法包括:
响应测试启动指令,获取应用程序对应的测试用例;
解析所述测试用例,识别所述测试用例对应的待测试操作以及所述待测试操作对应的目标应用对象标识;
当所述目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在所述主屏幕模拟所述待测试操作;
当所述目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在所述副屏幕中模拟所述待测试操作;
当模拟完所述测试用例中所有待测试步骤时,获取模拟执行所述待测试操作的执行结果,基于所述执行结果生成所述应用程序的测试结果,其中,所述主屏幕与所述副屏幕相互关联。
2.根据权利要求1所述的方法,其特征在于,所述当所述目标应用对象标识表征主屏幕时,调用第一预设自动化测试方法在所述主屏幕模拟所述待测试操作包括:
当所述目标应用对象标识表征主屏幕时,调用selenium的预设主屏幕模拟操作程序在所述主屏幕中模拟所述待测试操作。
3.根据权利要求2所述的方法,其特征在于,所述当所述目标应用对象标识表征主屏幕时,调用selenium的预设主屏幕模拟操作程序在所述主屏幕中模拟所述待测试操作包括:
当所述目标应用对象标识表征主屏幕时,侦听所述主屏幕中浏览器启动事件;
当未侦听到所述浏览器启动事件时,调用selenium webdriver启动所述主屏幕的浏览器,得到所述测试用例对应的浏览器页面;
调用selenium的预设主屏幕模拟操作程序在所述主屏幕中所述测试用例对应的浏览器页面中模拟所述待测试操作。
4.根据权利要求3所述的方法,其特征在于,所述调用selenium的预设主屏幕模拟操作程序在所述主屏幕中所述测试用例对应的浏览器页面中模拟所述待测试操作包括:
在所述主屏幕中所述测试用例对应的浏览器页面中定位所述目标应用对象标识对应的目标应用对象的位置;
基于所述目标应用对象的位置,调用selenium中所述待测试操作对应的预设主屏幕模拟操作程序,模拟所述待测试操作。
5.根据权利要求4所述的方法,其特征在于,所述在所述主屏幕中所述测试用例对应的浏览器页面中定位所述目标应用对象标识对应的目标应用对象的位置包括:
调用selenium中的元素标识获取方法,获取所述主屏幕中所述测试用例对应的浏览器页面中应用对象标识与应用对象位置对应关系;
根据所述主屏幕中所述测试用例对应的浏览器页面中应用对象标识与应用对象位置对应关系,查找所述目标应用对象标识对应的目标应用对象的位置。
6.根据权利要求1所述的方法,其特征在于,所述当所述目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在所述副屏幕中模拟所述待测试操作包括:
当所述目标应用对象标识表征副屏幕时,调用所述待测试操作对应的预设副屏幕模拟操作文件在所述副屏幕中模拟所述待测试操作;所述预设副屏幕模拟操作文件为通过AutoIt在所述副屏幕录制所述待测试操作对应的用户操作生成。
7.根据权利要求6所述的方法,其特征在于,所述调用所述待测试操作对应的预设副屏幕模拟操作文件在所述副屏幕中模拟所述待测试操作包括:
调用所述待测试操作对应的预设副屏幕模拟操作文件进行播放。
8.根据权利要求1至7任意一项所述的方法,其特征在于,所述当所述目标应用对象标识表征副屏幕时,调用第二预设自动化测试方法在所述副屏幕中模拟所述待测试操作之后,还包括:
调用第三预设自动化测试方法在所述主屏幕中模拟所述待测试操作;
所述第三预设自动化测试方法根据所述第一预设自动化测试方法和所述第二预设自动化测试方法得到。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN202010227941.4A 2020-03-27 2020-03-27 应用程序的自动化测试方法、计算机设备和存储介质 Active CN111414309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010227941.4A CN111414309B (zh) 2020-03-27 2020-03-27 应用程序的自动化测试方法、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010227941.4A CN111414309B (zh) 2020-03-27 2020-03-27 应用程序的自动化测试方法、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111414309A true CN111414309A (zh) 2020-07-14
CN111414309B CN111414309B (zh) 2022-03-01

Family

ID=71491487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010227941.4A Active CN111414309B (zh) 2020-03-27 2020-03-27 应用程序的自动化测试方法、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111414309B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688043A (zh) * 2021-08-25 2021-11-23 北京三快在线科技有限公司 应用程序测试方法、装置、服务器、iOS设备及介质
CN114064447A (zh) * 2020-08-05 2022-02-18 腾讯科技(深圳)有限公司 界面测试方法、装置、存储介质及终端
WO2023225801A1 (zh) * 2022-05-23 2023-11-30 北京小米移动软件有限公司 应用程序的自动化测试方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557437A (zh) * 2009-05-12 2009-10-14 厦门敏讯信息技术股份有限公司 一种手机软件自动测试方法及装置
CN101729160A (zh) * 2008-10-30 2010-06-09 中兴通讯股份有限公司 一种手机软件自动化测试***的测试信息生成方法
CN103729158A (zh) * 2012-10-10 2014-04-16 三星电子株式会社 多显示设备及其控制显示的方法
CN104809057A (zh) * 2014-01-29 2015-07-29 株式会社Sji 应用测试***及应用测试方法
US20150347284A1 (en) * 2014-05-27 2015-12-03 International Business Machines Corporation Screenshot validation testing
CN105453033A (zh) * 2013-05-02 2016-03-30 亚马逊技术股份有限公司 程序测试服务
CN106095226A (zh) * 2016-06-01 2016-11-09 广州三星通信技术研究有限公司 在电子终端中运行应用程序的方法及设备
CN107193735A (zh) * 2017-05-17 2017-09-22 武汉联影医疗科技有限公司 软件测试方法及***
CN107220170A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 一种测试方法、装置及电子设备
US20190079856A1 (en) * 2014-04-08 2019-03-14 Turnkey Solutions Corp. Software test automation system and method

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729160A (zh) * 2008-10-30 2010-06-09 中兴通讯股份有限公司 一种手机软件自动化测试***的测试信息生成方法
CN101557437A (zh) * 2009-05-12 2009-10-14 厦门敏讯信息技术股份有限公司 一种手机软件自动测试方法及装置
CN103729158A (zh) * 2012-10-10 2014-04-16 三星电子株式会社 多显示设备及其控制显示的方法
CN105453033A (zh) * 2013-05-02 2016-03-30 亚马逊技术股份有限公司 程序测试服务
CN104809057A (zh) * 2014-01-29 2015-07-29 株式会社Sji 应用测试***及应用测试方法
US20190079856A1 (en) * 2014-04-08 2019-03-14 Turnkey Solutions Corp. Software test automation system and method
US20150347284A1 (en) * 2014-05-27 2015-12-03 International Business Machines Corporation Screenshot validation testing
CN107220170A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 一种测试方法、装置及电子设备
CN106095226A (zh) * 2016-06-01 2016-11-09 广州三星通信技术研究有限公司 在电子终端中运行应用程序的方法及设备
CN107193735A (zh) * 2017-05-17 2017-09-22 武汉联影医疗科技有限公司 软件测试方法及***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ARNAB ROY CHOWDHURY: "How To Test A Multiscreen Behaviour Of An Application", 《HTTPS://WWW.LAMBDATEST.COM/BLOG/HOW-TO-TEST-A-MULTISCREEN-BEHAVIOUR-OF-AN-APPLICATION/》 *
知平软件: "Android自动化测试在多种屏幕下的注意事项", 《HTTPS://WWW.CNBLOGS.COM/VOWEI/ARCHIVE/2012/10/03/2710824.HTML》 *
郝雪琪: "基于Android的播控终端***的设计与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114064447A (zh) * 2020-08-05 2022-02-18 腾讯科技(深圳)有限公司 界面测试方法、装置、存储介质及终端
CN114064447B (zh) * 2020-08-05 2024-05-31 腾讯科技(深圳)有限公司 界面测试方法、装置、存储介质及终端
CN113688043A (zh) * 2021-08-25 2021-11-23 北京三快在线科技有限公司 应用程序测试方法、装置、服务器、iOS设备及介质
WO2023225801A1 (zh) * 2022-05-23 2023-11-30 北京小米移动软件有限公司 应用程序的自动化测试方法及装置

Also Published As

Publication number Publication date
CN111414309B (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
CN106844217B (zh) 对应用的控件进行埋点的方法及装置、可读存储介质
US9342237B2 (en) Automated testing of gesture-based applications
CN111061526B (zh) 自动化测试方法、装置、计算机设备及存储介质
CN111414309B (zh) 应用程序的自动化测试方法、计算机设备和存储介质
US20190227917A1 (en) Adaptive system for mobile device testing
CN111124919A (zh) 一种用户界面的测试方法、装置、设备及存储介质
US11237948B2 (en) Rendering engine component abstraction system
CN110032519A (zh) 云函数调试方法、装置、计算机设备及存储介质
CN112732576B (zh) 基于用户界面的自动化测试方法、装置及设备
CN110610089B (zh) 用户行为模拟方法、装置及计算机设备
CN106126424A (zh) 一种脚本可视化的自动化测试方法、装置和移动终端
WO2021129335A1 (zh) 操作监控方法及装置、操作分析方法及装置
RU2611961C2 (ru) Способ и система регрессионного тестирования функциональности веб-страницы, машиночитаемый носитель информации
CN112231206A (zh) 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台
CN116166525A (zh) 一种测试脚本的生成方法及装置
CN107102937B (zh) 一种用户界面测试方法和装置
CN110232018A (zh) 接口测试方法、装置、计算机设备
CN108984380A (zh) 一种基于Linux***的服务器测试方法、装置及介质
CN116719736A (zh) 一种用于测试软件界面的测试用例生成方法及装置
US20220147437A1 (en) Automated testing of mobile devices using visual analysis
CN113986768A (zh) 应用程序稳定性测试方法、装置、设备及介质
US10545858B2 (en) Method for testing a graphical interface and corresponding test system
CN113672826A (zh) 页面跳转方法、装置、计算机设备和存储介质
CN113342629A (zh) 操作轨迹还原方法、装置、计算机设备和存储介质
CN110806981A (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
CP02 Change in the address of a patent holder

Address after: 430206 Lianying medical headquarters base, No. 99, gaokeyuan Road, Donghu high tech Development Zone, Wuhan, Hubei Province

Patentee after: WUHAN UNITED IMAGING HEALTHCARE Co.,Ltd.

Address before: No. 818, Gaoxin Avenue, Donghu high tech Development Zone, Wuhan, Hubei 430206

Patentee before: WUHAN UNITED IMAGING HEALTHCARE Co.,Ltd.

CP02 Change in the address of a patent holder