appium执行用例时报错问题:

问题解析:

一般该种情况都是因为来连接了多个设备,验证办法:cmd->执行adb devices  看结果是否是多个devices ,如果是这个问题,停掉多余设备,剩余一个设备就可以了。

android真机自动化测试

1、appium相关安装(eclipse下)见http://www.cnblogs.com/wangcp-2014/p/5717589.html参考selenium的安装

1.1appium的安装除了selenium安装的东西外 还需要再切换到E:\Python\Scripts 目录下cmd输入:pip install Appium-Python-Client  安装appium client

1.2 eclipse下导入开发框架项目---设置appium---项目->properties->PyDev-Interpreter/Grammar中的click here to configure an interpreter not listed中进行设置,进入之后,Forced Builtins选项,点击new,输入appium保存,点击apply,点击确定,重启下eclipse,ok

2、android-sdk下载及安装

  2.1 android-sdk下载及安装

  2.2 配置环境变量

  ANDROID_HOME=android-sdk的安装目录

  PATH=.; %ANDROID_HOME%\tools; ; %ANDROID_HOME%\platform-tools;。。。

  2.3 通过cmd下输入adb验证配置是否正确

  2.4 启动adb  cmd下输入adb start-server 启动adb 返回没有报错就是启动成功了 (报错时查看端口是否被占用,结束占用该端口的进程就可以了)

  2.5 连接测试手机真机,cmd输入adb devices 验证 devices连接成功

补充:cmd下输入adb shell  进入android的linux系统

3、appium配置

  

4、运行appium不报错,进入debug状态证明配置没问题了

5、eclipse写测试用例代码

# -*- coding: utf-8 -*-
import os
from appium import webdriver
import unittest
from time import sleep # Returns abs path relative to this file and not cwd
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
) class MyClass(unittest.TestCase):
'''
classdocs
''' def setUp(self):
'''
Constructor
'''
#################
desired_caps = {}
desired_caps['deviceName'] = 'device'
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.3'
desired_caps['app'] = PATH('D:\\Workspace\\zufangdai_app_appium_test\\yuefuApp\\agent4.0.0_test.apk')
desired_caps['appPackage'] = 'com.bj58.finance.agent'
desired_caps['appActivity'] = 'com.bj58.finance.agent.LuncherActivity'
desired_caps['waitappActivity'] = 'com.bj58.finance.agent.activity.LoginActivity'
desired_caps['unicodeKeyboard'] = 'True'
desired_caps['resetKeyboard'] = 'True'
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) def test_login_success(self):
self.driver.find_element_by_id("com.bj58.finance.agent:id/login_et_username").send_keys("18612180000")
self.driver.find_element_by_id("com.bj58.finance.agent:id/login_et_password").send_keys("58shenqi58")
self.driver.find_element_by_id("com.bj58.finance.agent:id/login_btn_login").click()
sleep(10)
self.driver.find_elements_by_xpath("//android.widget.Button[@resource-id='com.bj58.finance.agent:id/item_btn']")
self.driver.find_element_by_id("com.bj58.finance.agent:id/item_btn").click()
sleep(5) def tearDown(self):
self.driver.quit() if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(MyClass)
unittest.TextTestRunner(verbosity=2).run(suite)

运行结果:

ok

appium执行用例时报错问题:

1、执行时报unknown host service

问题解析:

一般该种情况都是因为连接了多个设备,验证办法:cmd->执行adb devices  看结果是否是多个devices ,如果是这个问题,停掉多余设备,剩余一个设备就可以了。

2、输入框输入是输不进去后台报错

解决办法:

首次运行时会提示让安装appium setting 和另一个与appium运行有关的,点击同意就好了,进入手机输入法会发现多了一个appium。。。。输入法,然后如果运行时出现输入框输不进去东西时,那么在运行前将输入法手动切换成appium。。。那个输入法,然后重新运行用例,输入问题就解决了

3、Error: Requested a new session but one was in progress

问题分析:appium没有正常进入debug模式,或者因为设置了预启动,预启动的应用session,没有正常结束,就执行了测试代码(代码中还包括了应用的启动)

解决方法:1、取消预启动应用选择

启动appium后日志显示正常进入debug模式,再执行测试代码

