基于Jmeter的安卓UI自动化测试方法及系统与流程

文档序号:11918187阅读:1336来源:国知局
基于Jmeter的安卓UI自动化测试方法及系统与流程

本发明涉及一种软件测试领域,具体涉及一种基于Jmeter的安卓UI自动化测试方法及系统。



背景技术:

自动化测试是指通过自动化测试工具或其他手段,按照测试人员的测试计划进行自动测试,目的是减轻手工测试的工作量,从而提高软件质量。相对于手工测试而言,自动化测试的主要进步在于自动化测试工具的引入。

事实上,当前已经存在不少成熟的安卓UI自动化测试方案,例如Instrumentation和UI Automator等,然而现有技术中的安卓UI自动化测试方法仅对UI元素进行操作和断言,缺少将安卓UI自动化与其他测试衔接的方法。



技术实现要素:

本发明的目的在于提供一种基于Jmeter的安卓UI自动化测试方法及系统,使用户终端支持生成Jmeter脚本,使安卓UI自动化测试与其他移动App测试实现优质衔接。

本发明的技术方案在于提供一种基于Jmeter的安卓UI自动化测试方法,该测试方法包括:步骤A,录制在移动设备App中对控件的操作过程,生成相应的输入事件;步骤B,基于该输入事件,获得解析结果;步骤C,基于该解析结果,生成回放脚本;步骤D,基于该回放脚本,生成Jmeter脚本。

可选的,该步骤A包括:将生成的该输入事件存储至输入设备指令缓存。

可选的,该步骤C还包括,基于该解析结果,验证生成的回放脚本是否正确。

可选的,该步骤D包括:基于该回放脚本,通过Jmeter的OS Sampler,生成该Jmeter脚本。

本发明还提供一种基于Jmeter的安卓UI自动化测试系统,该安卓自动化测试系统包括:脚本录制模块,用于录制在移动设备App中对控件的操作过程,生成相应的输入事件;解析模块,用于基于该输入事件,获得解析结果。回放脚本生成模块,用于基于该解析结果,生成回放脚本。终端模块,基于该回放脚本,生成Jmeter脚本。

可选的,该测试系统还包括:输入设备指令缓存,用于将生成的该输入事件存储至该输入设备指令缓存中。

可选的,该终端模块还包括:脚本验证模块,用于验证生成的回放脚本是否正确。

可选的,基于该回放脚本,通过Jmeter的OS Sampler,生成该Jmeter脚本。

本发明提供的自动化测试方法和系统,通过利用Jmeter的特性,以使安卓UI自动化测试与其他移动App测试实现优质衔接。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的 附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明的基于Jmeter的安卓UI自动化测试方法流程图;

图2为本发明的基于Jmeter的安卓UI自动化测试系统示意图;

图3为本发明的基于Jmeter的安卓UI自动化测试系统结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

图1为本发明的基于Jmeter的安卓UI自动化测试方法流程图。如图1所示自动化测试步骤如下:

步骤A,录制在移动设备App中对控件的操作过程,生成相应的输入事件;

步骤B,基于该输入事件,获得解析结果,

步骤C,基于该解析结果,生成回放脚本;

步骤D,基于该回放脚本,生成Jmeter脚本。

可选的,该步骤A包括:将生成的该输入事件存储至输入设备指令缓存205。

可选的,该步骤C还包括,基于该解析结果,验证生成的回放脚本。

可选的,该步骤D具体包括:基于该回放脚本,通过Jmeter的OS Sampler,生成该Jmeter脚本。

下面结合一个具体的实施例对本发明进行具体描述,然而值得注 意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

测试人员将安卓设备与电脑连接,打开安卓设备上的待测App,启动电脑上的用户终端。

通过点击用户终端上的“开始”录制按钮,然后对安卓设备上的待测App进行操作,在操作结束之后,在用户终端上点击“终止”录制按钮,用户终端会记录测试人员在安卓设备上操作App的过程,并生成对应的shell回放脚本。此时便完成了自动化测试中的录制的过程。

在完成录制过程之后,测试人员通过点击用户终端上的回放按钮,用户终端便会执行这个shell回放脚本,而与用户终端连接的安卓设备上的App将会自动执行测试人员之前的操作过程,该回放过程的目的在于验证生成的脚本是否正确。

