Appium手机端测试自动化

  1. 下载Appium与node.js、android-sdk

  2. 配置他们的环境变量
    node环境变量
    node环境变量
    appium环境变量
    在这里插入图片描述
    sdk环境变量
    在这里插入图片描述

  3. 安装appnium的服务端 同时进行对环境变量的设置
    安装appniumd的客户端 pycharm中进行setting中进行
    安装node.js 并进行环境变量的设置
    找到自己的sdk中的tools文件下的 uiautomator

  4. 连接监控器
    在这里插入图片描述

  5. 连接配置设备编号在这里插入图片描述

  6. 启动appium在这里插入图片描述

  7. 在python的第三方库下载Appium-Python-Client
    在这里插入图片描述

  8. 在python中调用
    在这里插入图片描述

from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from time import sleep

# 设置手机参数
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.43.166:5554'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True

""":arg
手机参数对应指标
    desired_caps常用参数:
    platformName         平台的名称:iOS, Android, or FirefoxOS
    platformVersion      设备系统版本号
    deviceName           设备号 IOS:instruments -s devices,Android: adb devices
    app                  安装文件路径:/abs/path/to/my.apk or http://myapp.com/app
    appActivity          启动的Activity
    appPackage           启动的包
    unicodeKeyboard      unicode设置(允许中文输入)
    resetKeyboard        键盘设置(允许中文输入)
"""

# 设置手机配置  写死的
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

  1. 常用定位在这里插入图片描述
  2. 这边使用模拟器测试
    启动后 如果是第一次启动会新添加两个软件 并跳转到控制里边
    在这里插入图片描述
  3. 使用代码进行定位自动化
    在这里插入图片描述
# 开始调用

# 从pc端往移动端安装apk文件 (apk文件路径)
# driver.install_app('F:\ce_shi\雷电模拟器\geeknews_qqtn.apk')

# 删除移动端应用  (包名)
# driver.remove_app('com.codeest.geeknews')

# 通过id定位
driver.find_element_by_id('com.android.settings:id/title').click()
# 点击返回按钮
# 通过class定位
driver.find_element_by_class_name('android.widget.ImageButton').click()
sleep(2)
# 通过text定位
driver.find_element_by_xpath('//*[contains(@text,"WLAN")]').click()
  1. 常用方法
""":arg
swip滑动
 方法:swipe(start_x, start_y, end_x, end_y, duration=None)
  参数:
      1.start_x:起点X轴坐标
      2.start_y:起点Y轴坐标
      3.end_x:  终点X轴坐标
      4.end_y,: 终点Y轴坐标
      5.duration: 滑动这个操作一共持续的时间长度,单位:ms
"""
driver.swipe(216, 1851, 216, 1635, 2000)
""":arg
 方法:drag_and_drop(origin_el, destination_el)
  参数:
      1.origin_el:滑动开始的元素
      2.destination_el:滑动结束的元素
"""
# drag拖拽事件
# WLAN定位
cunchu = driver.find_element_by_xpath("//*[contains(@text,'存储')]")
# 存储定位
wlan = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
# scroll滑动事件
driver.drag_and_drop(cunchu, wlan)
""":arg
手指按操作
"""
wlan = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
""":arg
  # 通过元素定位方式按下屏幕
      el = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
      TouchAction(driver).press(el).release().perform()

      # 通过坐标方式按下屏幕,WLAN坐标:x=155,y=250
      # TouchAction(driver).press(x=155,y=250).release().perform()
      
      press定的位置  wait 等待时间  release 退出
"""
TouchAction(driver).press(wlan).wait(5).release().perform()

""":arg
long_press 长按操作
方法:long_press(el=None, x=None, y=None, duration=1000)
  参数:
      1.element:被定位到的元素
      2.x:通常会使用元素的X轴坐标
      3.y:通常会使用元素的Y轴坐标
      4.duration:持续时间,默认为1000ms
"""
TouchAction(driver).long_press(wlan,duration=5000).release().perform()
""":arg
模拟手机的滑动操作
  方法:move_to(el=None, x=None, y=None)
  参数:
      1.el:定位的元素
      2.x:相对于前一个元素的X轴偏移量
      3.y:相对于前一个元素的Y轴偏移量
      通过坐标拉
      wait 等待时间
"""
sleep(1)
driver.find_element_by_xpath("//*[contains(@text,'安全')]").click()
sleep(1)
driver.find_element_by_xpath("//*[contains(@text,'屏幕锁定方式')]").click()
sleep(2)
TouchAction(driver).press(x=180, y=1440).wait(1000).move_to(x=-2, y=-720).wait(1000).move_to(x=724, y=2). \
	wait(1000).move_to(x=0, y=716).wait(1000).move_to(x=-322, y=0).wait(1000).move_to(x=0, y=-358).release().perform()
sleep(5)
#返回上一级
driver.back()
# 退出
driver.quit()
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Appium是一种用于自动化测试的工具,可以实现自动安装和操作应用程序。它能够动识别某个目录下是否有应用程序,并自动安装。通过写代码在客户发起请求,请求会传递到Appium服务器,服务器会生成一个bootstrap.jar包,并将其传输到手机中。然后通过bootstrip去转发、分析指令,调用uiautomator底层框架,并传入要调用的控件的ID、属性、方法等。uiautomator自身具备一些自动化的功能,从而实现对整个应用程序的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [appiumUI自动化测试入门(appium+pytest+flask+jenkins)持续自动化测试](https://blog.csdn.net/sinat_30329151/article/details/124899851)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Appium APP UI自动化测试简介与环境搭建](https://blog.csdn.net/weixin_45294964/article/details/111698561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值