|
Appium & Python 自动化测试
参考: https://blog.csdn.net/qq_16206535/article/details/79586818
目录
一、Appium安装
1、安装JDK(1.8.0)并配置环境
2、安装Andorid
3、安装appium
4、安装python和pycharm
二、Appium Desktop使用
1、开启Appium
2、Appium Session
3、开启Appium Server
4、生成脚本
5、appium工作原理
6、python脚本
一、Appium安装
1、安装JDK(1.8.0)并配置环境
1、JDK文件下载安装
下载JDK文件,点击运行安装
2、配置环境
(1)新建一个名为“JAVA_HOME”的环境变量,变量值为JDK的安装路径
(2)选择Path,点击下方的“编辑”按钮,在弹出的窗口中添加如下信息:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
(3)新建一个名为“classpath”的环境变量,变量值为:
%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
3、在CMD窗口输入java -version进行验证,若出现JDK版本号则证明安装成功
2.安装Andorid
2.1、安装Andorid SDK(建议使用29版本)
1、下载Andorid SDK文件,点击进行安装(默认安装到C盘)
2、安装完SDK之后,双击Andorid SDK Manager,在Andorid SDK Manager中安装相关工具
3、选择所需要的tools(默认图中前三个),点击红框中的按钮进行安装(这个安装过程时间较长)
注:链接文件中有已经下载好的sdk,直接解压就可以配置系统环境了,截图为在Andorid SDK Manager安装相关工具操作
2.2、安装Andorid Studio
1.下载Andorid Studio,安装,并新建一个项目,下载相关软件。(包括adb)
2.把 apksigner.jar 从 C:\Users\Administrator\AppData\Local\Android\android-sdk\build-tools\32.0.0\lib
拷贝到:C:\Users\Administrator\AppData\Local\Android\android-sdk\platform-tools
3.环境配置
(1)新建ANDROID_HOME变量,变量值为Andorid SDK的路径
(2)Path变量中设置参数值为:
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
(若在一行则两个值中间有分号,不在一行则没有分号)
4.在CMD中输入adb命令,出现版本号则说明安装成功
3、安装appium
1、下载appium-desktop文件,点击进行安装
2、配置相关环境变量
4、安装python和pycharm
1、先安装python-3.9.0(32位和64位按照自己电脑配置进行选择)
2、再安装pycharm
二、Appium-Desktop使用
1、开启Appium
1、安装完毕之后,点击桌面图标进行运行
2、Simple为基础设置、Advanced为高级设置、Presets为预设(用于保存在Advance中设置的参数)
一般保持默认值(host和port保持默认值)
3、点击Start Server v1.18.0开启Appium
2、Appium Session
3、开启Appium Server
4、生成脚本
可在左侧app页面使用选择工具选择相应元素,在使用Select Element内的工具生成脚本
5、appium工作原理 -使用python client 发送http(专业指“Json Wire Protocol”)指令到appium,appium 通过adb桥梁发送到Uiautomator2(这里以android为例子)最终在android端执行。
5.1、安装依赖库 - pip install Appium-Python-Client
复制代码用 Python 语言编写 appium 自动化测试脚本的客户端工具。
6、python脚本 6.1 登录及退出登录操作
- from appium import webdriver
- import time
复制代码##创建一个字典,用于存储设备和应用信息
desired_caps={
#连接的设备信息
- “platformName”: “Android”,
- “deviceName”: “E6EDU20526024947”,
复制代码
##进行会话的apk信息,包名和Activity名
- “appPackage”: “xxxxx”,
- “appActivity”: “xxxxxxx”,
复制代码
##一些参数设置
- “unicodeKeyBoard”: True
- }
复制代码#与appium session之间建立联系,括号内为appium服务地址
driver = webdriver.Remote(‘http://localhost:4723/wd/hub’,desired_caps)
#一些基于app的操作(包括但不限于点击、输入等,与monkeyDriver所使用的命令相同,都是基于python语言的)
#下面的一些操作是用Appium录制的脚本,appium录制的脚本一般使用byid方法来定位元素
- driver.find_element_by_id(“cn.phzdp:id/tv_i_know”).click()
- driver.find_element_by_id(“cn.phzdp:id/tv_change_login_type”).click()
- driver.find_element_by_id(“cn.phzdp:id/et_input_phone”).send_keys(“15837320000”)
- driver.find_element_by_id(“cn.phzdp:id/et_input_pwd”).send_keys(“qqqq2222”)
- driver.find_element_by_id(“cn.phzdp:id/tv_login”).click()
- driver.find_element_by_id(“com.android.permissioncontroller:id/permission_allow_button”).click()
- driver.find_element_by_id(“com.android.permissioncontroller:id/permission_allow_button”).click()
- driver.find_element_by_id(“com.android.permissioncontroller:id/permission_allow_button”).click()
复制代码
time.sleep(1) #暂停1秒,需要导入time
- driver.find_element_by_id(“cn.phzdp:id/iv_tabIcon4”).click()
- driver.find_element_by_id(“cn.phzdp:id/iv_setting”).click()
- driver.find_element_by_id(“cn.phzdp:id/tv_logout”).click()
- driver.find_element_by_id(“cn.phzdp:id/tv_left”).click()
复制代码
|
|