分享好友 最新动态首页 最新动态分类 切换频道
二.Android手机自动化测试真机运行手机usb调试开关在哪「二.Android手机自动化测试真机运行」
2025-02-13 17:43

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

真机运行测试用例的方法

 

一,    打开手机的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()函数输入到输入框中。因为一输入就会打开软键盘,而软键盘上面的布局是九宫格的,点击一直出错。

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

 

最新文章
红米手机2(移动4G)红米手机2「红米手机2(移动4G)」
1G内存完全够用,那些觉得内存快满时卡的注意一下,一般原因有两个:第一,安卓有自己的OOM机制,当RAM使用达到一定值时(而不是完全用满的时候)会自动进行清理,清理的过程会占用CPU;第二,开启了大量后台占用CPU的应用导致前台程序的CP
手机模拟钢琴安卓版手机模拟钢琴「手机模拟钢琴安卓版」
手机模拟钢琴安卓版是一款可以将手机变成钢琴的软件,本产品包含2种模式,练习模式和自由弹奏,把你的手机变成一个钢琴教练,用户可以使用此软件来进行钢琴练习,发出的音色与真实钢琴极为相似,学会钢琴识谱拥有海量的乐谱可以练习,让用
电脑充电器可以充手机吗充电宝可以一边充电一边充手机吗「电脑充电器可以充手机吗」
电脑充电器可以充手机,但并不推荐这样做。这是因为电脑的USB端口输出的电压和电流通常比手机的充电器要低,因此充电速度会相对较慢。此外,电脑在工作时负荷变化可能导致提供给手机的电流不稳定,从而可能对手机电池造成伤害,减少电板的
大可乐手机丁秀洪表示发布会将放“毒招”大可乐手机「大可乐手机丁秀洪表示发布会将放“毒招”」
一句12.3,让什么发生,让发布在即的大可乐3成了最近的热议话题。至于究竟是什么大招,之前有媒体推测可能是暗指大可乐将和京东战略合作,也有网友认为昨日曝光的疑似长着苹果脸的新机谍照就是所谓大招。但今天,大可乐手机创始人丁秀洪在
OPPO手机总是弹出广告怎么关闭手机老是弹出广告怎么消除「OPPO手机总是弹出广告怎么关闭」
注意:本文提供的解决方案仅适用于OPPO手机。如果您使用的是其他品牌的手机,建议您查阅官方说明或联系客服获取帮助。在解决问题之前,让我们先了解一下为什么OPPO手机会频繁弹出广告。通常情况下,出现这种问题的原因可能有以下几点:未经
耐玩的游戏王手游推荐 2024经典的游戏王游戏大全游戏王手机游戏「耐玩的游戏王手游推荐 2024经典的游戏王游戏大全」
游戏王系列,作为日本界的璀璨明星,自其问世以来,便吸引了无数动漫爱好者的目光,成为了他们心中的经典。基于游戏王这一的IP,一系列悉心设计的游戏应运而生,跨越国界,在世界范围内赢得了极高的声誉与喜爱。谈及游戏王题材的手游,它们
骁龙855深度性能测试,前瞻解读2019年手机性能(对比麒麟980、苹果A12)手机性能对比「骁龙855深度性能测试,前瞻解读2019年手机性能(对比麒麟980、苹果A12)」
上一篇文章跟大家详细地聊下,目前最火的几款。还没看过的小伙伴们推荐看一看:很多读者在评论跟我提起:为什么不加上骁龙855呢?其实原因也很简单:骁龙855的机型还没上市,最快也要等到2月份。实在是巧妇难为无米之炊呀!还好,在新机正
手机好评排行:小米15第六,iQOO13跌出前十,第一名出乎意料性能最好的手机前十位「手机好评排行:小米15第六,iQOO13跌出前十,第一名出乎意料」
因为新机的发布,11月份的好评榜变化还是挺大的:OPPO Find X8排名第十,小米15仅排名第六,上周的亚军iQOO13跌出榜单前十,第一名确实有点出乎意料。对于榜单中的新机和值得选购的机型,亓纪会进行推荐和点评,希望对大家有所帮助。好评榜
手机银行线上服务指南 | 您需要的金融服务都有~广西农信手机银行「手机银行线上服务指南 | 您需要的金融服务都有~」
当您不想出门的时候当您意外居家的时候着急汇款?着急查账?着急缴费?别着急您的老朋友“广西农信手机银行”来帮您7×24小时的贴心服务让一切都变简单~这份线上服务指南请您收藏~一账户管理登录手机银行,点击首页-我的账户或账户管理、明
苹果手机怎么关声音苹果手机键盘声音怎么关闭「苹果手机怎么关声音」
苹果手机作为现代生活中不可或缺的通讯工具,其声音管理功能显得尤为重要。无论是希望在工作或学习中保持专注,还是在特定场合避免打扰他人,掌握关闭苹果手机声音的方法都显得尤为关键。以下是几种常见的关闭苹果手机声音的方法,帮助用户
相关文章
推荐文章
发表评论
0评