android真机自动化测试的更多相关文章

  1. 使用ADB无线连接Android真机进行调试

    使用ADB无线连接Android真机进行调试   其实这已经是一个很古老的知识了,记录一下备忘. 准备工作 手机和电脑需要在同一个局域网内 电脑上已经安装好ADB工具,可以是Mac或者Windows ...

  2. 在Mac系统上配置Android真机调试环境

    在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...

  3. Android真机测试,连接到本地服务器的方法

    1. 前言 作为一名Android开发者,不管怎么说,都会经历使用Android真机来测试连接本地服务器这样的事情.这里所说的“本地服务器”大多数时候指的是:搭载有某种服务器软件的PC,例如搭载有To ...

  4. Android 真机投影到PC端,真机投影工具;Vysor

    Vysor可以把Android真机投影到PC端,也就是电脑上:手机端和PC端课同步操作: Vysor是Chrome浏览器的插件,我们想要添加这个插件需要FQ: 从这里可以直接下载:Vysor

  5. Unity Frame Debugger连接Android真机调试

    当用Profiler分析到不是代码导致的性能问题,当前场景最大的性能瓶颈是渲染时,或者自己写的Shader要调试时,都可以用Frame Debugger进行调试. 按下列步骤设置打包,既可以用Prof ...

  6. Unity Profiler连接Android真机调试

    Profiler在Editor模式就可以观看性能消耗,但是毕竟电脑配置高,跟手机真机环境还是有区别.实际开发中的优化还是推荐用真机测试. 因为IOS一般比Android手机的配置高,在Android平 ...

  7. 通过adb shell操作android真机的SQLite数据库

    要通过命令行直接操作android真机上的SQLite数据库,可以直接通过adb shell来完成,不过,前提是必须获得root权限. 另外,android系统其实就是linux的shell,这个应该 ...

  8. Android真机调试手动添加程序包的LogCat

    android真机调试有时候看LogCat 时,有时候那个跑的本程序的LogCat 没有出现而是 出现的是" All messages (no filters) " .此时 的Lo ...

  9. Xamarin Android真机测试报错

    Xamarin Android真机测试报错   Xamarin Android真机测试报错,错误信息为INSTALL_CANCELLED_BY_USER.出现这个错误,通常都是真机上开发者选项设置错误 ...

随机推荐

  1. golang的++与--

    http://godoc.golangtc.com/doc/faq#inc_dec 简单地说, 在golang中++,--操作是语句而不是表达式. 所以a=b++, return x++之类绝对提示错 ...

  2. JavaScript构建(编绎)系统大比拼:Grunt vs. Gulp vs. NPM

    Nicolas Bevacqua进行了一个比较JavaScript构建(编绎)系统的任务.他对三巨头: Grunt, Gulp and NPM进行了比较,并讨论了每种的优缺点. By Nicolas ...

  3. 数据类型 swift

    1整形 Int,Int8,Int16,Int32,Int64 UInt,UInt8,UInt16,UInt32,UInt64 其中Int,UInt始终和当前平台的原生字长相同(32位机,64位机) 查 ...

  4. 20145120 《Java程序设计》第7周学习总结

    20145120 <Java程序设计>第7周学习总结 教材学习内容总结 Lambda表达式 例:Comparator<String> byLength = (name1, na ...

  5. java并发编程:如何创建线程

    原文:http://www.cnblogs.com/dolphin0520/p/3913517.html 一.Java中关于应用程序和进程相关的概念 在Java中,一个应用程序对应着一个JVM实例(也 ...

  6. saltstack知识点

    1.salt '*' sys.doc 显示minion设备上支持的命令   2.salt-call 可以显示比salt更多的信息,可以用来调试,检查,如果需要更详细的信息使用 salt-call -l ...

  7. Bootstrap入门四:代码

    1.内联代码 code: 通过 <code> 标签包裹内联样式的代码片段.灰色背景.灰色边框和红色字体. For example, <code><section>& ...

  8. 7、android的button如何平铺一张图片?

    我想要实现的效果:,但是设计师给的是这样的:. 首先我想到的是这就像windows电脑设置壁纸有什么拉伸.自适应.平铺等类型,这个应该就是传说中的平铺吧. 那么我们知道,一个普通的button,设置他 ...

  9. 【转】C#通过Expression获取指定属性的名称

    原文:http://www.cnblogs.com/powerwu/articles/3393582.html 大家所熟悉的是通过对象属性来访问该属性的值,或是由字符串通过反射来获取属性,并取值.今天 ...

  10. 【CentOS】cp显示进度条

    问题描述: 使用CentOS的cp时,对于大文件的拷贝或者mv,需要等待很长时间,现在需要显示cp或mv的进度 问题解决: Advanced copy 参考官网:http://beatex.org/w ...