Appium+Python自动化测试环境搭建
1、安装node.js
(1)、安装node.js
官网下载地址:https://nodejs.org/en/download/
Appium的运行依赖于node.js,所以首先需要安装node.js。下载完成之后,windows用户直接双击即可。
(2)、配置环境变量
在path路径添加node的安装路径,如下图所示:
找到node.exe文件所在目录,如本机所处路径为:E:\Appium\node-v10.16.3-win-x64
将其添加在path变量中后保存。
(3)、检查是否成功
环境变量配置完成后,检查node环境是否成功。
在Windows系统直接输入windows+R键,输入cmd,在命令窗口界面输入node -v
显示对应的node版本,即表示配置成功,可继续往下操作。
2、安装Appium
2.1、命令直接安装
在Windows系统直接输入windows+R键,输入cmd,在命令窗口界面输入:
npm install –g appium
npm install –g appium-doctor
安装后生成Appium图标,找到文件所在的路径,配置环境。例如本机路径:E:\Appium\node-v10.16.3-win-x64\node_modules\appium-doctor。配置方式同上面node.js,将文件所在路径添加到path变量中。
配置完成之后,需要检查Appium是否配置成功。
查询命令:appium –v 显示出具体的Appium版本提示成功。
直接输入appium-doctor,可以查询出一些软件的配置情况,则表示配置成功。如下图所示。
2.2、直接软件安装
官网下载地址:https://github.com/appium/appium-desktop/releases
同理安装完成后需要配置环境变量。
3、安装Jdk
3.1、jdk下载安装
(1)、安装jdk
官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
(2)、在首页最下方选择Java Archive,点击下载Download
(3)、页面跳转后找到Java 8之后并点击下载
(4)、选择对应系统进行文件下载
注意:需要注意需要选择:Accept License Agreement
(5)、完成安装
备注:官网下载时需要登录oracle账号
3.2、配置环境变量
(1)、右键点击我的电脑,选择“属性”
(2)、选择“高级系统设置”
(3)、点击对话框的环境变量
(4)、新建系统变量
(5)、变量名为“JAVA_HOME”,变量值是安装jdk的路径
(6)、设置CLASSPATH变量:“CLASSPATH”变量值为:
““.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;””
(7)、设置path变量:在其值后面继续添加:
“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;”
(8)、配置完成后点击确定。命令检查是否配置成功:
Java、javac、Java –version
4、安装安卓开发工具
4.1、下载安装
(1)、安卓sdk
官网下载地址:http://tools.android-studio.org/index.php/sdk
(2)、安装步骤:
1)、解压 platform-tools_r28.0.2-windows.zip到本地目录
2)、双击SDKManager.exe
3)、在SDK Manager界面中,只勾选:Tools当中Android SDK Tools、Android SDK Platform-tools、Android SDK Build-tools、Extras目录。其它的一概不勾选。默认选中的请注意取消勾选!!!!
备注:打开SDK Manager,默认会选中安卓sdk,需要将其取消
4.2、配置环境变量
(1)、添加ANDROID_HOME环境变量,配置sdk根目录
(2)、在path变量中添加三项内容
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
%ANDROID_HOME%\build-tools\28.0.3
(3)、安装完成后输入adb version检查是否安装成功
5、安装Python及Pycharm
5.1、安装Python
(1)、Python下载
官网地址:https://www.python.org/getit/
(2)、找到相应版本点击download下载解压
(3)、配置path变量
(4)、环境变量配置完成后,输入命令检查是否配置成功
python
5.2、安装Pycharm
(1)、Pycharm下载
官网地址:https://pycharm.en.softonic.com/
(2)、点击download下载
(3)、解压后安装,安装成功生成图标如下
6、安装Appium Python客户端
(1)、安装Appium python客户端:使用Python命令直接安装
Pip install Appium-Python-Client
7、模拟器连接(目前还没测试真机连接)
(1)、选择夜神模拟器
官网下载地址:https://www.yeshen.com/
(2)、在启动模拟器前,替换模拟器安装路径当中的nox_adb.exe。将%ANDROID_HOME%\platform-tools目录下的adb.exe拷贝到桌面,更改名称为nox_adb.exe
(4)、将第一步中的nox_adb拷贝到夜神模拟器安装目录下,替换原来的文件,替换之后启动模拟器。
(5)、输入命令adb devices
需要输入:adb connect 127.0.0.1:62001
则表示连接模拟器成功。
常见模拟器:
mumu模拟器:adb connect 127.0.0.1:7555
海马玩模拟器:adb connect 127.0.0.1:26944
逍遥安卓模拟器:adb connect 127.0.0.1:21503
夜神玩模拟器:adb connect 127.0.0.1:62001
8、App代码
(1)、启动Appium;
(2)、点击启动服务器
(3)、启动Pycharm ;一个简单代码
import os
import time
from appium import webdriver
apk_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) # 获取当前项目的根路径
print(apk_path)
desired_caps = {}
desired_caps['platformName'] = 'Android' # 设备系统
desired_caps['platformVersion'] = '5.1.1' # 设备系统版本
desired_caps['deviceName'] = '127.0.0.1:62001' # 设备名称
# desired_caps['unicodeKeyboard'] = True
# desired_caps['resetKeyboard'] = True
# desired_caps['noReset'] = True
# 测试apk包的路径
desired_caps['app'] = apk_path + '\\apk\\first.apk'
# desired_caps['appPackage'] = 'com.little.xiaoyv.drilling'
# desired_caps['appActivity'] = 'com.little.xiaoyv.drilling.ui.SplashActivity'
# 如果设置的是app包的路径,则不需要配appPackage和appActivity
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动app
print("Successfully!")
time.sleep(3)
driver.find_element_by_id('com.little.xiaoyv.drilling:id/rigisterTextView').click()
time.sleep(2)
driver.find_element_by_id('com.little.xiaoyv.drilling:id/id').send_keys('123456789')
driver.find_element_by_id('com.little.xiaoyv.drilling:id/account').send_keys('123456789')
driver.find_element_by_id('com.little.xiaoyv.drilling:id/password').send_keys('123456789')
driver.find_element_by_id('com.little.xiaoyv.drilling:id/do_password').send_keys('123456789')
driver.find_element_by_id('com.little.xiaoyv.drilling:id/email_sign_in_button').click()
time.sleep(2)
driver.find_element_by_id('com.little.xiaoyv.drilling:id/id').send_keys('123456789')
driver.find_element_by_id('com.little.xiaoyv.drilling:id/password').send_keys('123456789')
driver.find_element_by_id('com.little.xiaoyv.drilling:id/email_sign_in_button').click()
print("Successfully!")
time.sleep(2)
driver.quit()
(4)、代码执行过程中可以在Appium中查看日志
(5)、视频文件(暂时未上传)