最近研究了一下Appium,查看了一些大神的博客,绕过了一些坑,现将从搭建环境到运行真机测试的流程总结如下:

一、搭建环境,这里我参考了虫师的博客,一步一步来,搭好了Appium的环境,如果需要真机测试,android模拟器及以后的部分不用安装,链接如下:

http://www.cnblogs.com/fnng/p/4540731.html

http://www.cnblogs.com/fnng/p/4552438.html

注:以上的东西做完之后,需要在环境变量中添加(安装路径)C:\Program Files (x86)\Appium\node_modules\.bin到path中,再在cmd中运行appium-doctor,检查环境显示成功之后,则完成了环境搭建

二、环境搭建好之后,需要连接手机

连接手机时除了用数据线连到电脑上,还要注意选择手机的开发者模式,之后,在cmd中运行adb devices,如果下发列表中出现设备,则说明连接成功,那一串奇怪的字符就是你的设备号了

三、用Appium启动服务,启动服务的作用就是能让代码在连接的机器上运行,其实用cmd代码运行appium,也能启动,只不过appium这个程序(上方虫师教程中安装的Appiumforwindows)可以比较方便的对服务进行调试,所以选择用它来启动

启动前需要对服务进行设置,点击左上角的安卓小图标,进行主要的配置:

并且将服务的session配置成可重写(非必要的配置)

到这里服务就配置好了,点击右上角的三角进行开启即可

四、配置下载python中的appium组件

这里很简单,cmd运行  pip install Appium-Python-Client 等待安装完成即可

五、Appium测试用例代码,以百度安装包为例:

from appium import webdriver
import time desired_caps = {
'platformName': 'Android',
'deviceName': '91QECPF5US7G',
'platformVersion': '5.1',
         #将要测试app的安装包放到自己电脑上执行安装或启动,
                如果不是从安装开始,则不是必填项,可以由下面红色的两句直接启动
                'app':'C:\\Users\\shuchengxiang\\Desktop\\shoujibaidu_25580288.apk',
'appPackage': 'com.baidu.searchbox', #红色部分如何获取下面讲解
'appActivity': 'MainActivity',
'unicodeKeyboard': True, #此两行是为了解决字符输入不正确的问题
'resetKeyboard': True #运行完成后重置软键盘的状态  
} driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").clear()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").send_keys('appium测试') driver.find_element_by_id("float_search_or_cancel").click()
driver.find_element_by_id("floating_action_button").click() driver.quit() 获取appPackage和appActivity:
1、在之前配置的android SDK文件中找到这个程序,并双击打开

在连好手机的情况下点击这个按钮,界面上就会显示出当前手机的页面(如果是锁屏状态则显示黑屏)

界面加载出来之后,加入我们想定位百度一下的文本框,那么吧光标移动到上面点击一下即可,下图框出的部分为我们需要的信息:

通过这个信息我们知道,对于这个包,上方desired_caps字典中appPackage的值应填写为 com.baidu.search

而代码中的定位部分的id为com.baidu.searchbox:id/baidu_searchbox,或填写baidu_searchbox

例:driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()

2、appActivity的获取:

先让百度在手机中运行起来,然后在cmd中输入:adb shell dumpsys activity activities (获取当前所有的活动),搜索结果如下:

上方将所有进程显示出来,活动进程很多比较难找,这里知道package名称,可以在结果中进行查找,得到appActivity的值为MainActivity

关于这里的定位还有其他方法,详情参看大神的博客:http://blog.csdn.net/shyu1989/article/details/51730214

到这里,上边代码需要的所有内容就已经填写完了,Appium服务启动成功之后,运行代码,即可看到效果(手机不要锁屏哦)

												

