CN104320793B - 一种手机短信自动化测试方法及*** - Google Patents

一种手机短信自动化测试方法及*** Download PDF

Info

Publication number
CN104320793B
CN104320793B CN201410512435.4A CN201410512435A CN104320793B CN 104320793 B CN104320793 B CN 104320793B CN 201410512435 A CN201410512435 A CN 201410512435A CN 104320793 B CN104320793 B CN 104320793B
Authority
CN
China
Prior art keywords
test
item
tested
sms
script
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
Application number
CN201410512435.4A
Other languages
English (en)
Other versions
CN104320793A (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.)
Shaanxi Chengtuo Network Co ltd
Original Assignee
Shanghai Feixun Data Communication Technology 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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201410512435.4A priority Critical patent/CN104320793B/zh
Publication of CN104320793A publication Critical patent/CN104320793A/zh
Application granted granted Critical
Publication of CN104320793B publication Critical patent/CN104320793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/24Arrangements for testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供一种手机短信测试自动化方法及***。所述手机短信测试自动化方法在第一脚本中实现以下步骤:读取预设的测试要求文件的信息,并据此确定所述手机短信测试的待测试项;所述测试要求文件中包含有多个以预设格式设置的测试项信息;所述待测试项为需要执行的测试项;针对每一个所述待测试项,执行所述待测试项对应的测试脚本,并得到所述测试脚本的测试结果信息;所述测试结果信息包括测试结果;所述待测试项对应的测试脚本为Robotium脚本;将所述待测试项的测试结果信息输出到测试结果文件中。本发明的技术方案不仅提高了测试的复用性,而且极大的提高了测试的自动化程度。

Description

