51Testing软件测试论坛

标题: Appium & Python 自动化测试 [打印本页]

作者: TomChen    时间: 2022-9-27 14:10
标题: 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命令,出现版本号则说明安装成功





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、安装依赖库

  1. pip install Appium-Python-Client
复制代码

用 Python 语言编写 appium 自动化测试脚本的客户端工具。


6、python脚本

6.1 登录及退出登录操作

  1. from appium import webdriver
  2. import time
复制代码

##创建一个字典,用于存储设备和应用信息
desired_caps={
#连接的设备信息

  1. “platformName”: “Android”,
  2. “deviceName”: “E6EDU20526024947”,
复制代码


##进行会话的apk信息,包名和Activity名

  1. “appPackage”: “xxxxx”,
  2. “appActivity”: “xxxxxxx”,
复制代码


##一些参数设置

  1. “unicodeKeyBoard”: True
  2. }
复制代码

#与appium session之间建立联系,括号内为appium服务地址
driver = webdriver.Remote(‘http://localhost:4723/wd/hub’,desired_caps)



#一些基于app的操作(包括但不限于点击、输入等,与monkeyDriver所使用的命令相同,都是基于python语言的)
#下面的一些操作是用Appium录制的脚本,appium录制的脚本一般使用byid方法来定位元素

  1. driver.find_element_by_id(“cn.phzdp:id/tv_i_know”).click()
  2. driver.find_element_by_id(“cn.phzdp:id/tv_change_login_type”).click()
  3. driver.find_element_by_id(“cn.phzdp:id/et_input_phone”).send_keys(“15837320000”)
  4. driver.find_element_by_id(“cn.phzdp:id/et_input_pwd”).send_keys(“qqqq2222”)
  5. driver.find_element_by_id(“cn.phzdp:id/tv_login”).click()
  6. driver.find_element_by_id(“com.android.permissioncontroller:id/permission_allow_button”).click()
  7. driver.find_element_by_id(“com.android.permissioncontroller:id/permission_allow_button”).click()
  8. driver.find_element_by_id(“com.android.permissioncontroller:id/permission_allow_button”).click()
复制代码


time.sleep(1) #暂停1秒,需要导入time

  1. driver.find_element_by_id(“cn.phzdp:id/iv_tabIcon4”).click()
  2. driver.find_element_by_id(“cn.phzdp:id/iv_setting”).click()
  3. driver.find_element_by_id(“cn.phzdp:id/tv_logout”).click()
  4. driver.find_element_by_id(“cn.phzdp:id/tv_left”).click()
复制代码










欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2