二.Android手机自动化测试真机运行

手机自动化测试用例虽然可以在模拟器上运行,可是模拟器毕竟和真机还是有区别的。在搞定了模拟器上运行测试用例后,我又花了两天的时间,研究了一下真机运行测试用例。期间也遇到了不少问题,不过最终还是搞定了,现在先将测试用例真机运行的方法说一下,然后再罗列我遇到的问题。

真机运行测试用例的方法

一,    打开手机的USB调试模式

不同的手机有不同的方法打开usb调试模式,可是去网上查一下你手机的调试模式打开办法(http://wenku.baidu.com/view/3077f06c25c52cc58bd6be15.html?re=view)。还有一个可以去网上下载一个“USB调试快捷开关”的应用,将手机的USB调试模式打开。

二,    连接手机到电脑

将手机用数据线连接到电脑,并授权USB调试模式。查看连接的效果,在cmd下运行命令:adb devices -l 查看UDID,如下图所示:

如果有输出,就表示连接成功。

三,    启动Appium服务

根据查到的UDID启动appium服务,运行命令:

#>appium -a 127.0.0.1 -p 4723  –U  4ca1558c  --no-reset

-U 参数后面跟的一串字符就是手机的UDID,这个是通过第二步查到的。

当程序输出如上图信息的时候,表示appium启动成功,此时便可以运行测试脚本了。

四,    测试脚本的编写及运行

真机运行的测试脚本与模拟器上几乎是相同的,就是有些儿配置不太一样。具体脚本详解如下:

#-*- coding: UTF-8 -*-

import os

import time

import unittest

from selenium import webdriver

from lib2to3.pgen2.driver import Driver

from lib2to3.tests.support import driver

PATH=lambda p:os.path.abspath(

os.path.join(os.path.dirname(__file__),p)

)

global driver

class LoginAndroidTests(unittest.TestCase):

def setUp(self):

desired_caps={}

desired_caps[‘device‘] = ‘android‘

desired_caps[‘platformName‘]=‘Android‘

desired_caps[‘browserName‘]=‘‘

desired_caps[‘version‘]=‘4.4.2‘

desired_caps[‘deviceName‘]=‘MIUI-KXCCNBF22.0‘#这是测试机的型号,可以查看手机的关于本机选项获得

desired_caps[‘app‘] = PATH(‘D:\\AndroidAutomation\\AndroidAutoTest\\app\\zhongchou.apk‘)#被测试的App在电脑上的位置

#如果知道被测试对象的apppage,appActivity可以加上下面这两个参数,如果不知道,可以注释掉,不影响用例执行

#desired_caps[‘appPackage‘]=‘com.subject.zhongchou‘

#desired_caps[‘appActivity‘]=‘.ZhongChou‘

self.driver=webdriver.Remote(‘http://localhost:4723/wd/hub‘,desired_caps)

def tearDown(self):

self.driver.quit()

def test_login(self):

time.sleep(10)

#点击“注册登录”按钮       button=self.driver.find_element_by_id("com.subject.zhongchou:id/register_button")

button.click()

time.sleep(5)

#登录

name =self.driver.find_element_by_id(‘com.subject.zhongchou:id/loginnumber_phone‘)

name.click()

name.send_keys(‘183XXXXXX05‘)

psd =self.driver.find_element_by_id(‘com.subject.zhongchou:id/loginnumber_password‘)

psd.click()

psd.send_keys(‘XXXXXXXX’)

blogin=self.driver.find_element_by_id(‘com.subject.zhongchou:id/go_numberlogin‘)

blogin.click()

time.sleep(10)

#此处加上检测登录是否成功的代码

if __name__ == ‘__main__‘:

suite = unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)

unittest.TextTestRunner(verbosity=2).run(suite)

另开一个cmd窗口,运行测试脚本(python XXXX.py)即可。此时服务端就会有输出,程序在手机上运行。

注:在测试用例运行过程中,要在手机上安装Appium Settings,按提示允许安装就可以了。

研究真机运行的时候遇到的问题

1,电脑连接到手机后,运行adb devices –l无信息输出?

电脑连接手机后,一般情况下会提示安装驱动程序,如果手机较新的话可能不会提示,但是运行adb devices –l后无任何输出。此时只需要安装91手机助手或是其他手机管理工具,安装上相应的驱动程序,再次连接就可以了。

2,运行程序后提示:WebDriverException: Message: u"A new session could not be created. (Original error: Activity used to start app doesn‘t exist or cannot be launched! Make sure it exists and is a launchable activity)"?

当我从网上学习了脚本的编写方法后,模拟着写了一个我自己的测试用例,可是连接到真机后,运行脚本时,在执行过程中出现了上面的错误提示,可是程序无法运行。

在网上查看了一下,找到了问题所在:是程序的‘appPackage‘和‘appActivity’不正确,查找了解决办法,有说要反编译被测试的app,然后查找里面的appactivity。可是反编译后才发现,里面的东西好多,找不到开始的时候appactivity是哪儿个?只好再找其他的办法了。

最后在一个论坛的回复中找到了解决办法:将setup函数中的两行代码注释掉就可以了。

desired_caps[‘appPackage‘]=‘com.subject.zhongchou‘

desired_caps[‘appActivity‘]=‘.ZhongChou‘

3,在程序执行这程中,用Send_keys()函数对输入框输入值的时候,无法输入?

当我执行测试用例的时候,发现用户名和密码无法用send_keys()函数输入到输入框中。因为一输入就会打开软键盘,而软键盘上面的布局是九宫格的,点击一直出错。

在网上查了好多办法,人家都是一用的这个函数啊,为什么到我这就不行了呢?我想到了先切换到数字或是英语输入模式,然后再输入,折腾起来很麻烦,还没有成功。最后才发现,是我自己好傻,安装了搜狗输入法的原因,把这个输入法卸掉后就成功了!

时间: 2024-10-26 09:55:10

二.Android手机自动化测试真机运行的相关文章

Android手机自动化测试真机运行

一,    打开手机的USB调试模式 不同的手机有不同的方法打开usb调试模式,可是去网上查一下你手机的调试模式打开办法(http://wenku.baidu.com/view/3077f06c25c52cc58bd6be15.html?re=view).还有一个可以去网上下载一个"USB调试快捷开关"的应用,将手机的USB调试模式打开. 二,    连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命令:adb devices -l 查看U

Android手机 Fildder真机抓包

Android 手机 Fildder 真Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的"进出"的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思). Fiddler 要比其他的网络调试器要更加简单,因为它仅仅暴露http通讯还有提供一个用户友好的格式. 对于Android开发的同事最头疼的事情莫过于真机抓包,然后Fiddle

android studio 程序真机运行中文显示乱码

代码里中文显示正常,真机运行后中文显示乱码,解决办法: build.gradle中添加一句 android { compileOptions.encoding = "GBK" } 版权声明:本文为博主原创文章,未经博主允许不得转载.

windows搭建react natiive android环境及真机运行遇到的坑

第1步:安装最新版Java 下载安装JDK ,最好是Java Development Kit [JDK] 1.8或更高版本 官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 配置环境 (不会的百度哦) 第2步:安装Android SDK 有两种方案,直接安卓android SDK或者Android Studio.Android Studio包含了运行和测试React N

Android手机Fiddler真机抓包

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许用户监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展.想要使用好这个工具,必须了解http协议,对http协议了解越深,这个工具越强大. 其它同类的工具有:wireshark,httpwatch,firebug. Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888.Fid

Android手机自动化测试实例详解

手机自动化框架也比较多,针对ios,android两个不同的平台,最后我挑选了appium,它是利用webdriver来进行驱动测试的,这个框架我比较熟悉,而且它支持两个平台.于是我就针对这两个不同的平台进行了分别的搭建与测试,IOS平台的环境搭建没有问题,具体搭建方法见: http://blog.sina.com.cn/s/blog_68f262210102v0ta.html,而测试用例,由于现在我没有办法将ipa文件转化成app文件,所以测试用例还没有搞定.问题解决后,会发相应的文章的. 本

安卓第一课:android studio 的环境搭建与真机运行以及遇到的问题

AS的下载: https://developer.android.com/studio/index.html AS的安装: android studio, sdk, virtual device都要安装,安装路径最好不要选在C盘 创建新项目: 创建过程不再赘述网上都有. 真机运行: 项目写好后先用USB线将安卓手机连接到电脑(注意:手机一定要打开开发者选项然后开启USB调试功能),点击运行后在检测到的设备中选择自己的手机(一般只有一项,点那个就好),运行成功后,自己的手机上会自动安装好这个软件.

第四章 Appium真机运行测试用例讲解

手机自动化测试用例虽然可以在模拟器上运行,可是模拟器毕竟和真机还是有区别的.在第二章我们讲到了模拟器上运行测试用例后,我又花了两天的时间,研究了一下真机运行测试用例.只有在真机上运行,才能真正发现出问题.期间也遇到了不少问题,不过最终还是搞定了,现在先将测试用例真机运行的方法说一下,然后再罗列我遇到的问题. 4.1 真机运行测试用例的方法 一,    打开手机的USB调试模式 不同的手机有不同的方法打开usb调试模式,可是去网上查一下你手机的调试模式打开办法(http://wenku.baidu

真机运行测试用例的方法

真机运行测试用例的方法 一,    打开手机的USB调试模式 二,    连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命令:adb devices查看UDID,如下图所示: 如果有输出,就表示连接成功. 三,    启动Appium服务 根据查到的UDID启动appium服务,运行命令: #>appium -a 127.0.0.1 -p 4723  –U  6207febc --no-reset -U 参数后面跟的一串字符就是手机的UDID,这个