一种手机短信自动化测试方法及***
技术领域
本发明涉及一种手机测试,特别是涉及一种手机短信自动化测试方法及***。
背景技术
目前,手机的短信功能已经成为手机的必备功能之一。手机短信分为两种:一种短信是用户通过手机或其他电信终端直接发送或接收的文字或数字信息,用户每次能接收和发送短信的字符数,是160个英文或数字字符,或者70个中文字符。一种是彩信,它最大的特色就是支持多媒体功能,能够传递功能全面的内容和信息,这些信息包括文字、图像、声音、数据等各种多媒体格式的信息。在手机的开发测试中,对手机短信功能测试常常需要耗费大量的人力与时间,这是因为手机短信功能繁多,且不容易进行自动化测试。手机短信的常见功能包括发送短信,回复短信,删除短信,检索短信,短信转发,短信复制,发送表情,发送常用短语等功能。虽然现有一些技术对手机短信功能的自动化测试做了一定的尝试,但仍然存在大量的问题。例如,测试前需要人工配置相应的软件测试环境,不能真正实现测试自动化;测试脚本依赖于待测试的手机软硬件设置,导致脚本重复利用率低;测试脚本不容易修改,难以进行针对性选择测试,需要人为判断测试结果等。
鉴于此,如何找到一种能够很好的实现对手机短信功能进行自动化测试的方法,成为了本领域技术人员期待解决的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种手机短信自动化测试方法及***,用于解决现有技术中对手机短信功能进行自动化测试中存在的测试前需要人工配置相应的软件测试环境、测试脚本依赖于待测试的手机软硬件设置、测试脚本不容易修改、需要人为判断测试结果等问题。
为实现上述目的及其他相关目的,本发明提供一种手机短信测试自动化方法,所述手机短信测试自动化方法在第一脚本中实现以下步骤:读取预设的测试要求文件的信息,并据此确定所述手机短信测试的待测试项;所述测试要求文件中包含有多个以预设格式设置的测试项信息;所述待测试项为需要执行的测试项;针对每一个所述待测试项,执行所述待测试项对应的测试脚本,并得到所述测试脚本的测试结果信息;所述测试结果信息包括测试结果;所述待测试项对应的测试脚本为Robotium脚本;将所述待测试项的测试结果信息输出到测试结果文件中。
可选地,所述待测试项对应的测试脚本的内容包括:执行所述待测试项的测试操作,并判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,如果相符合,则所述测试结果为通过;如果不符合,则所述测试结果为失败。
可选地,所述待测试项的测试操作包括:执行进入所述待测试项的测试界面的操作,如果判断未进入所述测试界面,则所述待测试项的测试结束,所述测试结果为不通过。
可选地,所述待测试项的测试操作包括获取测试截图,以记录所述待测试项的测试过程。
可选地,针对每一个不需要执行的测试项,生成测试结果为未测试标识的测试结果信息,将所述测试结果为未测试标识的测试结果信息输出到测试结果文件中。
可选地,所述手机短信测试自动化方法还包括在第二脚本中实现:对所述第一脚本进行签名验证,并将所述第一脚本安装到待测试手机上。
可选地,所述手机短信测试自动化方法还包括在第三脚本中实现:在所述待测试手机中启动所述第一脚本进行测试,在测试完成后获取所述测试结果文件。
本发明还提供一种手机短信测试自动化***,所述***包括:手机短信测试模块,所述手机短信测试模块包括测试信息获取单元,测试执行单元,测试结果生成单元;所述测试信息获取单元用于读取预设的测试要求文件的信息,并据此确定所述手机短信测试的待测试项;所述测试要求文件中包括有多个以预设格式设置的测试项信息;所述待测试项为需要执行的测试项;所述测试执行单元,与所述测试信息获取单元相连,用于针对每一个所述待测试项,执行所述待测试项对应的测试脚本,并得到所述测试脚本的测试结果信息;所述测试结果信息包括测试结果;所述待测试项对应的测试脚本为Robotium脚本;所述测试结果生成单元,与所述测试项执行单元相连,用于接收所述测试结果信息并输出所述测试结果信息到测试结果文件中。
可选地,所述待测试项对应的测试脚本的内容包括:执行所述待测试项的测试操作,并判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,如果相符合,则所述测试结果为成功;如果不符合,则所述测试结果为失败。
可选地,所述待测试项的测试操作包括:执行进入所述待测试项的测试界面的操作,如果判断未进入所述测试界面,则所述待测试项的测试结束,所述测试结果为失败。
可选地,所述待测试项的测试操作包括获取测试截图,以记录所述待测试项的测试过程。
可选地,所述手机短信测试模块针对每一个所述手机短信测试信息获取单元中不需要执行的测试项,生成相应的测试结果为未测试标识的测试结果信息,将所述测试结果为未测试标识的测试结果信息发送给所述测试结果生成单元。
可选地,所述手机短信测试自动化***还包括手机短信测试安装模块,用于对所述手机短信测试模块进行签名验证,并在待测试手机中安装所述手机短信测试模块。
可选地,所述手机短信测试自动化***还包括手机短信测试启动模块,用于启动所述手机短信测试模块,并获取所述测试结果文件。
如上所述,本发明的手机短信测试自动化方法及***,具有以下有益效果:基于Robotium脚本开发,能够基于控件ID来操作手机,避免了如采用MonkeyRunner脚本开发导致的需要在脚本中区别手机硬件不同和UI变动的问题,同时,利用Robotium脚本可以实现判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,提高了自动化程度以及重复利用率,降低了维护成本。同时,本发明的技术方案采用了从预设的包括有多个以预设格式设置的测试项信息的测试要求文件读取测试信息的方式,非常便于对测试要求进行修改。本发明的技术方案还提供了对测试程序的自动签名验证和安装,以及自动获取测试结果,极大的简化了手机短信测试的工作。
附图说明
图1显示为本发明的手机短信测试自动化方法的流程示意图。
图2显示为本发明的手机短信测试自动化***的模块示意图。
图3显示为本发明的手机短信测试自动化***的工作流程示意图。
元件标号说明
1 手机短信测试自动化***
11 手机短信测试模块
111 测试信息获取单元
112 测试执行单元
113 测试结果生成单元
12 手机短信测试安装模块
13 手机短信测试启动模块
S1~S3 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明提供一种手机短信测试自动化方法。如图1所示,在一个实施例中,所述手机短信测试自动化方法在第一脚本中实现以下步骤:
步骤S1,读取预设的测试要求文件的信息,并据此确定所述手机短信测试的待测试项;所述测试要求文件中包含有多个以预设格式设置的测试项信息;所述待测试项为需要执行的测试项。在一个实施例中,所述测试要求文件为XML文件(Setting.xml),所述XML文件以预设格式设置测试项信息。所述XML文件放置于预设的文件目录下,其格式如下所示:
所述第一脚本通过CaseControl类读取所述XML文件的内容,并将所读取的内容对应到CaseInfo类的Name和Execute字段。所述第一脚本包括Java语言实现的应用。所述XML中的以<Case Id=””>开头</Case>结尾的内容对应一个测试项信息,每一个测试项信息对应一个测试用例信息;其中的<Name></Name>的值对应到CaseInfo类的Name字段,<Execute></Execute>的值对应到CaseInfo类的Execute字段。<Execute></Execute>的值为1表示该测试项为需要执行的测试项,即所述待测试项;<Execute></Execute>的值为0表示该测试项为不需要执行的测试项。对所述CaseControl类和CaseInfo类的使用需要编辑所述第一脚本时导入CaseControl jar包。CaseControl jar包中包含CaseControl类,XmlHandle类和CaseInfo类。其中,CaseControl类可用于:读取Setting.xml的值;判断Case是不是需要执行;将结果写入XML文件;输出调试log信息;将截图复制到指定目录等。XmlHandle类可用于:读取XML文件;写入(新建写入)XML文件;解析XML文件;输出XML文件到指定地址等。CaseInfo类用于储存Case(测试例)的各种信息,一个CaseInfo记录一个Case(测试例)的信息,主要有:Name字段(Test的执行函数名称);Execute字段(表示对应函数是否执行0为不执行,1为执行)。所述CaseInfo类还可以包括:CaseNo字段(表示这个Case的序号);CaseName字段(表示Case的名称);CaseRes字段(表示Case的结果);Comment字段(表示Case执行后的备注);MmsToman字段(短信测试中联系人电话);MmsText;字段(短信测试中要发给对方人的信息)。所述测试要求文件也可以为其他类型的文件,所述预设格式设置也可以为其他预设格式,所述读取和记录方法以及格式皆不限于以上所举例的格式,可在实际中根据需要设定,只要能满足为所述第一脚本读取并据此确定所述手机短信测试的待测试项即可。在一个实施例中,所述测试项可以包括以下测试项:发送一条短信;检索已经存在的短信;新建常用短语;修改常用短语;删除常用短语;删除所有的对话;接收短信测试;发送短信表情;长按后删除一条短信;长按后复制一条短信;长按后转发短信内容;长按后锁定短信;长按储存到SIM卡。
步骤S2,针对每一个所述待测试项,执行所述待测试项对应的测试脚本,并得到所述测试脚本的测试结果信息;所述测试结果信息包括测试结果;所述待测试项对应的测试脚本为Robotium脚本。在一个实施例中,所述待测试项即为CaseInfo记录中Execute字段值为1的测试项。所述待测试项对应的测试脚本为采用Robotium脚本编写的与所述待测试项中与Name字段的值对应的测试脚本。如针对Name为testCase01的待测试例,可以设定在第一测试脚本中其所对应脚本为方法testCase01或函数testCase01。Robotium是一款国外的Android自动化测试脚本,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。Robotium脚本主要通过使用Solo对象的实例来创建测试用例(或称为测试例),Solo主要的操作语句有:solo.clickOnView(点击视图);solo.sendKey(点击物理键Menu,Home,Back);solo.enterText(输入文字);solo.clickOnButton(点击特定按钮);solo.clickOnImageButton(点击特定图片式按钮);solo.waitForActivity(确认特定Activity有没有启动);solo.searchText(搜索是否出现指定文字);solo.takeScreenshot(当前页面截图)等。
在一个实施例中,所述待测试项对应的测试脚本的内容包括:执行所述待测试项的测试操作,并判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,如果相符合,则所述测试结果为通过;如果不符合,则所述测试结果为失败。在一个实施例中,针对不同的测试例有不同的预设结果,比如,发送一条短信的预设结果可以为获得已接收消息的回执(可采用语句if(solo.waitForText(testPhoneNo1+"已接收消息",1,WAITTIME*50))判断)。针对不同的测试例,可以采用对比短信内容是否符合预设内容,发送成功图标是否显示,是否有提示发送成功POP框消息,短信列表是否有增加或者减少,具体Activity有没有正确启动等方法来判断是否测试结果。这些判断设置了不同的预设结果,并可以采用solo语句来实现。通过判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,确定所述待测试例是否通过该测试;如果相符合,则所述测试结果为通过;如果不符合,则所述测试结果为失败(或不通过)。
在一个实施例中,所述测试脚本还包括所述待测试项的测试操作包括:执行进入所述待测试项的测试界面的操作,如果判断未进入所述测试界面,则所述待测试项的测试结束,所述测试结果为失败(或不通过)。例如,在对测试用例“检索已经存在的短信”进行测试时,完成发送供检索的短信之后,需要进入信息列表界面,这时,可以检测是否进入所述测试界面(此时为“信息列表界面”),可采用Solo语句判断(if(!solo.waitForActivity("ConversationList",WAITTIME*4))),如果判断未进入所述测试界面,则所述待测试项的测试结束,所述测试结果为失败(或不通过)。如果判断进入所述测试界面,则继续进行测试。
在一个实施例中,所述待测试项的测试操作包括获取测试截图,以记录所述待测试项的测试过程。例如,针对测试用例“新建短信”的测试,分别在新建短信操作开始时、在写入短信号码内容时,发送短信时,获取发送结果时获取测试截图,并将所述测试截图保存在预设的目录中。这些测试截图完整的保存了测试的过程,可以用于供用户人工确定测试结果。
步骤S3,将所述待测试项的测试结果信息输出到测试结果文件中。具体地,将得到的待测试项的测试结果信息输出到测试结果文件中,所述测试结果信息以预设格式保存在所述测试结果文件中。在一个实施例中,所述测试结果文件为XML文件(如:CaseRes.xml),其内容如下所示:
<ResInfo>
<Res Id=”Music_01”>
<CaseName>发送一条短信(新建)</CaseName>
<CaseRes>Pass</CaseRes>
<Comment>判定方法:出现发送回执</Comment>
</Res>
<ResInfo>
<Res Id=”Music_02”>
<CaseName>检索已经存在的短信</CaseName>
<CaseRes>Pass</CaseRes>
<Comment>判定方法:检索到的条数和标题显示的条数符合,检索内容请查看截图</Comment>
</Res>
其中,Pass表示测试结果为通过或成功;如果测试结果为不通过或失败,则可以以Fail表示。
在一个实施例中,所述第一脚本还包括针对不需要执行的测试项的操作:针对每一个不需要执行的测试项,生成测试结果为未测试标识的测试结果信息,将所述测试结果为未测试标识的测试结果信息输出到测试结果文件中。所述未测试标识可以为用户所定义,如定义“NT”为未测试标识,则对不需要执行的测试项的测试结果设置为“NT”。其测试结果文件(CaseRes.xml)的相应内容如下:
<ResInfo>
<Res Id=”Music_03”>
<CaseName>检索已经存在的短信</CaseName>
<CaseRes>NT</CaseRes>
<Comment>判定方法:创建自定义短语成功</Comment>
</Res>
在一个实施例中,所述手机短信测试自动化方法还包括在第二脚本中实现:对所述第一脚本进行签名验证,并将所述第一脚本安装到待测试手机上。所述第二脚本包括对所述第一脚本的签名验证命令以及签名验证后的安装命令。所述第二脚本还可以包括对重新签名后的自动化测试脚本进行优化。所述第二脚本的一个实例的实现内容的包括:
@echo off
set apkname=Mms_Test.apk
::apkname自动化脚本apk名称
set apkname=Mms_Test_new.apk
::apknewname重新签名后的自动化脚本名称
java–jar signapk.jar testkey.x509.pem testkey.pk8%apkname%%apknewname%
::优化apk
adb install–r%apknewname%
::将重新签名后的自动化脚本安装至手机
pause
其中,::表示注释。用户可以从Android源码位置{platform/build/target/product/security/}里找到platform.pk8 platform.x509.pem等签名文件。signapk.jar文件可以从Android源码位置{/out/host/linux-x86/framework/}里找到。所述第二脚本的执行需要先将自动化测试脚本文件(Mms_Test.apk)与签名文件(platform.pk8platform.x509.pem)以及signapk.jar文件放在测试机中第二脚本所在的文件夹下,并将待测试手机采用adb连接到测试机中。
在一个实施例中,所述手机短信测试自动化方法还包括在第三脚本中实现:在所述待测试手机中启动所述第一脚本进行测试,在测试完成后获取所述测试结果文件。所述第三脚本包括在待测试手机中刚启动第一脚本进行测试的命令以及在测试完成后获取所述测试结果文件的命令。在一个实施例中,所述第三脚本还可以包括获取测试中的测试截图文件的命令。所述第三脚本的一个实例的实现内容的包括:
@echo off
set TestPackageName=com.example.ad.test
::TestPackageName测试脚本的PackageName
set TestedPackageName=com.android.music
::TestedPackageName被测试apk的PackageName
adb shell am instrument-w%TestPackageName%/com.neenbedankt.android.test.InstrumentationTestRunner
::adb shell am instrument启动对instrument实例的监视
::在com.neenbedankt.android.test.InstrumentationTestRunner这个环境下查找测试工程的AndroidManifest.xml,从中取得被测APK的PackageName,用于保持adbshell直到测试完成
echo完成……
adb pull/data/data/%TestedPackageName%/files/TEST-all.xml d:\TestResult
adb pull/mnt/sdcard/CaseRes.xml d:\TestResult
echo完成……
pause
其中,com.example.ad.test为包括了第一脚本的测试脚本的包名,com.android.music为被测试apk的包名。adb shell命令用于启动待测试手机中的第一脚本进行测试;采用adb pull命令从待测试手机中获取测试结果文件(CaseRes.xml)。
本发明还提供一种手机短信测试自动化***。在一个实施例中,如图2所示,所述手机短信测试自动化***1包括:
手机短信测试模块11,所述手机短信测试模块11包括测试信息获取单元111,测试执行单元112,测试结果生成单元113。其中:
所述测试信息获取单元111用于读取预设的测试要求文件的信息,并据此确定所述手机短信测试的待测试项;所述测试要求文件中包括有多个以预设格式设置的测试项信息;所述待测试项为需要执行的测试项。在一个实施例中,所述测试要求文件为XML文件(Setting.xml),所述XML文件以预设格式设置测试项信息。所述XML文件放置于预设的文件目录下,其格式如下所示:
测试信息获取单元111通过CaseControl类读取所述XML文件的内容,并将所读取的内容对应到CaseInfo类的Name和Execute字段。所述XML中的以<Case Id=””>开头</Case>结尾的内容对应一个测试项信息,每一个测试项信息对应一个测试用例信息;其中的<Name></Name>的值对应到CaseInfo类的Name字段,<Execute></Execute>的值对应到CaseInfo类的Execute字段。<Execute></Execute>的值为1表示该测试项为需要执行的测试项,即所述待测试项;<Execute></Execute>的值为0表示该测试项为不需要执行的测试项。对所述CaseControl类和CaseInfo类的使用需要导入CaseControl jar包。CaseControljar包中包含CaseControl类,XmlHandle类和CaseInfo类。其中,CaseControl类可用于:读取Setting.xml的值;判断Case是不是需要执行;将结果写入XML文件;输出调试log信息;将截图复制到指定目录等。XmlHandle类可用于:读取XML文件;写入(新建写入)XML文件;解析XML文件;输出XML文件到指定地址等。CaseInfo类用于储存Case(测试例)的各种信息,一个CaseInfo记录一个Case(测试例)的信息,主要有:Name字段(Test的执行函数名称);Execute字段(表示对应函数是否执行0为不执行,1为执行)。所述CaseInfo类还可以包括:CaseNo字段(表示这个Case的序号);CaseName字段(表示Case的名称);CaseRes字段(表示Case的结果);Comment字段(表示Case执行后的备注);MmsToman字段(短信测试中联系人电话);MmsText;字段(短信测试中要发给对方人的信息)。所述测试要求文件也可以为其他类型的文件,所述预设格式设置也可以为其他预设格式,所述读取和记录方法以及格式皆不限于以上所举例的格式,可在实际中根据需要设定,只要能满足为测试信息获取单元111读取并据此确定所述手机短信测试的待测试项即可。在一个实施例中,所述测试项可以包括以下测试项:发送一条短信;检索已经存在的短信;新建常用短语;修改常用短语;删除常用短语;删除所有的对话;接收短信测试;发送短信表情;长按后删除一条短信;长按后复制一条短信;长按后转发短信内容;长按后锁定短信;长按储存到SIM卡。
所述测试执行单元112与所述测试信息获取单元111相连,用于针对每一个所述待测试项,执行所述待测试项对应的测试脚本,并得到所述测试脚本的测试结果信息;所述测试结果信息包括测试结果;所述待测试项对应的测试脚本为Robotium脚本。具体地,测试执行单元112针对从所述测试信息获取单元111获取的每一个所述待测试项,执行所述待测试项对应的测试脚本,并得到所述测试脚本的测试结果信息;所述测试结果信息包括测试结果;所述待测试项对应的测试脚本为Robotium脚本。在一个实施例中,所述待测试项即为CaseInfo记录中Execute字段值为1的测试项。所述待测试项对应的测试脚本为采用Robotium脚本编写的与所述待测试项中与Name字段的值对应的测试脚本。如针对Name为testCase01的待测试例,可以设定在第一测试脚本中其所对应脚本为方法testCase01或函数testCase01。Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。Robotium脚本主要通过使用Solo对象的实例来创建测试用例(或称为测试例),Solo主要的操作语句有:solo.clickOnView(点击视图);solo.sendKey(点击物理键Menu,Home,Back);solo.enterText(输入文字);solo.clickOnButton(点击特定按钮);solo.clickOnImageButton(点击特定图片式按钮);solo.waitForActivity(确认特定Activity有没有启动);solo.searchText(搜索是否出现指定文字);solo.takeScreenshot(当前页面截图)。
在一个实施例中,所述待测试项对应的测试脚本的内容包括:执行所述待测试项的测试操作,并判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,如果相符合,则所述测试结果为通过;如果不符合,则所述测试结果为失败。在一个实施例中,针对不同的测试例有不同的预设结果,比如,发送一条短信的预设结果可以为获得已接收消息的回执(可采用语句if(solo.waitForText(testPhoneNo1+"已接收消息",1,WAITTIME*50))判断)。针对不同的测试例,可以采用对比短信内容是否符合预设内容,发送成功图标是否显示,是否有提示发送成功POP框消息,短信列表是否有增加或者减少,具体Activity有没有正确启动等方法来判断是否测试结果。这些判断设置了不同的预设结果,并可以采用solo语句来实现。通过判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,确定所述待测试例是否通过该测试;如果相符合,则所述测试结果为通过;如果不符合,则所述测试结果为失败(或不通过)。
在一个实施例中,所述测试脚本还包括所述待测试项的测试操作包括:执行进入所述待测试项的测试界面的操作,如果判断未进入所述测试界面,则所述待测试项的测试结束,所述测试结果为失败(或不通过)。例如,在对测试用例“检索已经存在的短信”进行测试时,完成发送供检索的短信之后,需要进入信息列表界面,这时,可以检测是否进入所述测试界面(此时为“信息列表界面”),可采用Solo语句判断(if(!solo.waitForActivity("ConversationList",WAITTIME*4))),如果判断未进入所述测试界面,则所述待测试项的测试结束,所述测试结果为失败(或不通过)。如果判断进入所述测试界面,则继续进行测试。
在一个实施例中,所述待测试项的测试操作包括获取测试截图,以记录所述待测试项的测试过程。例如,针对测试用例“新建短信”的测试,分别在新建短信操作开始时、在写入短信号码内容时,发送短信时,获取发送结果时获取测试截图,并将所述测试截图保存在预设的目录中。这些测试截图完整的保存了测试的过程,可以用于供用户人工确定测试结果。
测试结果生成单元113与所述测试项执行单元112相连,用于接收所述测试结果信息并输出所述测试结果信息到测试结果文件中。具体地,测试结果生成单元113将从所述测试项执行单元112得到的待测试项的测试结果信息输出到测试结果文件中,所述测试结果信息以预设格式保存在所述测试结果文件中。在一个实施例中,所述测试结果文件为XML文件(如:CaseRes.xml),其内容如下所示:
<ResInfo>
<Res Id=”Music_01”>
<CaseName>发送一条短信(新建)</CaseName>
<CaseRes>Pass</CaseRes>
<Comment>判定方法:出现发送回执</Comment>
</Res>
<ResInfo>
<Res Id=”Music_02”>
<CaseName>检索已经存在的短信</CaseName>
<CaseRes>Pass</CaseRes>
<Comment>判定方法:检索到的条数和标题显示的条数符合,检索内容请查看截图</Comment>
</Res>
其中,Pass表示测试结果为通过或成功;如果测试结果为不通过或失败,则可以以Fail表示。
在一个实施例中,所述测试执行单元112还包括针对不需要执行的测试项的操作:针对每一个不需要执行的测试项,生成测试结果为未测试标识的测试结果信息,将所述测试结果为未测试标识的测试结果信息输出到测试结果文件中。所述未测试标识可以为用户所定义,如定义“NT”为未测试标识,则对不需要执行的测试项的测试结果设置为“NT”。测试结果生成单元113将从所述测试项执行单元112得到的需要要执行的测试项的测试结果信息输出到测试结果文件中,所述测试结果信息以预设格式保存在所述测试结果文件中,其测试结果文件(CaseRes.xml)的相应内容如下:
<ResInfo>
<Res Id=”Music_03”>
<CaseName>检索已经存在的短信</CaseName>
<CaseRes>NT</CaseRes>
<Comment>判定方法:创建自定义短语成功</Comment>
</Res>
在一个实施例中,所述手机短信测试自动化***1还包括手机短信测试安装模块12,手机短信测试安装模块12用于对所述手机短信测试模块11进行签名验证,并在待测试手机中安装所述手机短信测试模块11。具体地,对所述手机短信测试模块11进行签名验证,并将所述手机短信测试模块11安装到待测试手机上。所述手机短信测试安装模块12包括对所述手机短信测试模块11的签名验证命令以及签名验证后的安装命令。所述手机短信测试安装模块12还可以包括对重新签名后的自动化测试脚本进行优化。所述手机短信测试安装模块12的一个实例的实现内容的包括:
@echo off
set apkname=Mms_Test.apk
::apkname自动化脚本apk名称
set apkname=Mms_Test_new.apk
::apknewname重新签名后的自动化脚本名称
java–jar signapk.jar testkey.x509.pem testkey.pk8%apkname%%apknewname%
::优化apk
adb install–r%apknewname%
::将重新签名后的自动化脚本安装至手机
pause
其中,::表示注释。用户可以从Android源码位置{platform/build/target/product/security/}里找到platform.pk8 platform.x509.pem等签名文件。signapk.jar文件可以从Android源码位置{/out/host/linux-x86/framework/}里找到。所述手机短信测试安装模块12的执行需要先将自动化测试脚本文件(Mms_Test.apk)与签名文件(platform.pk8 platform.x509.pem)以及signapk.jar文件放在测试机中手机短信测试安装模块12所在的文件夹下,并将待测试手机采用adb连接到测试机中。
在一个实施例中,所述手机短信测试自动化***还包括手机短信测试启动模块13,手机短信测试启动模块13用于启动所述手机短信测试模块,并获取所述测试结果文件。具体地,手机短信测试启动模块13包括在待测试手机中刚启动手机短信测试模块11进行测试的命令以及在测试完成后获取所述测试结果文件的命令。在一个实施例中,所述手机短信测试启动模块13还可以包括获取测试中的测试截图文件的命令。所述手机短信测试启动模块13的一个实例的实现内容的包括:
@echo off
set TestPackageName=com.example.ad.test
::TestPackageName测试脚本的PackageName
set TestedPackageName=com.android.music
::TestedPackageName被测试apk的PackageName
adb shell am instrument-w%TestPackageName%/com.neenbedankt.android.test.InstrumentationTestRunner
::adb shell am instrument启动对instrument实例的监视
::在com.neenbedankt.android.test.InstrumentationTestRunner这个环境下查找测试工程的AndroidManifest.xml,从中取得被测APK的PackageName,用于保持adbshell直到测试完成
echo完成……
adb pull/data/data/%TestedPackageName%/files/TEST-all.xml d:\TestResult
adb pull/mnt/sdcard/CaseRes.xml d:\TestResult
echo完成……
pause
其中,com.example.ad.test为包括了手机短信测试模块11的测试脚本的包名,com.android.music为被测试apk的包名。adb shell命令用于启动待测试手机中的手机短信测试模块11进行测试;采用adb pull命令从待测试手机中获取测试结果文件(CaseRes.xml)。d:\TestResult为测试结果的存放位置。
在一个实施例中,如图3所示,描述了手机短信测试自动化***中手机短信测试模块11以及手机短信测试启动模块13执行流程。手机短信测试启动模块13启动手机短信测试模块11开始执行。手机短信测试模块11读取Setting.xml文件,将读取的值对应到CaseInfo中,针对每一条测试用例,判断该条测试用例是否执行,即该条测试用例是否为待测试用例。测试用例根据是否执行分为不需要执行的测试例以及需要执行的测试例(待测试例或待测试项)。如果不需要执行,将NT(不执行标识)信息写入CaseRes.xml(测试结果文件),结束本测试用例的测试。如果需执行(该测试用例为待测试例),则执行相应的测试脚本(执行Solo操作)。判断是否进入所需的界面。如果未进入所需的界面,将Fail(测试失败或不通过)信息写入CaseRes.xml(测试结果文件),结束本测试用例的测试。如果进入所需的界面,则继续solo操作,知道操作部分完成,截取当前界面图片。此时,判断测试结果是否符合预期条件,如果符合,将Pass(测试失败或不通过)信息写入CaseRes.xml(测试结果文件),结束本测试用例的测试。如果不符合,将Fail(测试失败或不通过)信息写入CaseRes.xml(测试结果文件),结束本测试用例的测试。当本测试用例的测试结束后,判断是否所有单条Case(测试用例)都被执行。如果否,则继续下一条测试用例的测试。如果是,则全部结束,手机短信测试启动模块13将测试结果文件(CaseRes.xml)复制到测试机中,并通知用户测试结束。
综上所述,本发明的手机短信测试自动化方法及***,具有以下有益效果:基于Robotium脚本开发,能够基于控件ID来操作手机,避免了如采用MonkeyRunner脚本开发导致的需要在脚本中区别手机硬件不同和UI变动的问题,同时,利用Robotium脚本可以实现判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,提高了自动化程度以及重复利用率,降低了维护成本。同时,本发明的技术方案采用了从预设的包括有多个以预设格式设置的测试项信息的测试要求文件读取测试信息的方式,非常便于对测试要求进行修改。本发明的技术方案还提供了对测试程序的自动签名验证和安装,以及自动获取测试结果,极大的简化了手机短信测试的工作。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (14)

