技术领域
[0001] 本
发明属于移动终端测试技术领域,涉及一种测试方法及系统,特别是涉及一种移动终端的性能测试方法及系统。
背景技术
[0002] 目前市场上有多种Android自动化测试方向。
[0003] 第一种,CTS,CTS测试基于Android instrumentation测试,其又基于JUnit测试。说白了,CTS就是一堆单元测试
用例。这也是Java语言的擅长部分。
[0004] 第二种,Monkey工具,Monkey是Android中的一个命令行工具,可以运行在
模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、
触摸屏输入、手势输入等),实现对正在开发的应用程序进行压
力测试。Monkey测试是一种为了测试
软件的
稳定性、健壮性的快速有效的方法。
[0005] 第三种,ASE,ASE意思为Android脚本环境,即我们可以通过脚本(比如Python)调用Android的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。我们可以扩充它的API(Java部分),并用python脚本调用这些API,从而实现丰富的测试功能。用于API部分可以
访问到Android全部API,python又能灵活部署测试,所以ASE的扩展性非常好。
[0006] 第四种,Robotium,该工具用于黑盒的自动化测试。可以在有源码或者只有APK的情况下对目标应用进行测试。Robotimu提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text等等。
[0007] 而这些测试方法无法实现多个Android设备的识别和连接,所以只能进行单路测试,若连接多个同名Android设备就无法进行区分,更无法进行性能测试。
[0008] 因此,如何提供一种移动终端的性能测试方法及系统,以解决
现有技术中无法进行多个Android设备的识别和连接,无法进行多路Android设备性能测试等种种
缺陷,实已成为本领域从业者亟待解决的技术问题。
发明内容
[0009] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种移动终端的性能测试方法及系统,用于解决现有技术中无法进行多个Android设备的识别和连接,无法进行多路Android设备性能测试的问题。
[0010] 为实现上述目的及其他相关目的,本发明一方面提供一种移动终端性能的测试方法,应用于由多个移动终端与
服务器组成的通信网络,所述智能终端的测试方法包括以下步骤:调用预存桥接协议以便在多个移动终端和服务器之间建立通信连接;其中,所述多个移动终端包括同名的移动终端和不同名的移动终端;读取与所述服务器建立通信连接的移动终端的设备名称,并根据预定义命名方式更新所述多个移动终端的设备名称;将所述多个移动终端更新过的设备名称重新复位;对复位后的多个移动终端以多线程操作方式运行预先录制的性能测试脚本。
[0011] 可选地,所述预存桥接协议为ADB桥接协议。
[0012] 可选地,所述预定义命名方式是指根据预制名称和与多个移动终端连接的性能测试
接口的接口顺序号为与服务器连接的多个移动终端的设备名称重新命名。
[0013] 可选地,将所述多个移动终端更新过的设备名称重新复位的步骤是通过调用复位指令来完成,所述复位指令为abd remount。
[0014] 可选地,所述预先录制的性能测试脚本包括:通过移动终端
操作系统包名和交互组件名打开设置;点击与测试的性能相关的字符;查找ID设置为switch Widget的测试性能的
开关组件;检查测试性能的开关组件是否已打开,若是,则表示测试通过,继续下一步骤,若否,则表示测试未通过,返回打开设置步骤;查找ID设置为switch Widget的测试的性能的开关组件;检查测试性能的开关组件是否已关闭,若是,则表示测试通过,结束;若否,表示测试未通过,返回打开设置步骤。
[0015] 本发明另一方面还提供一种移动终端的性能测试系统,应用于由多个移动终端与服务器组成的通信网络,所述移动终端的性能测试系统包括:调用模
块,用于调用预存桥接协议以便在多个移动终端和服务器之间建立通信连接;其中,所述多个移动终端包括同名的移动终端和不同名的移动终端;更新模块,与所述调用模块连接,用于读取与所述服务器建立通信连接的移动终端的设备名称,并根据预定义命名方式更新所述多个移动终端的设备名称;复位模块,与所述调用模块和更新模块连接,用于将所述多个移动终端更新过的设备名称重新复位;测试模块,与所述复位模块连接,用于对复位后的多个移动终端以多线程操作方式运行预先录制的性能测试脚本。
[0016] 可选地,为ADB桥接协议的所述预存桥接协议预存在所述调用模块,所述调用模块还用于支持所述ADB桥接协议。
[0017] 可选地,所述更新模块中还包括一用以计数连接在所述服务器上移动终端个数的计数器。
[0018] 可选地,所述复位模块中预存有复位指令,所述复位模块还用于通过调用复位指令来完成重新复位,所述复位指令为abd remount。
[0019] 本发明又一方面还提供一种移动终端,所述移动终端包括:所述的移动终端的性能测试系统。
[0020] 如上所述,本发明的移动终端的性能测试方法及系统,有以下有益效果:
[0021] 本发明的移动终端的性能测试方法及系统可以同时进行多路移动终端设备的性能测试,在一套运行脚本中控制多个移动终端设备的写法,能测试多个移动设备性能测试。
附图说明
[0022] 图1显示为本发明的移动终端的性能测试方法流程示意图。
[0023] 图2显示为本发明的移动终端的性能测试原理的原理结构示意图。
[0024] 图3显示为本发明的移动终端的原理结构示意图。
[0025] 元件标号说明
[0026] 1 移动终端的性能测试系统
[0027] 11 调用模块
[0028] 12 更新模块
[0029] 13 复位模块
[0030] 14 测试模块
[0031] 2 移动终端
[0032] 21 移动终端的性能测试系统
[0033] S1~S4 步骤
具体实施方式
[0034] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本
说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下
实施例及实施例中的特征可以相互组合。
[0035] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0036] 实施例一
[0037] 本实施例提供一种移动终端的性能测试方法。所述移动终端包括智能手机,
平板电脑,
笔记本电脑等。在本实施例中,所述移动终端为手机。手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送
请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。而又的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的
键盘信息或者LCD的操作信息(LCD需要用到智能识别机制)。自动化测试
框架的搭建方法是通用的,需要有一套自己的测试框架才能保证自动化测试的顺利开展。
[0038] 请参阅图1,显示为移动终端的性能测试方法流程示意图。如图1所示,所述移动终端的性能测试方法包括以下几个步骤:
[0039] S1,调用预存桥接协议以便在多个移动终端和服务器之间建立通信连接。在本实施例中,所述预存桥接协议为ADB桥接协议,利用所述ADB桥接协议能够同时使所述多个移动终端和服务器进行连接。其中,所述多个移动终端包括同名的移动终端和不同名的移动终端(同名是指设备型号相同,不同名是指设备型号不相同)。
[0040] S2,读取与所述服务器建立通信连接的移动终端的设备名称,并根据预定义命名方式更新所述多个移动终端的设备名称。所述预定义命名方式是指根据预制名称和与多个移动终端连接的性能测试接口的接口顺序号为与服务器连接的多个移动终端的设备名称重新命名。在本步骤中,当连接到第一个移动终端时,对所述移动终端对设备名进行定义,然后根据设备名称与服务器上的接口顺序号进行重命名,例如,斐讯E651手机,对其重命名的接口命令adb shell setprop persist.usb.serialno"device[1]",其中,device[1]是重命名。接着第二个android设备连接服务费,计数器加一,第二个设备命名为"device[2]",后续依次如此执行。因此,本步骤中,还包括对连接在所述服务器上的移动终端进行计数。
[0041] S3,将所述多个移动终端更新过的设备名称重新复位。在本步骤中,当连接在所述服务器上的多个移动终端更新完设备名称后,需要将所述移动终端内置更新过的设备名称重新复位以便使更新过的设备名称彻底挂挂载在移动终端上,将所述多个移动终端更新过的设备名称重新复位的步骤是通过调用复位指令来完成,所述复位指令为abd remount。通过这一步骤能够显示出连接的android设备,即移动终端的名称已重新定义,以便不存在同名设备无法识别的问题。
[0042] S4,对复位后的多个移动终端以多线程操作方式运行预先录制的性能测试脚本。在本实施例中,例如,对服务器上连接有两个移动终端以多线程操作方式同时执行所述预先录制的性能测试脚本,所述预先录制的性能测试脚本具体包括以下内容:
[0043] 通过移动终端操作系统包名和交互组件名打开设置;
[0044] 点击与测试的性能相关的字符;
[0045] 查找ID设置为switch Widget的测试性能的开关组件;
[0046] 检查测试性能的开关组件是否已打开,若是,则表示测试通过,继续下一步骤,若否,则表示测试未通过,返回打开设置步骤;
[0047] 查找ID设置为switch Widget的测试的性能的开关组件;
[0048] 检查测试性能的开关组件是否已关闭,若是,则表示测试通过,结束;若否,表示测试未通过,返回打开设置步骤。
[0049] 如表1所示,在本实施例中采用两个移动终端,分别对两个移动终端进行WIFI开关进行测试,和蓝牙开关进行测试。
[0050] 表1:预先录制的性能测试脚本
[0051] Device[1]APP:com.android.settings/.Settings//通过android包名和activity名打开设置模块
[0052] Device[2]APP:com.android.settings/.Settings//通过android包名和activity名打开设置模块
[0053] Device[1]CText:WLAN//点击WLAN的字符,注:CText:是Click Text的缩写,点击字符
[0054] Device2]CText:WLAN//点击蓝牙的字符,注:CText:是Click Text的缩写,点击字符
[0055] Device[1]ID:android:id/switchWidget//查找id为switchWidget的WIFI开关组件
[0056] Device[2]ID:android:id/switchWidget//查找id为switchWidget的蓝牙开关组件
[0057] Device[1]Class:android.widget.Switch[1]Chick//点击打开WIFI开关组件,[1]代表该组件的序列是1
[0058] Device[2]Class:android.widget.Switch[1]Chick//点击打开蓝牙开关组件,[2]代表该组件的序列是2
[0059] Device[1]Class:android.widget.Switch[1]Checked,true//检查WIFI状态是否已打开,打开为true
[0060] Device[2]Class:android.widget.Switch[1]Checked,true//检查蓝牙状态是否已打开,打开为true
[0061] Device[1]ID:android:id/switchWidget//查找id为switchWidget的WIFI开关组件
[0062] Device[2]ID:android:id/switchWidget//查找id为switchWidget的蓝牙开关组件
[0063] Device[1]Class:android.widget.Switch[1]Chick//点击关闭WIFI开关组件,[1]代表该组件的序列是1
[0064] Device[2]Class:android.widget.Switch[1]Chick//点击关闭蓝牙开关组件,[2]代表该组件的序列是2
[0065] Device[1]Class:android.widget.Switch[1]Checked,false//检查WIFI状态是否已关闭,关闭为false
[0066] Device[2]Class:android.widget.Switch[1]Checked,false//检查蓝牙状态是否已关闭,关闭为false
[0067] Device[1]Back//返回按键
[0068] Device[2]Back//返回按键
[0069] Device[1]Back//返回按键
[0070] Device[2]Back//返回按键
[0071] Device[1]Home//反回待机界面
[0072] Device[2]Home//反回待机界面
[0073] 本实施例所述的移动终端的性能测试方法可以同时进行多路移动终端设备的性能测试,在一套运行脚本中控制多个移动终端设备的写法,能测试多个移动设备性能测试。
[0074] 实施例二
[0075] 本实施例提供一种移动终端的性能测试系统1。所述移动终端包括智能手机,平板电脑,笔记本电脑等。在本实施例中,所述移动终端为手机。手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。而又的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制)。自动化测试框架的搭建方法是通用的,需要有一套自己的测试框架才能保证自动化测试的顺利开展。
[0076] 请参阅图2,显示为移动终端性能的测试系统的原理结构示意图。如图2所示,所述移动终端的性能测试系统1包括:调用模块11、更新模块12、复位模块13、及测试模块14。
[0077] 调用模块11用于调用预存桥接协议以便在多个移动终端和服务器之间通过USB数据线建立通信连接。在本实施例中,所述预存桥接协议为ADB桥接协议,利用所述ADB桥接协议能够同时使所述多个移动终端和服务器进行连接。其中,所述多个移动终端包括同名的移动终端和不同名的移动终端(同名是指设备型号相同,不同名是指设备型号不相同)。
[0078] 与所述调用模块11连接的更新模块12用于读取与所述服务器建立通信连接的移动终端的设备名称,并根据预定义命名方式更新所述多个移动终端的设备名称。所述预定义命名方式是指根据预制名称和与多个移动终端连接的性能测试接口的接口顺序号为与服务器连接的多个移动终端的设备名称重新命名。在本实施例中,当连接到第一个移动终端时,对所述移动终端对设备名进行定义,然后根据设备名称与服务器上的接口顺序号进行重命名,例如,斐讯E651手机,对其重命名的接口命令adb shell setprop persist.usb.serialno"device[1]",其中,device[1]是重命名。接着第二个android设备连接服务费,计数器加一,第二个设备命名为"device[2]",后续依次如此执行。因此,本实施例中,所述更新模块12还用于对连接在所述服务器上的移动终端进行计数。
[0079] 与所述调用模块11和更新模块12连接的复位模块13用于将所述多个移动终端更新过的设备名称重新复位。在本步骤中,当连接在所述服务器上的多个移动终端更新完设备名称后,需要将所述移动终端内置更新过的设备名称重新复位以便使更新过的设备名称彻底挂挂载在移动终端上,将所述多个移动终端更新过的设备名称重新复位的步骤是通过调用复位指令来完成,所述复位指令为abd remount。通过这一步骤能够显示出连接的android设备,即移动终端的名称已重新定义,以便不存在同名设备无法识别的问题。
[0080] 与所述复位模块13连接的测试模块14用于对复位后的多个移动终端以多线程操作方式运行预先录制的性能测试脚本。在本实施例中,例如,对服务器上连接有两个移动终端以多线程操作方式同时执行所述预先录制的性能测试脚本,预存在所述测试模块14上的所述预先录制的性能测试脚本具体包括以下内容:
[0081] 通过移动终端操作系统包名和交互组件名打开设置;
[0082] 点击与测试的性能相关的字符;
[0083] 查找ID设置为switch Widget的测试性能的开关组件;
[0084] 检查测试性能的开关组件是否已打开,若是,则表示测试通过,继续下一步骤,若否,则表示测试未通过,返回打开设置;
[0085] 查找ID设置为switch Widget的测试的性能的开关组件;
[0086] 检查测试性能的开关组件是否已关闭,若是,则表示测试通过,结束;若否,表示测试未通过,返回打开设置。
[0087] 如表1所示,在本实施例中采用两个移动终端,分别对两个移动终端进行WIFI开关进行测试,和蓝牙开关进行测试。
[0088] 表1:预先录制的性能测试脚本
[0089] Device[1]APP:com.android.settings/.Settings//通过android包名和activity名打开设置模块
[0090] Device[2]APP:com.android.settings/.Settings//通过android包名和activity名打开设置模块
[0091] Device[1]CText:WLAN//点击WLAN的字符,注:CText:是Click Text的缩写,点击字符
[0092] Device2]CText:WLAN//点击蓝牙的字符,注:CText:是Click Text的缩写,点击字符
[0093] Device[1]ID:android:id/switchWidget//查找id为switchWidget的WIFI开关组件
[0094] Device[2]ID:android:id/switchWidget//查找id为switchWidget的蓝牙开关组件
[0095] Device[1]Class:android.widget.Switch[1]Chick//点击打开WIFI开关组件,[1]代表该组件的序列是1
[0096] Device[2]Class:android.widget.Switch[1]Chick//点击打开蓝牙开关组件,[2]代表该组件的序列是2
[0097] Device[1]Class:android.widget.Switch[1]Checked,true//检查WIFI状态是否已打开,打开为true
[0098] Device[2]Class:android.widget.Switch[1]Checked,true//检查蓝牙状态是否已打开,打开为true
[0099] Device[1]ID:android:id/switchWidget//查找id为switchWidget的WIFI开关组件
[0100] Device[2]ID:android:id/switchWidget//查找id为switchWidget的蓝牙开关组件
[0101] Device[1]Class:android.widget.Switch[1]Chick//点击关闭WIFI开关组件,[1]代表该组件的序列是1
[0102] Device[2]Class:android.widget.Switch[1]Chick//点击关闭蓝牙开关组件,[2]代表该组件的序列是2
[0103] Device[1]Class:android.widget.Switch[1]Checked,false//检查WIFI状态是否已关闭,关闭为false
[0104] Device[2]Class:android.widget.Switch[1]Checked,false//检查蓝牙状态是否已关闭,关闭为false
[0105] Device[1]Back//返回按键
[0106] Device[2]Back//返回按键
[0107] Device[1]Back//返回按键
[0108] Device[2]Back//返回按键
[0109] Device[1]Home//反回待机界面
[0110] Device[2]Home//反回待机界面
[0111] 本实施例还提供一种移动终端2,请参阅图3,显示为移动终端的原理结构示意图。如图3所示,所述移动终端2包括本实施例中所述的移动终端的性能测试系统21。
[0112] 综上所述,本发明所述的移动终端的性能测试方法及系统可以同时进行多路移动终端设备的性能测试,在一套运行脚本中控制多个移动终端设备的写法,能测试多个移动设备性能测试。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0113] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的
权利要求所涵盖。