腾讯Android自动化测试实战2.1.1 一个简单的Android App自动化测试过程

2.1 自动化测试框架介绍

2.1.1 一个简单的Android App自动化测试过程

在了解相关的Android App的自动化测试框架之前,先来看一个常用的自动化测试实例,这里先不讨论框架,主要是测试用户操作的模拟、执行结果的判断,以便获得对测试自动化的感性认识。

案例需求如下:QQ浏览器打开手机存储卡的文件,通过自动化测试获取其打开某一文件的响应时间,这里首先需要做细分,把需求拆分为几个关键点,即进入浏览器、文件打开操作、获取手机屏幕、截图分析、结果统计输出。自动化测试就是实现机器完成这些关键点的一系列操作,并且在脚本的实际运行中添加需要的业务逻辑判断,实现测试自动化。根据脚本的具体实现,整理出打开文件测试流程图,如图2-2所示。

1. 准备测试工具

下载record和replay的脚本录制工具,有很多工具可以实现,比如本书中的MonkeyRunner、UIAutomator等,在这个案例里从网上下载record /replay可执行工具,直接复制至手机硬盘。

2. 录制测试脚本

在PC上连接手机,打开adb shell命令,进入record工具存放目录,用shell命令运行record工具启动用户脚本录制,并给录制命名,如wps(打开wps文件)。工具运行成功之后,手工完成所需要的业务操作(如手机主页→选择QQ浏览器→文件目录→双击wps文件),操作结束后,按Ctrl+C键结束脚本的录制工作。录制脚本过程如图2-3所示。

 

图2-3 录制脚本过程

3. 执行测试脚本

这里以Java语言进行测试脚本的编写作为示范,通过Java的ProcessBuilder类在PC上创造并启动一个cmd命令行的进程,并执行“adb shell replay”操作进行脚本回放,这样打开文件的功能就可以通过脚本完成相应的操作执行,如代码清单2-1所示。

代码清单2-1 实现浏览器中打开wps文件

public static synchronized void enterWPS()

{

ProcessBuilder pb = new ProcessBuilder("cmd.exe");//ProcessBuilder("/system/bin/sh");

// java.lang.ProcessBuilder: Creates operating system processes.

pb.directory(new File("C:\\"));

// 设置shell的当前目录。

try {

    Process proc = pb.start();

    BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));

    // 获取输入流,可以通过它获取SHELL的输出。

    BufferedReader err = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter (proc.getOutputStream())), true);

    // 获取输出流,可以通过它向SHELL发送命令。

    out.println("adb shell replay enter wps");

    //打开WPS文件

    out.println("exit");

    String line;

    while ((line = in.readLine()) != null)

    {

        System.out.println(line);

    }

    while ((line = err.readLine()) != null)

    {

        System.out.println(line);

    }

    in.close();

    out.close();

    proc.destroy();

    }

catch (Exception e)

{

    System.out.println("exception:" + e);

}

}

}

这里的录制脚本存放路径需要读者在实践时进行更改,或者把录制的脚本放置在/system/bin/。

4. 结果判断

这里通过测试脚本完成了用户操作的模拟实现,但是正常的测试还需要结果的验证,需要编码脚本进行测试结果的判断,本案例可以通过截屏和图片分析wps文件是否打开成功,可以通过Google汉明距离相似度对比算法得到图片相似度来判定打开的结果,代码相对要复杂一些,后面的案例中也有类似的代码实现,这里就不再细述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值