本发明涉及自动化测试,具体涉及一种物理点击器及基于其的自动化测试方法、系统和装置。
背景技术:
1、随着移动设备和计算机的普及,软件应用的数量也不断增加。为了确保软件的质量和稳定性,开发人员需要进行软件自动化测试。在软件自动化测试过程中,模拟用户的操作是至关重要的,这包括在手机、平板和电脑屏幕等设备上进行各种点击操作;因此,需要对屏幕点击操作进行模拟,才能真正实现可靠的自动化测试。
2、目前市场上存在一些模拟屏幕点击的解决方案,主要包括软件模拟和机械式机械臂。软件模拟的方案分为两种,一种应用在桌面环境下,另一种应用在移动设备上。
3、对于第一种应用在桌面环境下的软件模拟方案,操作系统和应用程序提供了一些接口和工具,使得开发人员能够模拟鼠标点击和键盘输入来实现自动化测试。以下是一些常用的工具和技术:
4、(1)gui(图形用户界面)自动化工具:例如selenium和sikulix,它们提供了跨平台的gui自动化框架,允许开发人员通过编写脚本来模拟鼠标点击和键盘输入。这些工具使用了底层操作系统的api,可以与应用程序进行交互,并模拟用户的操作。
5、(2)操作系统提供的接口:不同操作系统如windows、macos和linux都提供了相应的api接口,允许开发人员编写代码来模拟点击和输入操作。例如,在windows平台上,可以使用winapi或ui automation来模拟鼠标点击和键盘输入。
6、对于应用在移动设备上的软件模拟方案,常用的自动化测试框架如appium、uiautomator和xcuitest等,提供了api接口来模拟用户的触摸事件。以下是一些主要技术和工具:
7、(1)appium自动化测试框架:appium是一个开源的移动应用程序自动化测试框架,它支持多种移动平台(android和ios)和多种编程语言。通过appium,开发人员可以编写测试脚本,模拟手指在屏幕上的点击、滑动和缩放等操作。
8、(2)ui automator和xcuitest自动化测试框架:ui automator是android平台的自动化测试框架,xcuitest是ios平台的自动化测试框架。它们提供了api接口和工具,可以模拟用户的触摸事件,并与应用程序进行交互。
9、上述两种软件模拟的技术方案均存在以下缺点:
10、(1)受局限性强:软件模拟方案无法完全模拟真实用户的点击操作,无法准确复现一些特殊情况下的点击效果,如多点触摸、不同力度的点击等。此外,屏幕的物理响应、触摸压力等因素也无法通过软件模拟来准确模拟。
11、(2)稳定性差:通过软件模拟点击,在执行稳定性与执行效率上受限于技术底层方案的影响,无法满足自动化测试对于稳定性执行的要求。
12、而对于机械臂模拟的方案,机械臂是一种能够模拟人手运动的设备,通过控制机械臂的运动,可以实现对手机、电脑和平板屏幕的点击操作。以下是机械臂模拟方案中的几个功能模块:
13、(1)电机控制:机械臂通常由多个电机组成,每个电机控制一个关节,使得机械臂能够在三维空间中移动。通过控制电机的转动角度和速度,可以控制机械臂的运动轨迹和姿态。
14、(2)传感器反馈:为了实现精确的点击操作,机械臂通常配备了各种传感器,如力传感器、视觉传感器等。这些传感器可以提供实时的位置和力度信息,使得机械臂能够准确地模拟人手的点击动作。
15、上述机械臂模拟的方案存在以下缺点:
16、(1)成本高、复杂性强:机械臂作为一种物理设备,其制造、购买和维护成本较高。对于一些小型或预算有限的项目,引入机械臂作为测试工具可能不划算。此外,机械臂的使用需要专业的知识和技能,包括机械工程、电子工程和控制系统等领域,这增加了测试团队的技术要求和培训成本。
17、(2)受限于物理操作速度和精度:机械臂的物理操作速度和精度可能会受到限制。尽管现代机械臂具有较高的运动速度和精度,但在某些情况下,仍然无法完全匹配真实用户的点击操作。特别是在需要模拟快速连续点击或复杂手势的场景下,机械臂可能无法达到所需的操作速度和精度。
18、(3)安全风险率高:机械臂在进行屏幕点击时需要准确定位和控制力度,这可能导致一些安全隐患。如果机械臂的控制出现问题,可能会导致错误的点击操作或对设备造成损害。
19、因此,亟需提供一种新的模拟点击的自动化测试方案,能模拟真实的物理响应,并能实现高速度、高精度的操作,简化操作,降低成本,提升可靠性,降低安全风险率。
技术实现思路
1、有鉴于此,本发明提供了一种物理点击器及基于其的自动化测试方法、系统和装置,以解决现有模拟点击的自动化测试方案速度低、精度低、操作复杂、成本高、可靠性差及安全风险率高的问题。
2、本发明提供了一种物理点击器,用于屏幕点击的自动化测试过程中,包括:
3、点击头,与待点击屏幕物理接触;
4、控制单元,用于获取所述点击头的操作指令,所述操作指令用于控制所述点击头按照对应的操作参数进行操作;
5、驱动单元,与所述控制单元电连接,用于接收所述操作指令,根据所述操作指令生成所述点击头的驱动信号;
6、所述点击头,还与所述驱动单元电连接,用于接收所述驱动信号,根据所述驱动信号在物理接触的所述待点击屏幕上进行操作,以模拟人手点击所述待点击屏幕。
7、可选地,还包括:
8、传感器组件,与所述控制单元电连接,用于检测所述点击头在所述待点击屏幕上进行操作时的实际操作参数,并将所述实际操作参数反馈至所述控制单元。
9、可选地,所述操作参数和所述实际操作参数均包括点击位置、点击动作和点击力度。
10、此外,本发明还提供一种基于物理点击器的自动化测试方法,采用多个前述的物理点击器对待点击屏幕的点击过程进行自动化测试,所述方法包括:
11、为所述待点击屏幕提供含有多个所述物理点击器的点击器阵列,并基于所述待点击屏幕,对所述点击器阵列分别进行位置规划和坐标映射,得到初始点击器阵列;其中,所述初始点击器阵列中的每个所述物理点击器均与所述待点击屏幕物理接触;
12、提供预设测试脚本,根据所述预设测试脚本,确定所述初始点击器阵列在每个时刻下的初始点击器以及对应的初始操作指令;其中,所述初始操作指令用于控制所述初始点击器按照对应的初始操作参数进行操作;
13、按照每个所述初始点击器对应的时刻,根据每个所述初始点击器对应的所述初始操作指令,分别控制每个所述初始点击器在所述待点击屏幕进行操作,完成所述待点击屏幕在所述预设测试脚本下的自动化测试。
14、可选地,所述基于所述待点击屏幕,对所述点击器阵列分别进行位置规划和坐标映射,包括:
15、获取所述待点击屏幕的尺寸信息和布局信息;
16、根据所述尺寸信息和所述布局信息,对所述点击器阵列中的每个所述物理点击器进行位置规划;
17、基于所述待点击屏幕,建立坐标系,对位置规划后的每个所述物理点击器进行坐标映射,获取每个所述物理点击器在所述坐标系下的中心坐标。
18、可选地,所述根据所述预设测试脚本,确定所述初始点击器阵列在每个时刻下的初始点击器以及对应的初始操作指令,包括:
19、利用自动化引擎,获取所述预设测试脚本以及所述预设测试脚本在每个时刻下的测试屏幕截图;
20、对每个时刻下的所述测试屏幕截图进行分析,得到每个时刻下的屏幕点击坐标信息;
21、对所述预设测试脚本进行分析,得到每个时刻下的所述屏幕点击坐标信息所对应的屏幕点击操作;
22、根据每个时刻下的所述屏幕点击坐标信息以及所有所述物理点击器在所述坐标系下的中心坐标,确定出每个时刻下的所述初始点击器;
23、根据每个时刻下的所述屏幕点击坐标信息所对应的屏幕点击操作,确定出每个时刻下的所述初始点击器对应的所述初始操作参数;并根据每个时刻下的所述初始点击器对应的所述初始操作参数,生成每个时刻下的所述初始点击器对应的所述初始操作指令。
24、可选地,所述物理点击器还包括与控制单元电连接的传感器组件;则所述按照每个所述初始点击器对应的时刻,根据每个所述初始点击器对应的所述初始操作指令,分别控制每个所述初始点击器在所述待点击屏幕进行操作之后,所述方法还包括:
25、利用所述传感器组件,实时检测每个时刻下的所述初始点击器在所述待点击屏幕上进行操作时的实际操作参数;
26、根据每个时刻下的所述初始点击器在所述待点击屏幕上进行操作时的所述实际操作参数和对应的所述初始操作参数,对所述初始点击器阵列的位置规划进行修正,得到目标点击器阵列。
27、可选地,所述完成所述待点击屏幕在所述预设测试脚本下的自动化测试之后,所述方法还包括:
28、提供自动化测试用例,根据所述自动化测试用例,确定所述目标点击器阵列在每个时刻下的目标点击器以及对应的目标操作指令;其中,所述目标操作指令用于控制所述目标点击器按照对应的目标操作参数进行操作;
29、按照每个所述目标点击器对应的时刻,根据每个目标点击器对应的所述目标操作指令,分别控制每个所述目标点击器在所述待点击屏幕进行操作,完成所述待点击屏幕在所述自动化测试用例下的自动化测试。
30、此外,本发明还提供了一种基于物理点击器的自动化测试系统,包括:
31、多个前述的物理点击器;
32、规划与映射模块,用于为待点击屏幕提供含有多个物理点击器的点击器阵列,并基于所述待点击屏幕,对所述点击器阵列分别进行位置规划和坐标映射,得到目标点击器阵列;其中,所述目标点击器阵列中的每个所述物理点击器均与所述待点击屏幕物理接触;
33、目标点击器确定模块,与所述规划与映射模块通信连接,用于提供预设测试脚本,根据所述预设测试脚本,确定所述目标点击器阵列在每个时刻下的目标点击器以及所述目标点击器对应的目标操作参数;以及
34、点击器控制模块,与所述目标点击器确定模块通信连接,还与每个所述物理点击器均电连接,用于按照每个所述目标点击器对应的时刻,分别控制每个所述目标点击器按照对应的所述目标操作参数,在所述待点击屏幕进行操作,完成所述待点击屏幕在所述预设测试脚本下的自动化测试。
35、此外,本发明还提供了一种自动化测试装置,包括处理器、存储器和存储在所述存储器中且可运行在所述处理器上的计算机程序,所述计算机程序运行时实现前述基于物理点击器的自动化测试方法中的方法步骤。
36、本发明的有益效果:点击头与待点击屏幕物理接触,通过控制单元获取相应的操作指令,驱动单元根据操作指令生成驱动信号,可驱动物理点击器按照操作指令所对应的操作参数在物理接触的待点击屏幕上进行操作,进而可以实现以物理响应来模拟人手进行屏幕点击的行为;基于该多个物理点击器,来在待点击屏幕上布局初始点击器阵列;由于该初始点击器阵列是通过位置规划和坐标映射而得,因此可基于初始点击器阵列来模拟出与预设测试脚本中屏幕点击相对应的行为,通过确定出在每个时刻下的初始点击器以及对应的初始操作指令,并按照这些初始点击器及对应的初始操作指令,在待点击屏幕上进行操作,即实现预设测试脚本中屏幕点击的真实模拟,实现了预设测试脚本的自动化测试;
37、本发明的物理点击器及基于其的自动化测试方法、系统和装置,能够通过多个物理点击器的布局,实现屏幕的全范围覆盖;基于物理点击器的布局和控制机制,来实现高速度、高精度的屏幕点击操作,大大简化了操作的复杂度,并真正模拟出真实用户操作,可靠性高,安全风险率低;基于物理点击器的小成本,有效节省了整个屏幕点击的自动化测试过程中的测试成本。