移动端自动化测试框架Appium

本文介绍了Appium作为移动端自动化测试框架的启动过程和主要功能,包括App的基础操作API、元素定位、事件操作,以及高级的手势模拟如swipe、scroll、drag。此外,还涉及手机操作API,如发送按键、管理通知栏、获取网络状态和截图等。
摘要由CSDN通过智能技术生成

启动过程

appium的启动实际上是在本机使用了4723端口开启了一个服务

1. 我们写的 python 代码会访问本机的 appium 服务器,并获取 driver 对象

2. appium 会将我们的 driver 对象调用的方法转化成 post 请求,提交给appium服务器

3. appium 通过接收到的 post 请求发送给手机,再由手机进行执行

# 导模块 
from appium import webdriver 
# 创建一个字典,包装相应的启动参数 
desired_caps = dict() 
# 需要连接的手机的平台(不限制大小写) 
desired_caps['platformName'] = 'Android' 
# 需要连接的手机的版本号(比如 5.2.1 的版本可以填写 5.2.1 或 5.2 或 5 ,以此类推) desired_caps['platformVersion'] = '5.1' 
# 需要连接的手机的设备号(andoird平台下,可以随便写,但是不能不写) 
desired_caps['deviceName'] = '192.168.56.101:5555' 
# 需要启动的程序的包名 
desired_caps['appPackage'] = 'com.android.settings' 
# 需要启动的程序的界面名 
desired_caps['appActivity'] = '.Settings' 
# 连接appium服务器 
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) 
# 退出 
driver.quit()

App基础操作API

import os

from app.util import encode_data, decode_data, get_driver

driver = get_driver()

"3、app是否已安装"
is_installed = driver.is_app_installed('com.example.corel.calc')
# eg:没安装安装,安装了就卸载
if is_installed:
    "2、卸载手机自己安装的app,不能卸载系统的app"
    driver.remove_app('com.example.corel.calc')
else:
    "1、安装apk到手机,支持重复安装进行覆盖,绝对路径"
    driver.install_app(os.getcwd() + os.sep + 'apk' + os.sep + 'com.example.corel.calc_2.1.1023_11.apk')


"""4、发送⽂件到⼿机,eg:将hello写入到手机
    driver.push_file(path, data)
        参数:
            path:⼿机设备上的路径(例如:/sdcard/a.txt)
            data:⽂件内数据,要求base64编码
            Python3.x中字符都为unicode编码,⽽b64encode函数的参数为byte类型,需要先转码;⽣成的数据为byte类型,需要将byte转换回去。"""

data = encode_data('hello')
driver.push_file('/sdcard/abc.txt', data)  # 不指定abc.txt,会生成一个.tmp结尾的临时文件,不便于后续的维护

"5、从手机拉取文件,返回的是base64编码数据"
data = driver.pull_file('/sdcard/abc.txt')   # 返回数据为base64编码
re_data = decode_data(data)
print(re_data)

"6、获取 当前屏幕 元素结构,返回xml字符串,只是当前屏幕(activity页面内容是xml承载的)"
with open('./result/page.xml', 'w') as f:
    f.write(driver.page_source)

driver.quit()
import base64

from appium import webdriver


# 输⼊⽂本内容到⼿机,中文输入支持:
#   1 使用Unicode键盘:'unicodeKeyboard': True
#   2 重置键盘&#x
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值