APP移动端自动化测试(二)Appium介绍和使用及定位方法

一.Appium介绍

1.官网:www.appium.io

2.Appium是由node.js的express框架写的HTTP Server,Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库,Android系统的UIAutomator框架

3.运行第一个脚本

from appium import webdriver

import time


caps={}
caps['platformName']='Android' #平台名称
caps['platformVersion']='5.1.1' #设备的系统版本号
caps['deviceName']='127.0.0.1:62001' #设备名称(可以随意写,取adb devices中第一台设备)
caps['appPackage']='com.android.settings' #包名
caps['appActivity']='.Settings' # activity


driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps)

time.sleep(5)

driver.quit()

4.Appium工作原理 

二.Appium参数介绍 

 

 

三.Appium Desktop界面介绍

默认ip  0.0.0.0 监听所有信息

1.启动Appium

2.Capability

配置Appium会话,是一组设置的键值对的集合,其中键对应用设置的名称,值对应设置的值

录制 并进行操作,选择语言

代码转换,复制到粘贴板

获取当前屏幕信息

from appium import webdriver
caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "5.1.1"
caps["deviceName"] = "127.0.0.1:62001"
caps["appPackage"] = "com.android.settings"
caps["appActivity"] = ".Settings"

driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps)

# driver.find_element_by_id('com.android.settings:id/title').click()
# driver.find_element_by_class_name('android.widget.TextView').click()
# 定位一组同样classname的元素
ele_list=driver.find_elements_by_class_name('android.widget.TextView')
# print(ele_list)
# print(len(ele_list))
#
for i in ele_list:
	# print(i.text)#只获取当前屏的信息
	if i.text=='WLAN':
		i.click()
		break

安装本地应用

from appium import webdriver
import time

caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "5.1.1"
caps["deviceName"] = "127.0.0.1:62001"
caps["appPackage"] = "com.android.settings"
caps["appActivity"] = ".Settings"

driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps)
#关闭当前操作的app
# driver.close_app()
#安装应用
# driver.install_app(r'D:\python_projects\05期接口自动化\test.apk')
# time.sleep(5)
#卸载应用
# driver.remove_app('com.youba.calculate')

# 判断是否安装了应用,返回 True 或 False
is_installed=driver.is_app_installed('com.youba.calculate')
# 判断计算器是否安装在手机上。如果安装了 不做处理,如果没安装 安装计算器到手机
if not is_installed:
	driver.install_app(r'D:\python_projects\05期接口自动化\test.apk')

# 脚本内启动其他app
driver.start_activity('com.youba.calculate','.MainActivity')
# 需要加等待时间再进行定位,否则可能会定位失败
time.sleep(3)
driver.find_element_by_id('com.youba.calculate:id/btn_one').click()
# driver.quit()

四.uiautomatorviewer的使用方法

所在目录

导入UI和XML、刷新按钮、第三个几乎不用、导出UI和XML

 

from appium import webdriver
import time

caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "5.1.1"
caps["deviceName"] = "127.0.0.1:62001"
caps["appPackage"] = "com.youba.calculate"
caps["appActivity"] = ".MainActivity"

driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps)

# uiautomatorviewer中获取元素的ID
driver.find_element_by_id('com.youba.calculate:id/btn_one').click() #点击 1
driver.find_element_by_id('com.youba.calculate:id/btn_plus').click() #点击 +
driver.find_element_by_id('com.youba.calculate:id/btn_two').click() #点击 2
driver.find_element_by_id('com.youba.calculate:id/btn_equal').click() #点击 =
# 获取结果文本
res_text=driver.find_element_by_id('com.youba.calculate:id/tv_display').text
# 断言,计算结果是否正确
assert res_text == '3'

获取包名和activity

方法一

1.将准备测试的APK放到D盘某个目录,如D:\test

2.打开cmd,输入指令aapt dump badging D:\test\xxx.apk(APK的全名,如手机淘宝.apk)

3.以手机淘宝.apk为例,如下图


方法二

adb shell pm list package -f #将获取手机内所有 apk 对应的包名和路径

adb shell pm list package -3 -f #获取第三方 apk 的包

adb shell dumpsys window w | findstr \/ | findstr name= #切换到应用的任意界面

adb shell dumpsys window |findstr mCurrent #切换到应用的任意界面

方法三

adb shell

 logcat | grep START

先启动需要查找的 apk, 再敲入以上命令, 找到最后一个 ActivityManager

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值