Appium 自动化测试
使用 Appium 在 PandaTest 上执行自动化测试
什么是 Appium?
Appium 是一个开源的跨平台自动化测试框架,支持 Android 和 iOS 应用的 UI 自动化测试。
支持的语言
PandaTest 支持多种编程语言编写 Appium 测试脚本:
- Python
- Java
- JavaScript
- Ruby
快速开始
安装依赖
Python:
pip install Appium-Python-ClientJava (Maven):
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>8.5.1</version>
</dependency>JavaScript:
npm install webdriverio配置 Capabilities
连接 PandaTest 云端设备需要配置以下 Capabilities:
Python 示例:
from appium import webdriver
from appium.options.android import UiAutomator2Options
options = UiAutomator2Options()
options.platform_name = 'Android'
options.device_name = 'PandaTest Device'
options.app = '/path/to/your/app.apk'
# PandaTest 服务器地址
driver = webdriver.Remote(
'https://appium.pandatest.net/wd/hub',
options=options
)Java 示例:
UiAutomator2Options options = new UiAutomator2Options()
.setPlatformName("Android")
.setDeviceName("PandaTest Device")
.setApp("/path/to/your/app.apk");
AndroidDriver driver = new AndroidDriver(
new URL("https://appium.pandatest.net/wd/hub"),
options
);编写测试用例
# 示例:登录测试
def test_login():
# 找到用户名输入框并输入
username = driver.find_element(by='id', value='com.example:id/username')
username.send_keys('testuser')
# 找到密码输入框并输入
password = driver.find_element(by='id', value='com.example:id/password')
password.send_keys('password123')
# 点击登录按钮
login_btn = driver.find_element(by='id', value='com.example:id/login_btn')
login_btn.click()
# 验证登录成功
welcome = driver.find_element(by='id', value='com.example:id/welcome')
assert '欢迎' in welcome.text在 PandaTest 上运行
方式一:控制台上传
- 进入「自动化测试」页面
- 点击「新建测试」
- 上传测试脚本和 APK
- 选择目标设备
- 点击「开始测试」
方式二:API 调用
curl -X POST https://api.pandatest.net/v1/tests \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "script=@test_login.py" \
-F "app=@app.apk" \
-F "device=xiaomi-13"查看测试报告
测试完成后,可以查看:
- 测试用例执行结果
- 每个步骤的截图
- 失败用例的错误日志
- 设备日志(logcat)
- 测试视频录制
最佳实践
提高测试稳定性的建议:
- 使用显式等待而非固定等待
- 为元素定位添加多种备选策略
- 测试前清理应用数据
- 合理设置超时时间
常见问题
元素定位失败
- 使用 Appium Inspector 确认元素属性
- 检查元素是否在可见区域
- 添加适当的等待时间
测试执行超时
- 检查网络连接
- 增加命令超时时间
- 优化测试脚本逻辑