Appium+Python入门学习总结的更多相关文章

  1. python入门学习:9.文件和异常

    python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件  首先创建一个pi_ ...

  2. python入门学习:8.类

    python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类   面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...

  3. python入门学习:7.函数

    python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数   使用关键字def ...

  4. python入门学习:6.用户输入和while循环

    python入门学习:6.用户输入和while循环 关键点:输入.while循环 6.1 函数input()工作原理6.2 while循环简介6.3 使用while循环处理字典和列表 6.1 函数in ...

  5. python入门学习:5.字典

    python入门学习:5.字典 关键点:字典 5.1 使用字典5.2 遍历字典5.3 嵌套 5.1 使用字典   在python中字典是一系列键-值对.每个键都和一个值关联,你可以使用键来访问与之相关 ...

  6. python入门学习:4.if语句

    python入门学习:4.if语句 关键点:判断 4.1 一个简单的测试4.2 条件测试4.3 if语句 4.1 一个简单的测试   if语句基本格式如下,注意不要漏了冒号 1if 条件 :2     ...

  7. python入门学习:3.操作列表

    python入门学习:3.操作列表 关键点:列表 3.1 遍历整个列表3.2 创建数值列表3.3 使用列表3.4 元组 3.1 遍历整个列表   循环这种概念很重要,因为它是计算机自动完成重复工作的常 ...

  8. python入门学习:2.列表简介

    python入门学习:2.列表简介 关键点:列表 2.1 列表是什么2.2 修改.添加和删除元素2.3 组织列表 2.1 列表是什么   列表,是由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...

  9. Python入门学习:1.变量和简单的数据类型

    python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用   变量,顾名思义是一个可变的量, ...

随机推荐

  1. 通过gitweb管理Puppet配置(nginx版本+lighttpd版)

    Puppet路径为:/etc/puppet 软件版本:gitweb-1.7.1-3.el6_4.1.noarch git-1.7.1-3.el6_4.1.x86_64 fcgi-2.4.0-12.el ...

  2. etcd命令

    etcdctl支持下面列出来的命令,基本上可以分为数据库操作和非数据库操作,可以查看etcdctl README.md来了解更多 ➜ ~ etcdctl -hNAME: etcdctl - A sim ...

  3. .NET牛人养成计划

    六大喜讯:(1)对于小型平板等授权免费(2)编译平台Rosly开源,ASP.NET全系平台开源(ASP.NET,Web API):ASP.NET跨平台,Mono,让ASP.NET运行在Linux和Un ...

  4. 使用LookAndFeel为界面更换皮肤

    ----------------siwuxie095                             在 Windows 系统中,默认的 Java 运行环境(JRE)会为当前的窗体程序 指定一 ...

  5. robot framework结合Jenkins(一)

    一.CI与Jenkins介绍: 1.持续集成(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化 ...

  6. Java静态导入

    Java静态导入 静态导入的语法是: import static ...; 静态导入的好处就是可以简化一些操作,例如System.out.println(…);就可以将其写入一个静态方法 import ...

  7. 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备

    在尝试内核开发之前,需要对内核有个整体的了解. 主要内容: 获取内核源码 内核源码的结构 编译内核的方法 内核开发的特点 1. 获取内核源码 内核是开源的,所有获取源码特别方便,参照以下的网址,可以通 ...

  8. IPMITOOL 配置BMC用户设置

    IPMITOOL 配置BMC用户设置 本文档共介绍5条ipmi设置user的命令,这些命令需要使用root权限才能使用,其中- H为需要操作的BMC ip,-I lanplus为使用rmcp+协议发送 ...

  9. 简单的html兼容(参考js和css的常规写法)

    参考往常css/js的浏览器选择加载 <!--[if lte IE 8]> <link rel="stylesheet" href="IEBrower. ...

  10. 【MYSQL】删除数据后自动增长列归0的问题

    在清空数据表后发现自动增长id列在新增数据后仍然会按照之前的顺序生成 强迫症,就是想清空数据后让id从0开始,于是百度 执行以下sql语句可以让自动增长列归0 truncate table 表名 这是 ...