1.一种手机短信测试自动化方法,其特征在于,所述手机短信测试自动化方法在第一脚本中实现以下步骤:
读取预设的测试要求文件的信息,并据此确定所述手机短信测试的待测试项;所述测试要求文件中包含有多个以预设格式设置的测试项信息;所述待测试项为需要执行的测试项;
针对每一个所述待测试项,执行所述待测试项对应的测试脚本,并得到所述测试脚本的测试结果信息;所述测试结果信息包括测试结果;所述待测试项对应的测试脚本为Robotium脚本;
将所述待测试项的测试结果信息输出到测试结果文件中;
所述测试项包括:发送一条短信;检索已经存在的短信;新建常用短语;修改常用短语;接收短信测试;发送短信表情;长按后复制一条短信;长按后转发短信内容;长按后锁定短信;长按储存到SIM卡。
2.根据权利要求1所述的手机短信测试自动化方法,其特征在于:所述待测试项对应的测试脚本的内容包括:执行所述待测试项的测试操作,并判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,如果相符合,则所述测试结果为通过;如果不符合,则所述测试结果为失败。
3.根据权利要求2所述的手机短信测试自动化方法,其特征在于:所述待测试项的测试操作包括:执行进入所述待测试项的测试界面的操作,如果判断未进入所述测试界面,则所述待测试项的测试结束,所述测试结果为不通过。
4.根据权利要求2所述的手机短信测试自动化方法,其特征在于:所述待测试项的测试操作包括获取测试截图,以记录所述待测试项的测试过程。
5.根据权利要求1所述的手机短信测试自动化方法,其特征在于:针对每一个不需要执行的测试项,生成测试结果为未测试标识的测试结果信息,将所述测试结果为未测试标识的测试结果信息输出到测试结果文件中。
6.根据权利要求1所述的手机短信测试自动化方法,其特征在于:所述手机短信测试自动化方法还包括在第二脚本中实现:对所述第一脚本进行签名验证,并将所述第一脚本安装到待测试手机上。
7.根据权利要求1所述的手机短信测试自动化方法,其特征在于:所述手机短信测试自动化方法还包括在第三脚本中实现:在所述待测试手机中启动所述第一脚本进行测试,在测试完成后获取所述测试结果文件。
8.一种手机短信测试自动化***,其特征在于:所述***包括:手机短信测试模块,所述手机短信测试模块包括测试信息获取单元,测试执行单元,测试结果生成单元;其中:
所述测试信息获取单元用于读取预设的测试要求文件的信息,并据此确定所述手机短信测试的待测试项;所述测试要求文件中包括有多个以预设格式设置的测试项信息;所述待测试项为需要执行的测试项;
所述测试执行单元,与所述测试信息获取单元相连,用于针对每一个所述待测试项,执行所述待测试项对应的测试脚本,并得到所述测试脚本的测试结果信息;所述测试结果信息包括测试结果;所述待测试项对应的测试脚本为Robotium脚本;
所述测试结果生成单元,与所述测试项执行单元相连,用于接收所述测试结果信息并输出所述测试结果信息到测试结果文件中;
所述测试项包括:发送一条短信;检索已经存在的短信;新建常用短语;修改常用短语;接收短信测试;发送短信表情;长按后复制一条短信;长按后转发短信内容;长按后锁定短信;长按储存到SIM卡。
9.根据权利要求8所述的手机短信测试自动化***,其特征在于:所述待测试项对应的测试脚本的内容包括:执行所述待测试项的测试操作,并判断所述测试操作完成后的结果是否与所述待测试项的预设结果相符合,如果相符合,则所述测试结果为成功;如果不符合,则所述测试结果为失败。
10.根据权利要求9所述的手机短信测试自动化***,其特征在于:所述待测试项的测试操作包括:执行进入所述待测试项的测试界面的操作,如果判断未进入所述测试界面,则所述待测试项的测试结束,所述测试结果为失败。
11.根据权利要求9所述的手机短信测试自动化***,其特征在于:所述待测试项的测试操作包括获取测试截图,以记录所述待测试项的测试过程。
12.根据权利要求8所述的手机短信测试自动化***,其特征在于:所述手机短信测试模块针对每一个所述手机短信测试信息获取单元中不需要执行的测试项,生成相应的测试结果为未测试标识的测试结果信息,将所述测试结果为未测试标识的测试结果信息发送给所述测试结果生成单元。
13.根据权利要求8所述的手机短信测试自动化***,其特征在于:所述手机短信测试自动化***还包括手机短信测试安装模块,用于对所述手机短信测试模块进行签名验证,并在待测试手机中安装所述手机短信测试模块。
14.根据权利要求8所述的手机短信测试自动化***,其特征在于:所述手机短信测试自动化***还包括手机短信测试启动模块,用于启动所述手机短信测试模块,并获取所述测试结果文件。
CN201410512435.4A 2014-09-29 2014-09-29 一种手机短信自动化测试方法及*** Active CN104320793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410512435.4A CN104320793B (zh) 2014-09-29 2014-09-29 一种手机短信自动化测试方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410512435.4A CN104320793B (zh) 2014-09-29 2014-09-29 一种手机短信自动化测试方法及***

