Python + Appium 环境搭建
---恢复内容开始---
Appium自动化公司内部测试培训1-环境搭建
课程目的
一、Python + Appium 环境搭建
课程内容
1 安装前准备工作

搭建环境所需要的安装文件已经下载好,从SVN上获取即可,解压,如下

2 Appium环境搭建
Appium是一个开源的,适用于原生或者移动网络和混合应用程序在 iOS 和 Android 平台上的的开源自动化测试框架。
2.1 安装Node.js


点击安装文件,下一步下一步直接安装,安装成功后,输入cmd打开windows的命令提示符,输入node -v , 可以看到node.js的版本,见截图:

出现以上,表示第一步安装安装成功。
2.2 安装JDK
点击下面文件安装


下一步下一步直接安装
本人的安装路径是C:\Program Files\Java\jdk1.7.0_17
安装完成后需要设置环境变量从而使编译器正常使用。右击“计算机”选择“属性”选择左边“高级系统设置”à选择上面“高级”选项卡点击右下角“环境变量”按钮。
接下来弹出的对话框会出现用户变量和系统变量。用户变量对当前登录账户有效,系统变量对所有用户都有效,读者可根据需要设置。
环境变量配置的方法/步骤:
1. 在系统变量里点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径,在这里就填写“C:\Program Files\Java\jdk1.7.0_17”。
2. 在系统变量里点击新建变量名填写CLASSPATH,变量值填写“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”,注意不要忘记前面的点和中间的分号。
3. 在系统变量里找到Path变量,这是系统自带的,不用新建。双击Path,由于原来的变量值已经存在,故应在已有的变量后加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”。注意前面的分号。
验证的方法:在运行框中输入cmd命令,回车后输入javac,按回车出现以下画面

2.3 Android 环境的搭建

把 adt-bundle-windows-x86_64-20140702 压缩包解压,改名:adt
例如:我解压到e盘

Android环境变量的配置:
1. 配置ANDROID_HOME
“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建.

2. 在path中加入%ANDROID_HOME%\platformtools;%ANDROID_HOME%\tools;配置后环境变量后
环境变量验证:cmd打开window的命令提示符,输入android -h

2.4 安装.NET Framework 4.6

双击,下一步下一步直接安装。
备注:如果本机已经安装了,就不需要再安装。
2.5 安装Appium服务端

解压文件,双击安装文件进行默认路径安装
C:\Program Files (x86)\Appium

环境变量配置:
在path中加入 C:\Program Files (x86)\Appium\node_modules\.bin;
验证:
cmd打开命令提示符,输入appium-doctor,见截图:

安装完之后,在桌面或应用程序里启动Appium服务端,点右上角里启动Appium 服务端 或者在DOS下输入appium 启动。


2.6 安装Appium客户端
输入cmd打开windows的命令提示符,输入
pip install -U Appium-Python-Client

备注:
以上操作是基于已经安装python 和 pip 环境,如果是第一次就直接搭建手机端的环境,还需先安装以下几个:
1.安装Python

2.安装setuptools

3. 安装pip

到这里python+Appium 的环境就搭建好了。
3 设备(手机或平板)连接电脑
环境搭建好之后,如果需要接入真机进行测试,还需要以下几步操作:
3.1 设备接入电脑的设置


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

如果有输出,就表示连接成功。
3.3 查看手机或平板的packagename 和activity name
第一种方法:
步骤:
1、从DOS切换到adt 路径下: E:\adt\sdk\build-tools\android-4.4W

2.执行 aapt dump badging {本地包完整路径}

3.查看 app-package 名

4. 查看 app-activity 活动名

第二种方法:
在 E:\adt\sdk\tools 下有个 hierarchyviewer 文件,可以查看

备注:root 过的手机或平板,这里是看不到包名和活动名。
3.4 在DOS下启动app
运行命令: adb shell
$ am start -n {包(package)名}/}.{活动(activity)名称}
例如: $ am start -n
4 编写第一个Appium用例


