不使用Appium能否完成移动端Web应用自动化测试?
方案可行性结论
你当前仅调整浏览器窗口尺寸、用Selenium+Robot Framework测试移动端Web应用的方案可以覆盖基础测试场景,没有原则性错误,是否足够使用完全取决于团队的测试覆盖要求,不需要强制切换Appium。
现有方案的适用范围
如果你的测试需求仅包含以下场景,当前方案的性价比非常高:
- 仅验证响应式布局在移动端分辨率下的渲染正确性
- 被测H5没有做基于UA(用户代理)的差异化内容返回
- 被测H5不涉及移动端原生能力调用、移动端特有交互操作
- 测试对执行速度要求高,希望用最低的维护成本覆盖核心流程
你贴的窗口设置代码逻辑本身没有问题,完全可以正常运行。
现有方案的局限性
如果你的测试需求包含以下场景,仅改窗口尺寸的方案会出现测试结果和真实用户体验不符的问题,需要补充优化或者切换方案:
- 被测站点会根据UA判断端侧类型,返回不同的页面内容/跳转不同站点,仅改窗口尺寸不改UA的情况下,你拿到的实际是桌面端页面
- 被测H5需要调用移动端原生能力,比如唤起相机、获取定位、调用支付、触发推送通知等,桌面端浏览器不支持这类能力,测试无法执行
- 被测H5存在大量移动端特有交互,比如触摸滑动、双指缩放、长按、侧滑返回等,Selenium模拟的鼠标操作和真实触摸操作逻辑存在差异,容易出现漏测
- 要求兼容移动端特有浏览器内核,比如Safari、微信X5内核、UC内核等,桌面端Chrome的渲染逻辑和上述内核存在差异,无法覆盖兼容问题
优化建议
如果想在现有方案基础上提升测试覆盖率,不需要直接切换Appium,可以先补充修改UA的配置,示例代码如下:
${mobile_ua} Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1 Open Browser https://sample.com Chrome options=add_argument("--user-agent=${mobile_ua}") Set Window Size 440 717
如果后续需要覆盖更多移动端特有场景,可以优先用Selenium直接启动Chrome自带的移动端模拟模式,成本依然低于Appium;只有当需要测试移动端WebView嵌入场景、真实设备兼容场景时,再考虑切换Appium+模拟器/真实设备的方案。
内容的提问来源于stack exchange,提问作者Kasun Ishanka Yapa
相关产品推荐
相关产品推荐

