appium应用简介

appium应用篇,简单介绍自己工作中用到的一些appium应用。

Appium等待类型

固定时间等待

1
2
3
import time

time.sleep(3)

固定等待时间3秒,强制等待,必须等完3秒之后才会进行下一步操作。

隐式等待

1
driver.implicitly_wait(5)

隐式等待的好处是不用想固定时间(time.sleep())一样死等固定时间,可以在一定程度上提高执行效率,但是这种等待方式也是需要等页面所有元素都加载完成才会去进行下一步操作,例如有的时候,页面你需要的元素已经加载完成,但是必须还是要等待个别资源加载完才会执行下一步,一定程度上来说还是效率降低。

显示等待

1
2
3
4
from selenium.webdriver.support.ui import WebDriverWait

WebDriverWait(driver, 10).\
until(lambda x:x.find_element_by_id('com.anmav.cashierdesk:id/tvOpenTable'))

显示等待原理是每隔一段时间(默认0.5秒),执行一次判断条件,如果条件成立,就执行下一步,直到超过设定的最大等待时间,抛出TimeoutException异常

Appium定位弹窗

切换webview

原理和selenium一样,类似于selenium中先获取页面句柄,再切换。

1
2
3
4
driver.contexts

方法一:driver.switch_to.context("contextname") #contextname为想切换到的上下文
方法二:driver.switch_to.context(contexts[1]) # 从contexts里取第二个参数

Appium连接真机

使用真机作为测试机,进行app自动化测试(android)步骤:

adb连接真机

首先是本地PC连接到真机,保证真机所在网段PC可以ping通(局域网或者同一WiFi)

1
2
{lamb} adb connect 192.168.0.194:9555
connected to 192.168.0.194:9555

进入cmd,输入adb连接命名,连接到真机

起appium服务

本地PC装有appium-desktop,直接启动appium-desktop,即完成appium服务启动

运行自动化测试脚本

配置:

1
2
3
4
5
6
7
8
9
10
self.desired_caps = {}
self.desired_caps['platformName'] = 'Android'
self.desired_caps['platformVersion'] = '6.0.1'
self.desired_caps['deviceName'] = 'Android Emulator'
self.desired_caps['app'] = '‪G:/apk/1.2.5/test_release_v1.2.5.apk'
self.desired_caps['noReset'] = True
self.desired_caps['appPackage'] = 'com.anmav.test'
self.desired_caps['appActivity'] = 'com.anmav.test.login.activity.LoginActivity'

self.driver = webdriver.Remote('http://localhost:4723/wd/hub', self.desired_caps)

之后再加上用户名,密码等信息输入,即可完成远程真机app自动安装,登录。

文章目录
  1. Appium等待类型
    1. 固定时间等待
    2. 隐式等待
    3. 显示等待
  2. Appium定位弹窗
    1. 切换webview
  3. Appium连接真机
    1. adb连接真机
    2. 起appium服务
    3. 运行自动化测试脚本
|