CN115842884A - 一种基于记录手机界面坐标来完成手机测试的方法 - Google Patents
一种基于记录手机界面坐标来完成手机测试的方法 Download PDFInfo
- Publication number
- CN115842884A CN115842884A CN202211685707.1A CN202211685707A CN115842884A CN 115842884 A CN115842884 A CN 115842884A CN 202211685707 A CN202211685707 A CN 202211685707A CN 115842884 A CN115842884 A CN 115842884A
- Authority
- CN
- China
- Prior art keywords
- mobile phone
- completing
- test
- interface
- test based
- 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
Images
Landscapes
- Telephone Function (AREA)
Abstract
本发明公开了一种基于记录手机界面坐标来完成手机测试的方法,包括以下步骤:S1、手机开启USB调试,PC端连接手机A,PC端启动测试工具;S2、PC端通过abd shell getevent‑t命令获取手机A点击、滑动、按键事件的时序图文件;S3、PC端通过python多线程同步读取手机A的时序图文件;S4、通过uiautomator2框架中的click、swipe_points、keyevent方法实现点击、滑动和按键功能;S5、若PC端继续同步操作手机B和手机C,则返回至S2步骤继续执行操作,若PC端不再继续同步操作手机B和手机C,则PC端测试工具终止测试程序。本发明能够显著地提升手机测试效率,可一次性同步操作测试多台手机,且同步操作时延迟时间大大降低、误差率低;执行操作门槛低,易用性强,无需执行人员具备代码调试能力。
Description
技术领域
本发明涉及手机测试技术领域,尤其涉及一种基于记录手机界面坐标来完成手机测试的方法。
背景技术
在手机研发过程中,需要对研发中的手机进行一系列功能测试,以保证产品质量。因市场需求,目前的手机产品一般存在多个配置,多个配置的产品使用的硬件厂商会存在一些差异,如同一手机产品有高低配置之分,其中高配的手机相机、指纹、传感器供应商与低配手机的不一致,从而导致不同硬件供应商的手机需要分别进行一遍硬件差异相关的功能测试,重复性工作较多,影响测试效率。
对于通过记录测试手机界面坐标的相关操作(如点击、滑动,长按),并将操作同步回放至其他多台手机测试设备,存在如下现有技术缺点:1、将操作同步时存在五到八秒的延迟;2、录制时滑动操作需要尽量保持为水平或者垂直滑动且滑动时间尽量超过两秒,否则同步操作时容易出现误差。
为此,我们设计出了一种基于记录手机界面坐标来完成手机测试的方法来解决上述问题。
发明内容
本发明的目的是为了解决现有技术中存在的手机测试同步操作时存在延时且操作时间需保持较长时间的缺点,而提出的一种基于记录手机界面坐标来完成手机测试的方法,其目的是:优化手机测试方法提升测试效率。
为了实现上述目的,本发明采用了如下技术方案:
一种基于记录手机界面坐标来完成手机测试的方法,所述手机测试的方法包括以下步骤:
S1、手机开启USB调试,PC端连接手机A,PC端启动测试工具;
S2、PC端通过abd shell getevent-t 命令获取手机A点击、滑动、按键事件的时序图文件;
S3、PC端通过python多线程同步读取手机A的时序图文件;
S4、通过uiautomator2框架中的click、swipe_points、keyevent方法实现点击、滑动和按键功能;
S5、若PC端继续同步操作手机B和手机C,则返回至S2步骤继续执行操作,若PC端不再继续同步操作手机B和手机C,则PC端测试工具终止测试程序。
进一步的,所述手机开启USB调试的方式如下:首先找到手机***设置,在设置界面找到并进入***管理,在关于手机界面中,连续点击手机版本号进入开发者模式,在***和更新设置界面中,点击开发人员选项,在开发人员选项界面中,将USB调试设置为开启状态。
进一步的,所述时序图文件为txt文本格式的文件。
进一步的,在S1中,所述PC端连接手机端A,通过adb devices命令,获取需要录制操作手机A的设备ID号,并在PC端测试工具的程序内输入设备ID号,并启动PC端测试工具的程序。
进一步的,在S5中,若所述PC端继续同步操作手机B和手机C,则在手机A上执行用例操作,PC端通过adb-s设备ID号,输入 shell getevent-t命令持续获取手机A上的步骤时序图文件。
进一步的,所述输入 shell getevent-t命令持续获取手机A上的步骤时序图文件时,对手机A的操作都会记录并输出到PC端程序目录中。
进一步的,所述对手机A的操作都会记录并输出到PC端程序目录中,对手机A的操作包括执行点击、滑动、长按音量上键的步骤,每个步骤均是由对应的时间ID开始至指令码均为0处结束。
进一步的,所述指令码的含义代表触屏时间开始的标志、X轴事件、Y轴事件和时间结束标志。
进一步的,所述PC端通过python多线程同步读取手机A的时序图文件,解析处对应的施加类型和坐标,使用uiautomator2框架中的click、swipe_points、keyevent方法,实现点击、滑动和长按音量上键事件,并将事件通过USB同步至手机B和手机C中。
与现有技术相比,本发明的有益效果是:本发明提出的基于记录手机界面坐标来完成手机测试的方法能够显著地提升手机测试效率,可以一次性同步操作测试多台手机,且同步操作时延迟时间大大降低,在测试操作时无需将测试设备保持水平或者垂直的姿态及操作时间要求,同步操作误差率低;本方法执行操作门槛低,易用性强,无需执行人员具备代码调试能力,有利于应用普及。
附图说明
图1为本发明提出的一种基于记录手机界面坐标来完成手机测试的方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例:
一种基于记录手机界面坐标来完成手机测试的方法,所述手机测试的方法包括以下步骤:
S1、手机开启USB调试,PC端连接手机A,PC端启动测试工具;
手机开启USB调试的方式如下:首先找到手机***设置,在设置界面找到并进入***管理,在关于手机界面中,连续点击手机版本号进入开发者模式,在***和更新设置界面中,点击开发人员选项,在开发人员选项界面中,将USB调试设置为开启状态。
USB调试模式是 Android 提供的一个用于开发工作的功能,使用该功能可在计算机和 Android 设备之间复制数据、在移动设备上安装应用程序、读取日志数据等等;默认情况下,USB 调试模式是关闭的,所以需要手动打开它;USB调试用途广泛,各种手机助手软件行使正常功能必须开启USB调试模式才能正常使用。只有开启了USB调试模式,与电脑连接时才能进行下载软件,一键root,备份联系人等功能,USB调试是Android***对外部程序开放权限的一种模式,外部程序如要参与***控制的话,必须要把USB调试模式打开。
PC端连接手机端A后,通过adb devices命令,获取需要录制操作手机A的设备ID号,录制时滑动操作无需要求手机A保持为水平或者垂直滑动姿态,且滑动时间极短,后续同步操作时出现误差概率低,在PC端测试工具的程序内输入设备ID号,并启动PC端测试工具的程序。
S2、PC端通过abd shell getevent-t 命令获取手机A点击、滑动、按键事件的时序图文件,时序图文件为txt文本格式的文件,输入 shell getevent-t命令持续获取手机A上的步骤时序图文件时,对手机A的操作都会记录并输出到PC端程序目录中。
S3、PC端通过python多线程同步读取手机A的时序图文件:PC端通过python多线程同步读取手机A的时序图文件,解析处对应的施加类型和坐标,使用uiautomator2框架中的click、swipe_points、keyevent方法,实现点击、滑动和长按音量上键事件,并将事件通过USB同步至手机B和手机C中。
uiautomator2是一个自动化测试开源工具,支持Android平台的原生应用测试,是Google提供的一个自动化测试的Java库,发展了python-uiautomator2,封装了谷歌自带的uiautomator测试框架,提供便利的python接口,用它可以很便捷的编写python脚本来实现app的自动化测试。
S4、通过uiautomator2框架中的click、swipe_points、keyevent方法实现点击、滑动和按键功能。
S5、若PC端继续同步操作手机B和手机C,则直接返回至S2步骤继续执行操作,在手机A上执行用例操作,PC端通过adb-s设备ID号,输入 shell getevent-t命令持续获取手机A上的步骤时序图文件,上述操作延迟时间远低于五到八秒的延迟时常,几乎无延迟;若PC端不再继续同步操作手机B和手机C,则PC端测试工具终止测试程序。
上述步骤中,对手机A的操作都会记录并输出到PC端程序目录中,对手机A的操作包括执行点击、滑动、长按音量上键的步骤,每个步骤均是由对应的时间ID开始至指令码均为0处结束。
本实施例以点击步骤为例:
[ 92950.167952] /dev/input/event3: 0003 0039 0000011f
[ 92950.167952] /dev/input/event3: 0003 0035 000001b9
[ 92950.167952] /dev/input/event3: 0003 0036 000002bb
......
[ 92950.195555] /dev/input/event3: 0000 0000 00000000
其中0039、0035、0036、0000均为指令码,0039指令码代表触屏时间开始的标志、0035指令码代表X轴事件、0036指令码代表Y轴事件,0000指令码代表时间结束标志,000001b9和000002bb分别为X、Y轴的坐标值,这里是十六进制,需要转化成十进制,十六进制转换成十进制的具体算法是:
1、首先明白16进制数(从右到左数是第0位,第1位,第2位……)的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方,依次这样排列下去。
2、然后需要理解ABCDEF表示的二进制数字分别是10,11,12,13,14,15;
3、十六进制转换成十进制的公式是:要从右到左用二进制的每个数去乘以16的相应次方,然后这些数字相加。
上面的000001b9转换成10进制为计算方式为
第0位:9*16^0=9
第1位:b*16^1=11*16^1=176
第2位:1*16^2=256
结果就是:9+176+256=441
同理可计算出000002bb转化成十进制的结果是699;
因此最终的转化成十进制的X轴和Y轴坐标值是(441、699)。
本实施例以以滑动步骤为例:
[ 92952.686566] /dev/input/event3: 0003 0039 00000120
[ 92952.686566] /dev/input/event3: 0003 0035 000001e6
[ 92952.686566] /dev/input/event3: 0003 0036 000002b8
......
[ 92952.847786] /dev/input/event3: 0003 0035 000001e9
[ 92952.847786] /dev/input/event3: 0003 0036 000003b7
......
[ 92952.875321] /dev/input/event3: 0000 0000 00000000
计算方式同上述点击步骤一样,将十六进制换算成十进制后,所表示表示的含义为,在手机屏幕坐标上,从(486,696)坐标滑动至(489,951)坐标。
同理,对于长按音量上键事件,指令码为0073含义是音量上键事件,值为00000001表示按下,00000000为松开。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
将操作同步时存在五到八秒的延迟;2、录制时滑动操作需要尽量保持为水平或者垂直滑动且滑动时间尽量超过两秒,否则同步操作时容易出现误差。
Claims (9)
1.一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,所述手机测试的方法包括以下步骤:
S1、手机开启USB调试,PC端连接手机A,PC端启动测试工具;
S2、PC端通过abd shell getevent-t 命令获取手机A点击、滑动、按键事件的时序图文件;
S3、PC端通过python多线程同步读取手机A的时序图文件;
S4、通过uiautomator2框架中的click、swipe_points、keyevent方法实现点击、滑动和按键功能;
S5、若PC端继续同步操作手机B和手机C,则返回至S2步骤继续执行操作,若PC端不再继续同步操作手机B和手机C,则PC端测试工具终止测试程序。
2.根据权利要求1所述的一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,所述手机开启USB调试的方式如下:首先找到手机***设置,在设置界面找到并进入***管理,在关于手机界面中,连续点击手机版本号进入开发者模式,在***和更新设置界面中,点击开发人员选项,在开发人员选项界面中,将USB调试设置为开启状态。
3.根据权利要求1所述的一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,所述时序图文件为txt文本格式的文件。
4.根据权利要求1所述的一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,在S1中,所述PC端连接手机端A,通过adb devices命令,获取需要录制操作手机A的设备ID号,并在PC端测试工具的程序内输入设备ID号,并启动PC端测试工具的程序。
5.根据权利要求1所述的一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,在S5中,若所述PC端继续同步操作手机B和手机C,则在手机A上执行用例操作,PC端通过adb-s设备ID号,输入 shell getevent-t命令持续获取手机A上的步骤时序图文件。
6.根据权利要求5所述的一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,所述输入 shell getevent-t命令持续获取手机A上的步骤时序图文件时,对手机A的操作都会记录并输出到PC端程序目录中。
7.根据权利要求6所述的一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,所述对手机A的操作都会记录并输出到PC端程序目录中,对手机A的操作包括执行点击、滑动、长按音量上键的步骤,每个步骤均是由对应的时间ID开始至指令码均为0处结束。
8.根据权利要求7所述的一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,所述指令码的含义代表触屏时间开始的标志、X轴事件、Y轴事件和时间结束标志。
9.根据权利要求1所述的一种基于记录手机界面坐标来完成手机测试的方法,其特征在于,所述PC端通过python多线程同步读取手机A的时序图文件,解析处对应的施加类型和坐标,使用uiautomator2框架中的click、swipe_points、keyevent方法,实现点击、滑动和长按音量上键事件,并将事件通过USB同步至手机B和手机C中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211685707.1A CN115842884A (zh) | 2022-12-27 | 2022-12-27 | 一种基于记录手机界面坐标来完成手机测试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211685707.1A CN115842884A (zh) | 2022-12-27 | 2022-12-27 | 一种基于记录手机界面坐标来完成手机测试的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115842884A true CN115842884A (zh) | 2023-03-24 |
Family
ID=85579317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211685707.1A Pending CN115842884A (zh) | 2022-12-27 | 2022-12-27 | 一种基于记录手机界面坐标来完成手机测试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115842884A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407980A (zh) * | 2014-12-17 | 2015-03-11 | 用友软件股份有限公司 | 移动应用自动化测试装置和方法 |
CN104461894A (zh) * | 2014-12-17 | 2015-03-25 | 用友软件股份有限公司 | 安卓软件的操作录制装置和方法 |
-
2022
- 2022-12-27 CN CN202211685707.1A patent/CN115842884A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407980A (zh) * | 2014-12-17 | 2015-03-11 | 用友软件股份有限公司 | 移动应用自动化测试装置和方法 |
CN104461894A (zh) * | 2014-12-17 | 2015-03-25 | 用友软件股份有限公司 | 安卓软件的操作录制装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648835B (zh) | 检测Android应用程序在安卓模拟器中运行的方法及*** | |
CN101175284B (zh) | 一种便携式电子设备的功能测试方法 | |
CN100375059C (zh) | 一种个人数字助理手机功能的自动测试***及其方法 | |
CN102521118A (zh) | 一种Android程序的自动测试方法 | |
CN101272422A (zh) | 一种手机自动化测试方法 | |
CN103019721B (zh) | 自动化操作的实现方法及移动终端 | |
TWI427965B (zh) | 遠端管理系統、多電腦切換器及遠端管理方法 | |
US20120154433A1 (en) | Platform agnostic screen capture tool | |
JP2008293486A (ja) | ソースコード解析機器、解析プログラムおよび解析方法 | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
CN111723002A (zh) | 一种代码调试方法、装置、电子设备及存储介质 | |
CN111651232A (zh) | 一机多控方法、装置、***及电子设备 | |
CN116541032A (zh) | 数据烧录方法、装置、设备及计算机存储介质 | |
CN215599311U (zh) | 芯片测试装置 | |
CN115842884A (zh) | 一种基于记录手机界面坐标来完成手机测试的方法 | |
CN110888656B (zh) | 一种多功能烧写器及烧写方法 | |
CN110703948B (zh) | 触摸屏操作录播***及方法 | |
CN111026651B (zh) | 测试方法、装置、存储介质及电子设备 | |
CN110659036A (zh) | 一种Windows***中自动烧录谷歌key的方法及*** | |
CN110750310A (zh) | 基于ios***组件化开发的二进制和源码切换方法 | |
JP5204343B1 (ja) | テストシステム及びプログラム | |
CN111258875A (zh) | 界面测试方法及***、电子设备、存储介质 | |
CN111596203B (zh) | 一种芯片测试装置、平台及方法 | |
CN114978360A (zh) | 通信设备的自动化测试方法和装置、电子设备和存储介质 | |
KR102005718B1 (ko) | 상황정보 병기형 실사용 기반 모바일단말 스크립트 생성 방법 |
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 |