Publications (2)

Publication Number Publication Date
CN104320793A CN104320793A (zh) 2015-01-28
CN104320793B true CN104320793B (zh) 2018-10-12

Family

ID=52375945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410512435.4A Active CN104320793B (zh) 2014-09-29 2014-09-29 一种手机短信自动化测试方法及***

Country Status (1)

Country Link
CN (1) CN104320793B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294172B (zh) * 2016-08-17 2018-10-30 刘华英 基于终端设备的app自测方法和装置
CN107948942A (zh) * 2017-11-23 2018-04-20 北京百悟科技有限公司 一种短信业务自动化测试方法及装置
CN108376115B (zh) * 2018-01-29 2022-01-18 数据通信科学技术研究所 一种跨Android平台自动化测试方法及***
CN109597728B (zh) * 2018-11-15 2022-09-06 Oppo(重庆)智能科技有限公司 测试设备的控制方法及装置、计算机可读存储介质
CN110290486A (zh) * 2019-07-04 2019-09-27 深圳壹账通智能科技有限公司 短信发送测试方法、装置、计算机设备和存储介质
CN111999707A (zh) * 2020-08-19 2020-11-27 无锡威孚高科技集团股份有限公司 一种毫米波雷达的自动化测试方法、装置及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156672A (zh) * 2011-04-19 2011-08-17 广东欧珀移动通信有限公司 一种实现手机计算器自动化测试的方法
WO2013000439A1 (zh) * 2011-06-30 2013-01-03 华为数字技术(成都)有限公司 安全策略脚本执行方法、装置以及安全策略***
CN103400063A (zh) * 2013-08-06 2013-11-20 深信服网络科技(深圳)有限公司 脚本文件执行方法及装置
CN103744784A (zh) * 2014-01-06 2014-04-23 ***(深圳)有限公司 手机应用自动化测试方法及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156305B (zh) * 2013-05-15 2018-01-09 腾讯科技(深圳)有限公司 一种应用程序测试方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156672A (zh) * 2011-04-19 2011-08-17 广东欧珀移动通信有限公司 一种实现手机计算器自动化测试的方法
WO2013000439A1 (zh) * 2011-06-30 2013-01-03 华为数字技术(成都)有限公司 安全策略脚本执行方法、装置以及安全策略***
CN103400063A (zh) * 2013-08-06 2013-11-20 深信服网络科技(深圳)有限公司 脚本文件执行方法及装置
CN103744784A (zh) * 2014-01-06 2014-04-23 ***(深圳)有限公司 手机应用自动化测试方法及***

