安卓真机运行自动化测试(selenium 2)


一、环境+设备:

开发环境:Eclipsejdk1.6

机型:GT-S5830android 2.3.4


二、过程

   基于上次在模拟器上运行了junit单元测试打开google页面后,再次试验下了使用真正的手机来运行。此次在测试过程先后测试www.baidu.comm.baidu.com 均不能真正找到元素的位置,以失败告终,查其原因发现手机上的页面idpc上的页面id是不一样,遂放弃测试别人的网页。转向公司内部的乐园测试环境。通过慢慢摸索,也终于发现了一些秘密。

三、搭建

之前通过模拟器时候,比较好理解,因为在同一台机器,只要转发了端口就可以通信。当真正连接上外接设备时候,一下有点傻眼,这PC与手机的桥梁是什么呢,怎么通信呢?

于是查找资料,在网上查找到一个DDMSDalvik Debug Monitor Service
)的Eclipse插件,解释是:Android 开发环境中的Dalvik虚拟机调试监控服务
,也是开发android的插件,Eclipseandroid的桥梁,于是我又开始装这个,折腾了好久,最终装上去时候,发现连接是连接上了设备,可对于如何做端口转发等还不知道怎么弄(或许是现在没弄明白)。其实这个插件装好后对编写脚本时候作为调试用途是很好的。

再查找资料,原来ADB(Android Debug Bridge)可以直接对设备进行操作。即大约可以简化步骤为:


1、装好手机在PC端的驱动(可用豌豆荚)

2、下载adb(地址:http://115.com/file/clwr1fqnÂ

3、命令行模式进入adb目录,运行adb,可使用adb 回车直接看帮助

4、命令:adb foward tcp:8080 tcp:8080PC端的8080端口所有通信数据转发到设备的8080端口。


以上准备就绪,接下来便是测试单元的编写。


四、webdriver+junit

编写测试单元OneTest(),部分代码如下:

WebDriver driver = new AndroidDriver();
driver.get("http://xxx/?r=sso/login");
driver.findElement(By.id("login_uid")).sendKeys("aaaaaaaa");
driver.findElement(By.id("login_password")).sendKeys("123456"); 
driver.findElement(By.name("loginSigin")).click();
driver.wait();
assertTrue(driver.getTitle().contains("xxxxxx")); //验证title
driver.quit();

(涉及一些网址不方便公开)

点击运行,可以在手机上看到手机开始自动运行这段代码的步骤了。具体图示不便展出,请见谅

六、apk支持的平台

[只有一个2.3.x(姜饼),蜂窝(3.x版),冰淇淋三明治(4.0.X)及以上版本

注意,在模拟器上2.3.X有可能会导致webdriver崩溃。


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值