zeerd's blog         Search     Categories     Tags     Feed

闲来生雅趣,无事乐逍遥。对窗相望雪,一盏茶香飘。

使用Cafe进行测试Case录制及重放

#AutoTest @Android


Contents:
Cafe是一个Baidu推出的Android自动化测试工具。相较于其他自动化测试工具来说,具有更加强大的跨进程测试功能、更丰富的系统APIs和测试用例录制功能。本文主要介绍其中的录制功能的命令行用法。可以摆脱对各种专用工具的依赖。

一、编译Cafe

1、在Cafe的官方网站(https://github.com/BaiduQA/Cafe)上获取最新的代码包。
2、按着压缩包内的README.md的描述进行编译。注意,Cafe官方没有支持Android的OUT_DIR_COMMON_BASE环境变量。设置了这个环境变量可能导致编译出错。

二、生成录像程序

我们需要根据每个待测试APK生成独立的录像程序。具体的做法如下:

user@android:~/ANDROID/Cafe$ cd tests
user@android:~/ANDROID/Cafe/tests$ ./run_demo_test.sh -m TestApp.apk
user@android:~/ANDROID/Cafe/tests$ ./run_demo_test.sh -c CafeRecorder
user@android:~/ANDROID/Cafe/tests$ adb -s uninstall com.example.demo.test
user@android:~/ANDROID/Cafe/tests$ adb -s install out/Recorder.apk
user@android:~/ANDROID/Cafe/tests$ ./run_demo_test.sh -r com.emneg.zeerd.testapp

其中,如下内容需要替换:
1、“TestApp.apk”是我们要测试的程序。
2、“”是目标调试版的序列号。
3、“com.emneg.zeerd.testapp”是“TestApp.apk”的PackageName。

另外,运行之前要设置adb程序所在的PATH路径。比如在我的机器上,要先执行:
export PATH=${PATH}:~/ANDROID/out/host/linux-x86/bin/

三、获得录制结果

执行下述命令可以获取到录制结果:

user@android:~/ANDROID/Cafe/tests$ adb -s pull /data/data/com.emneg.zeerd.testapp/files/CafeReplay.java

接下来,将执行结果替换到测试工程中:

user@android:~/ANDROID/Cafe/tests$ cp -vP CafeReplay.java CafeRecorder/src/com/example/demo/test/

编译、安装并运行它(录制重放):

user@android:~/ANDROID/Cafe/tests$ adb -s uninstall com.example.demo.test
user@android:~/ANDROID/Cafe/tests$ ./run_demo_test.sh -c CafeRecorder
user@android:~/ANDROID/Cafe/tests$ adb -s install out/Recorder.apk
user@android:~/ANDROID/Cafe/tests$ ./run_demo_test.sh -r com.emneg.zeerd.testapp 100

当前目录下的.logcat文件即整个测试过程中的LOG数据。