目录
- 1. Appium Inspctor 功能
- 2. Appium inspector 页面结构
- 3. 使用Appium Inspctor 进行用例录制
- 3.1 获取 app 的信息
- 3.2 配置待测应用
- 3.3 使用Appium Inspector进行自动化脚本录制
- 3.3.1 操作步骤
- 3.3.2 自动化测试用例结构分析
- 3.3.2.1 Appium Inspector生成用例脚本
- 3.3.2.2 对Appium Inspector生成用例脚本进行优化
- 3.3.2.3 完整代码
前言:
本文为在霍格沃兹测试开发学社中学习到的一些技术写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 😘
⁉️ 提醒:
appium-desktop 版本>1.22后,appium inspctor和appium-desktop 分离,需要单独下载安装并进行相关配置。
appium-inspector 下载地址:https://github.com/appium/appium-inspector/releases
appium-inspector 安装教程:https://blog.csdn.net/delia_1/article/details/122247259
1. Appium Inspctor 功能
- UI 分析
- 录制用例
- 元素查找测试
- Attcah 已有的 session
- 云测试
2. Appium inspector 页面结构
功能键说明(与图中标记序号匹配):
Native App Mode
:原生应用模式Web/Hybrid App Mode
:网页/混合应用模式SelectElements
:选中元素,查看层级和属性Swipe By Coordinates
:通过坐标点滑动Tap By Coordinates
:通过坐标点点击Back
:返回Refresh Source & Screenshot
:刷新页面StartRecording
:开始录制脚本Search for element
:搜索元素Quit Session & Close Inspector
:退出当前 Session
3. 使用Appium Inspctor 进行用例录制
3.1 获取 app 的信息
- 两种方法获取app入口:
- 方法一:通过 logcat 日志获取
#mac/Linux:
adb logcat ActivityManager:I | grep "cmp"
#Windows:
adb logcat ActivityManager:I | findstr "cmp"
#先执行命令,后启动目标应用
示例1:Windows系统下获取Api Demos的app入口
- 方法二:通过 aapt 获取
#mac/Linux:
aapt dump badging 安装包路径 | grep launchable-activity
#Windows:
aapt dump badging 安装包路径 | findstr launchable-activity
示例2:Windows系统下查看 Api Demos的app入口
2. App启动应用命令:
adb shell am start -W -n <package-name>/<activity-name> -S
3.2 配置待测应用
-
platformName
:平台,Android/iOS -
deviceName
:设备名- 使用命令
adb devices
可以获取到设备名称
- 使用命令
-
appPackage
:应用的包名 -
appActivity
:应用的页面名 Activity -
noReset
: 防止清空缓存信息
3.3 使用Appium Inspector进行自动化脚本录制
3.3.1 操作步骤
-
下载官方 Demo apk(https://github.com/appium-boneyard/sample-code)
-
安装 API Demo.apk
-
录制用例:
- 待测应用配置好后,使用Appium Inspector连接移动端设备
- 连接成功后,点击录制按钮(图中1标记的按钮)
- 在Appium Inspector中,选中 【OS】元素,点击Tap按钮,进行点击操作,进入下个界面
- 选中【Morse Code】元素,点击Tap按钮,进行点击操作,进入下一个界面
- 选中输入框,点击Send Keys按钮,输入内容【测试人】
- 点击Appium Inspector上的Back按钮,返回上一个页面
- 再进行返回上一个页面的操作
- 最后返回到app首页
3.3.2 自动化测试用例结构分析
3.3.2.1 Appium Inspector生成用例脚本
el1 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="OS")
el1.click()
el2 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="Morse Code")
el2.click()
el3 = driver.find_element(by=AppiumBy.ID, value="io.appium.android.apis:id/text")
el3.send_keys("测试人")
driver.back()
driver.back()
driver.back()
3.3.2.2 对Appium Inspector生成用例脚本进行优化
- 添加 capability 信息
- 初始化
webdriver
,添加setup
和teardown
- 添加隐式等待和
noReset
属性增强用例稳定性 - 添加断言
❗ 注意:
- selenium 版本建议 3.141.0
- appium-python-client 版本建议 1.2.0
3.3.2.3 完整代码
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
class TestXueQiu:
def setup(self):
# 创建一个字典
desire_cap = {}
# 平台
desire_cap['platform'] = 'Android'
# 设备名
desire_cap['deviceName'] = '127.0.0.1:7555'
# app 包名
desire_cap['appPackage'] = 'io.appium.android.apis'
# app 页面名
desire_cap['appActivity'] = '.ApiDemos'
desire_cap['noReset'] = 'true'
self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desire_cap)
self.driver.implicitly_wait(10)
def teardown(self):
# 回收session
self.driver.quit()
def test_api_demo(self):
"""
1、打开 API demo apk
2、点击 OS 控件
3、点击 Morse Code 控件
4、在搜索框中输入 测试人
5、返回到第一页
6、断言
:return:
"""
# 点击 OS 控件
self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"OS").click()
# 点击 Morse Code 控件
self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"Morse Code").click()
# 输入`测试人`
el=self.driver.find_element(AppiumBy.ID,"io.appium.android.apis:id/text")
el.clear()
el.send_keys("测试人")
# 返回到app首页
self.driver.back()
self.driver.back()
self.driver.back()
# 选择元素进行断言
result = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"Accessibility")
print(result.text)
# 断言
assert result.text == "Accessibility"
文末说明:
接口测试中我们很容易混淆Session、cookie和token,你知道他们有什么区别吗?快来跟我一起看,一篇文章让你了解三者的区别。😎
⬇⬇⬇⬇⬇⬇⬇
👍👍👍:接口测试经典面试题:Session、cookie、token有什么区别?