代码实现:
# -*- coding: utf- -*- from appium import webdriver
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.expected_conditions import NoSuchElementException import unittest, time, os global driver class LoginAndroidTests(unittest.TestCase):
def setUp(self): #初始化测试平台
desired_caps={}
desired_caps['platformName']='Android'
desired_caps['platformVersion']='4.4.2'
desired_caps['deviceName']='UE1'
#老师平板
desired_caps['appPackage']='com.uet.teacherspad'
desired_caps['appActivity']='com.uet.teacherspad.activity.common.LauncherActivity' #学生平板
# desired_caps['appPackage']='com.uet.studentpad'
# desired_caps['appActivity']='com.uet.studentpad.activity.LauncherActivity' self.driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps) def test_login(self):
'''登录 ''' time.sleep() #学生登录
# self.driver.find_element(By.ID,'com.uet.studentpad:id/editTxt_login_username').clear()
# self.driver.find_element(By.ID,'com.uet.studentpad:id/editTxt_login_username').send_keys('')
#
# self.driver.find_element(By.ID,'com.uet.studentpad:id/editTxt_login_password').clear()
# self.driver.find_element(By.ID,'com.uet.studentpad:id/editTxt_login_password').send_keys('')
# self.driver.find_element(By.ID,'com.uet.studentpad:id/btn_login_login').click() #老师登录 self.driver.find_element(By.ID,'com.uet.teacherspad:id/editTxt_login_username').clear()
self.driver.find_element(By.ID,'com.uet.teacherspad:id/editTxt_login_username').send_keys('') self.driver.find_element(By.ID,'com.uet.teacherspad:id/editTxt_login_password').clear()
self.driver.find_element(By.ID,'com.uet.teacherspad:id/editTxt_login_password').send_keys('')
time.sleep()
self.driver.find_element(By.ID,'com.uet.teacherspad:id/btn_login_login').click() time.sleep() self.driver.find_element(By.NAME,u'课堂教学').click() time.sleep() self.driver.find_element(By.NAME,u'课堂练习').click() time.sleep() def tearDown(self):
self.driver.quit() if __name__ == '__main__': unittest.main(verbosity=)
---恢复内容结束---
Python + Appium 环境搭建的更多相关文章
- Python+Appium环境搭建
1.python环境搭建,这里就不做过多介绍 2.安装 node.js 2.1.官网下载node.js:https://nodejs.org/en/download/ 2.2.获取到安装文件后,直接双 ...
- (干货分享)mac python+appium环境搭建
因为mac本自带python2.x(不建议卸载,因为本本本身有很多依赖与此),所以装python3的过程极其坎坷,勉强装好后也总是各种报错.这次装appium环境,直接把原来的python3卸了,用h ...
- 2.0 python+appium环境搭建
Python下载地址:链接:https://pan.baidu.com/s/1Z3H8tw8AiBVwpxdcABC7XQ 密码:z66t Pycharm下载地址: 链接:https://pan.ba ...
- Android app自动化测试之Python+Appium环境搭建
1.安装JDK (1)JDK安装时会有两次,一次是jdk,第二次是jre. (2)环境变量配置: 添加JAVA_HOME变量, 值:Jdk的安装路径 添加CLASSPATH变量,值: .;%JAVA_ ...
- Appium python自动化测试系列之appium环境搭建(二)
2.1 基础环境搭建 当我们学习新的一项技术开始基本都是从环境搭建开始,本书除了第一章节也是的,如果你连最基础的环境都没有那么我们也没必要去说太多,大概介绍一下: 1.因为appium是支持andr ...
- 自动化测试 Appium之Python运行环境搭建 Part2
Appium之Python运行环境搭建 Part2 by:授客 QQ:1033553122 实践环境 参见 Appium之Python运行环境搭建 Part1 环境部署 1.安装Android SDK ...
- 自动化测试 Appium之Python运行环境搭建 Part1
Appium之Python运行环境搭建 Part1 by:授客 QQ:1033553122 实践环境 Win7 Python 3.4.0 JAVA JDK 1.8.0_121 node.js8.11. ...
- Appium+python自动化环境搭建(小白适用)
写在前面: 没开始搭建前听好多人说,学习appium80%的人都死于环境搭建,所以一开始很紧张,在搭建环境中也确实遇到了好几个问题,由于之前本人使用app测试经验很少,所以相当于app小白,因此有的问 ...
- 基于Python的Appium环境搭建合集
自动化一直是测试圈中的热聊,也是大家追求的技术方向.在测试中,往往回归测试也是测试人员的“痛点”.对于迭代慢.变更少的功能,就能用上自动化来替代人工回归,减轻工作量. 问题 在分享环境搭建之前,先抛出 ...
随机推荐
- nginx 平滑升级
怎么能在不停止服务的情况下,平滑的升级nginx?下面告诉你答案,其实很简单 1.下载nginx新版本,并解压,进入解压的目录 2.你要执行旧版本的nginx -V来查看旧版本编译的时候,编译了什么模 ...
- 集团公司(嵌入ETL工具)财务报表系统解决方案
集团公司(嵌入ETL工具)财务报表系统解决方案 一.项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包括:金矿.铜矿.房产.化纤等.由于子公司在业务上的差异,子 ...
- ERP-非财务人员的财务培训教(四)------公司/部门的成本与费用控制
一.损益表.资产负责表 二.成本分类 ----成本习性 三.成本核算模式 四.成本控制原则 第四部分 公司/部门的成本与费用控制 一.损益表.资产负责表 项目 Items 产品销售收入 Sal ...
- 两种方法 更改 EBS R12界面LOGO以及内容
from:metalink more: Note 174219.1 - How To Change The Logo In The Oracle Application Menu Note 84975 ...
- 配置SharePoint环境加域提示网络名不可用[已解决]
今天去客户给机器做备机,带着装好SharePoint07的机器跑过去了,先做个LAN,然后连上机器开始工作:首先当然是改ip地址,然后都改好了开始加域,加了好几次,发现都不行,提示"指定的网 ...
- javascript属性访问表达式
属性访问表达式运算得到一个对象属性或一个数组元素的值.js为属性访问定义了2中语法: expression.identifier expression["expression"] ...
- Unity的资源管理
本篇文章翻译自Unity的官方文档,原文地址:https://docs.unity3d.com/Manual/BehindtheScenes.html Unity自动导入资源的同时为你管理这些资源产生 ...
- fastDFS与Java整合上传下载
由于项目需要整合个文件管理,选择使用的是fastDFS. 整合使用还是很方便的. 准备 下载fastdfs-client-java源码 源码地址 密码:s3sw 修改pom.xml 第一个plugin ...
- 深度学习-conv卷积
过滤器(卷积核) 传统的图像过滤器算子有以下几种: blur kernel:减少相邻像素的差异,使图像变平滑. sobel:显示相邻元素在特定方向上的差异. sharpen :强化相邻像素的差异,使图 ...
- pandas数据处理基础——筛选指定行或者指定列的数据
pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 ...