TomChen 发表于 2022-9-27 14:10:05

Appium & Python 自动化测试


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命令,出现版本号则说明安装成功

https://img-blog.csdnimg.cn/9b7b4281dc844c9ab085f2c903d48bcf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAdG9tY2hu,size_20,color_FFFFFF,t_70,g_se,x_16

3、安装appium

1、下载appium-desktop文件,点击进行安装
2、配置相关环境变量
4、安装python和pycharm

1、先安装python-3.9.0(32位和64位按照自己电脑配置进行选择)
2、再安装pycharm

https://img-blog.csdnimg.cn/f4b54352b30b43a2ad9a3da1b955efa8.png

二、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
https://img-blog.csdnimg.cn/0e357c51fdb94868b5decd4ca1ebf62e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAdG9tY2hu,size_20,color_FFFFFF,t_70,g_se,x_16

4、生成脚本
可在左侧app页面使用选择工具选择相应元素,在使用Select Element内的工具生成脚本
https://img-blog.csdnimg.cn/1c823067ec1f46b5b75854854e069c3c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAdG9tY2hu,size_20,color_FFFFFF,t_70,g_se,x_16

5、appium工作原理-使用python client 发送http(专业指“Json Wire Protocol”)指令到appium,appium通过adb桥梁发送到Uiautomator2(这里以android为例子)最终在android端执行。

https://img-blog.csdnimg.cn/ceb36d4a901849cca7e1f063e0dd04cb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAdG9tY2hu,size_20,color_FFFFFF,t_70,g_se,x_16

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秒,需要导入timedriver.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()




页: [1]
查看完整版本: Appium & Python 自动化测试