appium操作

前言

这里以开发者头条APP为例,演示下APP自动化过程

一、操作前准备事项

appium运行的相关环境都配置好后。还要进行一些操作。

1.下载被测试的APP应用。

2.运行appium server,就是点击appium desktop

  • 启动后,点击advanced按钮,勾选选项Allow Session Override。如下图:
  • 点击stat server启动appium server

3.启动被测APP运行环境,要么真实设备,要么模拟器

  3.1连接真实设备,尽量原装数据线连接电脑,否则可能 连不上。

  3.2然后手机要进入开发者模式,USB调试打开

这里举例Genymotion模拟器讲。

把刚才下载的开发者头条APP安装到模拟器中,就是将apk文件从文件管理器拖拽到虚拟手机设备窗口。

扫描二维码关注公众号,回复: 5716202 查看本文章

测试自动化任务:自动登录,需要事先注册账户

二、利用Python编写APP自动化代码并运行

在 pycharm编辑自动化代码

from appium import webdriver
import time,traceback


# 这里定义的 desired_capabilities,作为下面 webdriver.Remote
# 初始化一个webdriver的参数。
# 这些键值对告诉appium server 测试程序希望进行的是什么什么样的测试
# 比如下面 platformName 和 platformVersion 两个配置项
desired_caps ={}
desired_caps['platformName'] = 'Android'--测试平台,不能写错
desired_caps['platformVersion'] = '9'--平台版本,不能写错
#android手机不一定要有,iOS手机一定要有deviceName
desired_caps['deviceName'] ='Huawei'--设备名称

desired_caps['app'] = r'F:\apk\toutiao.apk'--apk文件路径名,如果设备还没此APP,则会安装
#不是根据它的路径而是appid ,也就是这package name
desired_caps['appPackage'] ='io.manong.developerdaily'--apk包名,一定要有,是每个APP的ID,标识该APP

#启动的activity
desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity'--APP默认activity,就是启动页第一次进入的页面
# 一定要有该参数,否则测试过程中无法输入中文
desired_caps['unicodeKeyboard'] = True

#自动化结束后恢复原始数据模样
desired_caps['resetKeyboard'] =True

#保证了App测试前不会清除应用数据,缺省是会清除数据的。
desired_caps ['noReset'] = True
#appium server 认为和客户端之间无响应最大时间 超过将就会停止服务
desired_caps['newCommandTimeout'] = 6000


注意:
如何获取apk包名和启动页activity
方法一:咨询开发
方法二(推荐):进入本地Android SDK中build-tools文件下--打开cmd窗口--执行命令【aapt.exe dump badging apk路径
aapt.exe不是文件夹,所以别忘了输入


#appium server 在这个URI上接受客户端发送的rest API
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

#下面操作自动化登录的过程
try:
driver.implicitly_wait(10)
driver.find_element_by_id('io.manong.developerdaily:id/tab_bar_plus').click()
time.sleep(1)
driver.find_element_by_id("io.manong.developerdaily:id/btn_email").click()
time.sleep(1)

# 输入用户名、密码
ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_email")
ele.send_keys('[email protected]')
ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_password")
ele.send_keys('sdfsdf')

time.sleep(2)
# 点击登录
driver.find_element_by_id('io.manong.developerdaily:id/btn_login').click()
pass

except:
print (traceback.format_exc())


input('**** Press to quit..')
driver.quit()

猜你喜欢

转载自www.cnblogs.com/lixuefang69/p/10628192.html