本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:App自动化 用例录制、结构分析 L1 - 学习笔记 - 测试人社区
验证是否启动成功:
el1 = driver.find_element_by_accessibility_id("OS")
el1.click()
el2 = driver.find_element_by_accessibility_id("Morse Code")
el2.click()
el3 = driver.find_element_by_id("io.appium.android.apis:id/text")
el3.clear()
el3.send_keys("ceshiren.com")
driver.back()
driver.back()
import time
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy
class TestXueQiu:
def setup(self):
desire_cap = {}
# 平台
desire_cap['platform'] = 'Android'
# 设备名
desire_cap['deviceName'] = 'emulator'
# app 包名
desire_cap['appPackage'] = 'io.appium.android.apis'
# app 页面名
desire_cap['appActivity'] = '.ApiDemos'
self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desire_cap)
self.driver.implicitly_wait(10)
def teardown(self):
time.sleep(3)
# 退出应用
self.driver.quit()
def test_api_demo(self):
"""
1、打开 API demo apk
2、点击 OS 控件
3、点击 Morse Code 控件
4、在搜索框中输入 ceshiren.com
5、返回到第一页
6、断言
:return:
"""
# 点击 OS 控件
self.driver.find_element_by_accessibility_id("OS").click()
# 点击 Morse Code 控件
self.driver.find_element_by_accessibility_id("Morse Code").click()
# 输入`ceshiren.com`
self.driver.find_element_by_id("io.appium.android.apis:id/text").clear()
self.driver.find_element_by_id("io.appium.android.apis:id/text").send_keys("ceshiren.com")
# 返回第一页
self.driver.back()
self.driver.back()
self.driver.back()
# 选择元素进行断言
result = self.driver.find_element(MobileBy.XPATH,"//*[@resource-id='android:id/text1'][1]")
print(result.text)
# 断言
assert result.text == "Access'ibility"
# 导入 pip install appium-python-client
from appium import webdriver
# 创建一个字典,desirecapbility
caps = {}
caps["platformName"] = "Android"
# Android 包名和页面名,获取命令:
# mac/linux: adb logcat ActivityManager:I | grep "cmp"
# windows: adb logcat ActivityManager:I | findstr "cmp"
caps["appPackage"] = "io.appium.android.apis"
caps["appActivity"] = ".ApiDemos"
caps["deviceName"] = "emulator-5554"
# 创建driver ,与appium server建立连接,返回一个 session
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
el1 = driver.find_element_by_accessibility_id("OS")
el1.click()
el2 = driver.find_element_by_accessibility_id("Morse Code")
el2.click()
el3 = driver.find_element_by_id("io.appium.android.apis:id/text")
el3.clear()
el3.send_keys("ceshiren.com")
driver.back()
# 返回
driver.back()
# 回收session
driver.quit()
# 导入 pip install appium-python-client
from time import sleep
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
class TestAppDemo:
def setup(self):
# 创建一个字典,desirecapbility
caps = {}
caps["platformName"] = "Android"
# Android 包名和页面名,获取命令:
# mac/linux: adb logcat ActivityManager:I | grep "cmp"
# windows: adb logcat ActivityManager:I | findstr "cmp"
caps["appPackage"] = "io.appium.android.apis"
caps["appActivity"] = ".ApiDemos"
caps["deviceName"] = "emulator-5554"
caps["noReset"] = "true"
# 创建driver ,与appium server建立连接,返回一个 session
# driver 变成self.driver 由局部变量变成实例变量,就可以在其它的方法中引用这个实例变量了
self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
self.driver.implicitly_wait(5)
def teardown(self):
# 回收session
self.driver.quit()
def test_input(self):
# el1 = self.driver.find_element_by_accessibility_id("OS")
el1 = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "OS")
el1.click()
# el2 = self.driver.find_element_by_accessibility_id("Morse Code")
el2 = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Morse Code")
el2.click()
# el3 = self.driver.find_element_by_id("io.appium.android.apis:id/text")
el3 = self.driver.find_element(AppiumBy.ID, "io.appium.android.apis:id/text")
# 清除原有的内容
el3.clear()
el3.send_keys("ceshiren.com")
el3.clear()
# 手动制造关闭应用
sleep(5)
# 启动应用, 热启动,会进入到app 的首页
self.driver.launch_app()
result = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Accessibility").text
# 断言
assert result == "Accessibility"
键 | 描述 | 值 |
platformName | 使用的手机操作系统 | iOS,Android,或者 Firefox0S |
platformVersion | 手机操作系统的版本 | 例如 7.1, 4.4 |
deviceName | 使用的手机或模拟器类型 | iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等等…. 在 iOS 上,使用 Instruments的 instruments -s devices 命令可返回一个有效的设备的列表。在 Andorid 上虽然这个参数目前已被忽略,但仍然需要添加上该参数 |
automationName | 使用哪个自动化引擎 | android默认使用uiautomator2,ios默认使用XCUTest |
noReset | 在当前 session 下不会重置应用的状态。默认值为 false | true, false |
udid | 连接的真实设备的唯一设备编号 (Unique device identifier) | 例如 1ae203187fc012g |
键 | 描述 | 值 |
appActivity | Activity 的名字是指从你的包中所要启动的 Android acticity。他通常需要再前面添加. (例如 使用 .MainActivity 代替 MainActivity) | MainActivity, .Settings |
appPackage | 运行的 Android 应用的包名 | com.example.android.myApp, com.android.settings |
appWaitActivity | 用于等待启动的 Android Activity 名称 | SplashActivity |
unicodeKeyboard | 启用 Unicode 输入,默认为 false | true or false |
resetKeyboard | true or false | |
dontStopAppOnReset | 首次启动的时候,不停止 app | true or false |
skipDeviceInitialization | 跳过安装,权限设置等操作 | true or false |
键 | 描述 | 值 |
bundleId | 被测应用的 bundle ID 。用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app 关键字,但你必须提供 udid 。 | 例如 io.appium.TestApp |
autoAcceptAlerts | 当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择接受( Accept )。默认值 false | true 或者 false |
showIOSLog | true or false |
{
"platformName": "android",
"deviceName": "emulator-5554",
"appPackage": "io.appium.android.apis",
"appActivity": ".ApiDemos"
}
{
"noReset": "true", // 不清空缓存信息
"dontStopAppOnReset": "true", // 首次启动的时候,不停止app
"skipDeviceInitialization": "true", // 跳过安装,权限设置等操作
"unicodeKeyBoard": "true" // 输入中文
}
# 方式一:
self.driver = webdriver.Remote
("http://127.0.0.1:4723/wd/hub", desire_cap)
# 方式二:
self.driver.launch_app()
self.driver.find_element_by_accessibility_id('SomeAccessibilityID').clear()
self.driver.quit()
页面更新:2024-05-01
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号