乔布斯有一次谈到这个问题,他说Web是未来,虽然现阶段Native给了用户更好的体验。如果现在的开发者不有效的利用Web技术,那他就落伍了。但如果过分依赖Web,完全不用Native那也未必就是好事。
iOS平台上的App有三类:Web App,通过浏览器访问;Native App,通过App store安装;第三类叫Hybrid App,它虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App,比如街旁网最开始的应用就是包了个客户端的科,其实里面是HTML5的网页,后来才推出真正的原生应用。再彻底一点的,如掌上百度和淘宝客户端Android版,走的也是Hybrid App的路线,不过掌上百度里面封装的不是WebView,而是自己的浏览内核,所以体验上更像客户端,更高效。
今天就先来说一下基于android的web app自动化测试。
1. 首先既然是玩android,自然需要一个android SDK
2. 当你cd 到/Users/phoebusliang/Downloads/document/AndroidSDK/platform-tools的时候,运行./adb devices,你会发现找不到设备,当然了,你没有去启动这个模拟器
3. 好吧,我们回过头来去设置配置一个虚拟设备,则个时候要注意,在Manger里需要安装CPU
4. okay,这个时候用命令去看看我们的devices
5. 这个时候我们把事先做下好的android-server.apk放在/Users/phoebusliang/Downloads/document/AndroidSDK/platform-tools下面
6. ./adb -s emulator-5554 -e install -r android-server.apk
7. ./adb -s emulator-5554 shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity
8. ./adb -s emulator-5554 forward tcp:8080 tcp:8080
9. 这个时候在你的模拟器上会看到一个webdriver的应用生成
10. 这个时候我们用
WebDriver driver = new AndroidDriver();
去做我们想做的事情吧。