Also Published As

Publication number Publication date
CN104320793A (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
CN104320793B (zh) 一种手机短信自动化测试方法及***
CN104407980B (zh) 移动应用自动化测试装置和方法
US7529977B2 (en) Automated extensible user interface testing
US9684587B2 (en) Test creation with execution
WO2018120721A1 (zh) 用户界面的测试方法、***、电子装置及计算机可读存储介质
US20140109063A1 (en) Capturing test data associated with error conditions in software item testing
CN109614313A (zh) 自动化测试方法、装置及计算机可读存储介质
CN104572463B (zh) 测试接口信息的方法及装置
CN104715203B (zh) 信息泄漏漏洞的定量分析的方法和***
CN110955428A (zh) 一种页面显示方法、装置、电子设备及介质
US9417991B2 (en) Translation verification testing
CN104731566B (zh) 集成开发环境测试装置、方法及***
US20140109058A1 (en) Test language interpreter
CN105022694B (zh) 用于移动终端测试的测试用例生成方法及***
CN110716853A (zh) 一种测试脚本录制方法、应用程序测试方法和相关装置
US20220350857A1 (en) Methods and systems for browser extension used to generate relative xpath, absolute xpath and/or css selectors
CN107615270A (zh) 一种人机交互方法及其装置
CN112241370B (zh) 一种api接口类的校验方法、***及装置
CN103326930B (zh) 开放平台接口自动巡检方法和***
CN104008089B (zh) 用于验证文档的方法和***
US10387294B2 (en) Altering a test
CN109582524A (zh) 一种测试方法、***及电子设备和存储介质
CN111966587A (zh) 数据采集方法、装置和设备
CN114036074A (zh) 终端设备的测试方法和测试装置
CN113836014A (zh) 一种接口测试方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201125

Address after: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Jiji Intellectual Property Operation Co.,Ltd.

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Patentee before: Phicomm (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201216

Address after: 233000 3rd floor, Dong'an Market, Fengyang West Road, Longzihu District, Bengbu City, Anhui Province

Patentee after: Bengbu 309 Technology Consulting Co.,Ltd.

Address before: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Hangzhou Jiji Intellectual Property Operation Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20210203

Address after: 313001 room 1019, Xintiandi office building, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee after: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Address before: 233000 3rd floor, Dong'an Market, Fengyang West Road, Longzihu District, Bengbu City, Anhui Province

Patentee before: Bengbu 309 Technology Consulting Co.,Ltd.

TR01 Transfer of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Method and System for Automatic Test of Mobile Short Message

Effective date of registration: 20230111

Granted publication date: 20181012

Pledgee: Huzhou Wuxing Rural Commercial Bank Co.,Ltd. high tech Zone Green sub branch

Pledgor: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Registration number: Y2023330000072

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231205

Granted publication date: 20181012

Pledgee: Huzhou Wuxing Rural Commercial Bank Co.,Ltd. high tech Zone Green sub branch

Pledgor: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Registration number: Y2023330000072

PC01 Cancellation of the registration of the contract for pledge of patent right
TR01 Transfer of patent right

Effective date of registration: 20240205

Address after: 710000, Building B, Huihao Tree Center, Keji 3rd Road, High tech Zone, Xi'an City, Shaanxi Province, China 1508

Patentee after: Shaanxi Chengtuo Network Co.,Ltd.

Country or region after: China

Address before: 313001 room 1019, Xintiandi office building, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee before: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right