然后,测试人员点击用户终端上的生成Jmeter脚本按钮,用户终通过获取shell脚本的存储路径生成匹配jmeter的OS Sampler标准格式的XML文本,然后将shell脚本存储路径置入其中,以此通过shell脚本将XML文本转换为一个后缀为“.jmx”的文件,该文件中包含生成的OS Sampler的内容。然后,测试人员用Jmeter工具运行这个“.jmx”文件,以此可以通过安卓设备自动执行上述测试人员操作App的过程。

测试人员可以在用Jmeter工具打开“.jmx”文件后在安卓UI自动化测试的前后追加其他的测试场景,例如在重复操作前先往数据库里加入准备数据,或者在操作后查询数据库看是否数据正确插入等。

图2为本发明的基于Jmeter的安卓UI自动化测试系统结构图。如图2所示,自动化测试系统包括:

脚本录制模块201,用于录制在移动设备App中对控件的操作过 程,生成相应的输入事件;

解析模块202,用于基于该输入事件,获得解析结果。

回放脚本生成模块203,用于基于该解析结果,生成回放脚本。

终端模块204,基于该回放脚本,生成Jmeter脚本。

可选的,该测试系统还包括:输入设备指令缓存205,用于将生成的该输入事件存储至该输入设备指令缓存205中。

可选的,该终端模块204还包括:脚本验证模块206,用于验证生成的回放脚本。

可选的,基于该回放脚本,通过Jmeter的OS Sampler,生成该Jmeter脚本。

下面结合图3对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

本发明提供的基于Jmeter的安卓UI自动化测试系统包括:终端模块204,用于回放安卓手机上App中的UI界面进行各种操作,并支持生成Jmeter脚本;具体的,用户可以通过UI界面来触发录制,终止录制,生成Jmeter脚本,回放等功能。

开始录制时,测试人员通过点击用户终端上的“开始”录制按钮,终端模块204开始调用脚本录制模块201进行录制,此时脚本录制模块201通过记录用户操作用户终端的各种操作步骤,生成相应的代码。此外,本发明也可以通过adb shell send event驱动UI安卓自动化。具体地,该模块通过使用安卓系统自带的adb命令getevent解析/dev/input/eventX文件来实时读取安卓操作系统的用户输入事件,然后 将原始的设备指令缓存到输入设备指令缓存205中,存储用户的输入事件。特别地,由于该输入事件根据不同设备会有不同的结果。例如对于安卓模拟器,event0表示保存屏幕输入事件和键盘输入事件,而在某些安卓设备上,同样的输入事件会用event1表示。

结束录制时,终端模块204通过调用回放脚本生成模块203进行脚本回放,然后生成shell命令行格式的回放脚本。其中,回放脚本生成模块203是根据解析模块202进行单条指令的简单解析并输出结果,根据生成算法生成回放整个操作过程的shell脚本,然后通过脚本验证模块206验证生成的脚本是否正确,而解析模块202是将输入设备指令缓存205将这些原始的设备指令解析为一条条的用户指令,例如"在x,y位置进行点击操作"等等。具体来说,解析模块202用于解析单条设备指令,其主要功能如下:判断当前指令是否是设置X坐标的指令;判断当前指令是否是设置Y坐标的指令;判断当前指令是否是点击抬起指令;判断当前指令是否是点击按下指令;判断当前指令是否是按键按下指令;判断当前指令是否是按键抬起指令;判断当前指令是否是空指令;根据键盘输入设备指令转换为对应ASCII。

最后,终端模块204采用Jmeter的OS Sampler进行驱动,调用回放脚本(shell脚本)生成可供Jmeter驱动的“.jmx”脚本。由于此处实现方式与前述方法相同,故具体过程在此不再赘述。

通过本发明提供的自动化测试方法和系统,测试人员可以在用Jmeter工具打开.jmx后在安卓UI自动化测试的前后追加其他的测试场景,例如在重复操作前先往数据库里加入准备数据,或者在操作后查询数据库。测试脚本录制方式对测试人员来说较友好,测试门槛低。此外,录制脚本对同型号测试机器可以复用。Jmeter脚本对测试人员较为熟悉,测试门槛低。可以将安卓UI自动化测试与其他测试集成起来。例如在UI操作后检查后台数据库。通过利用Jmeter的特性,以使安卓UI自动化测试与其他移动App测试实现优质衔接。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1