干货| app自动化测试之Andriod微信小程序的自动化测试

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 干货| app自动化测试之Andriod微信小程序的自动化测试

随着微信小程序的功能和生态日益完善,很多公司的小程序项目页面结构越来越多,业务逻辑也越来越复杂。如何做好小程序的自动化测试就成为测试同学普遍面临的一大痛点难题。

微信小程序

小程序内嵌于微信内部,页面包含 Native 原生元素和 Web 元素,相当于混合应用。并且,小程序 Web 部分是基于腾讯的 X5 内核开发的,也是特殊的 WebView。那么,对微信小程序进行自动化测试,包括操作原生应用、WebView、基于微信官方自动化 SDK。

WebView页面元素获取

使用元素定位工具:

  • weditor

weditor安装方式

pip install weditor

参考文档:GitHub - alibaba/web-editor: web editor for atx

使用 chrome inspect 定位时,解析元素是把页面解析为了 html 页面,使用 weditor,则会把页面解析为原生页面,而 Appium 在操作元素时,也是把页面解析成了原生去操作的(切换 webview 除外)

1080×842 235 KB

Mac:

adb shell dumpsys activity top| grep ACTIVITY

Windows:

adb shell dumpsys activity top| findstr ACTIVITY

1080×116 53.4 KB

1080×138 42 KB

from time import sleep
from appium import webdriver
class TestDemo:
    def setup(self):
        self.desire_cap= {
            'automationName': "uiautomator2",
            "platformName": "Android",
            "deviceName": "wechat",
            "appPackage": "com.tencent.mm",
            "appActivity": ".ui.LauncherUI",
            "noReset": "true",
            'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}
        }
        # androidProcess:webview是独立进程的,导致无法获取,需要在 chromeOptions 添加 androidProcess 即可
        self.driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",self.desire_cap)
        self.driver.implicitly_wait(20)
    def teardown(self):
        self.driver.quit()
    def test_demo(self):
        # 刚打开微信时,页面加载时间未知,
        # 需要通过find_element触发隐式等待,防止后续操作失败
        self.driver.find_element_by_xpath("//*[@text='通讯录']")
        size = self.driver.get_window_size()
        # 获取当前屏幕的宽、高
        width = size.get("width")
        height = size.get("height")
        # 滑动打开小程序页面
        self.driver.swipe((width / 2), int((height * 0.2)), (width / 2), (height * 0.8), 2000)
        self.driver.find_element_by_xpath("//*[@resource-id='com.tencent.mm:id/gam' and @text='雪球']").click()
        sleep(5)
        print(self.driver.contexts,'第一次打印')
        self.driver.find_element_by_xpath("//*[@content-desc='搜索股票信息/代码']/..").click()
        self.driver.find_element_by_xpath('//*[@text="请输入股票名称/代码"]').send_keys("阿里巴巴")
        text = self.driver.find_element_by_xpath('//*[@content-desc="阿里巴巴"]')
        assert text

小程序的测试方法有很多种,因为微信版本经常升级,webview的设置也会发生变化,所以可用的测试方法可能会因为每个版本而不同。更多可用测试方法可参考测试人论坛:微信小程序自动化测试常用方法

原文链接

更多技术文章

相关文章
|
23天前
|
前端开发 jenkins 测试技术
自动化测试介绍,为何 Apifox 是进行自动化测试的最佳工具
自动化测试利用专用软件执行测试用例,比手动测试更高效准确。Apifox是一款集API文档、调试与自动化测试于一体的工具,提供一体化解决方案,简化API变更管理。其强大的测试功能支持丰富的断言及测试场景组合,便于模拟真实业务流程。Apifox还提供详尽的测试报告与分析功能,有助于快速定位问题。此外,它能轻松集成到CI/CD流程中,并支持定时任务及多分支管理,极大提升了测试效率和团队协作。相较于其他工具,Apifox以其全面的功能和友好的界面脱颖而出。
|
21天前
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
47 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
21天前
|
前端开发 测试技术 UED
【测试效率对比】深入分析:为何UI自动化测试的投资回报率通常低于接口自动化测试?
这篇文章深入分析了UI自动化测试与接口自动化测试的投资回报率(ROI)问题,指出UI自动化测试在某些情况下的ROI并不低,反驳了没有实施过UI自动化就轻易下结论的观点,并强调了实践的重要性和自动化测试在项目迭代中的作用。
42 1
|
21天前
|
测试技术 数据安全/隐私保护 iOS开发
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
iOS自动化测试方案的第四部分,涵盖了基础环境准备、iPhone虚拟机设置、MacOS虚拟机与iPhone真机的连接,以及扩展问题和代码示例,确保读者能够顺利完成环境搭建并进行iOS自动化测试。
51 0
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
|
2月前
|
运维 测试技术 调度
自动化测试框架的设计与实现自动化运维的利器:Ansible Role 实践指南
【7月更文挑战第31天】随着软件开发周期的缩短和迭代速度的加快,手动软件测试已难以满足效率与质量的双重需求。本文将深入探讨如何设计并实现一个高效的自动化测试框架,以提升测试工作的效率和准确性。我们将通过具体的代码示例,展示框架的核心组件和实现逻辑,帮助读者理解自动化测试框架的构建过程及其在实际项目中的应用价值。
32 5
|
3月前
|
XML 测试技术 数据格式
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(下)
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(下)
46 3
|
3月前
|
Java 测试技术 程序员
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(上)
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(上)
48 1
|
3月前
|
测试技术
Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
|
移动开发 小程序 JavaScript
H5跳转App、跳转小程序
H5跳转App、跳转小程序
1176 0
H5跳转App、跳转小程序
|
11天前
|
Web App开发 Java 视频直播
FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
对于软件、计算机等专业的毕业生,毕业设计需实现实用软件或APP。新颖的设计应结合最新技术,如5G时代的音视频技术。示例包括: 1. **短视频分享APP**: 集成FFmpeg实现视频剪辑功能,如添加字幕、转场特效等。 2. **电商购物APP**: 具备直播带货功能,使用RTMP/SRT协议支持流畅直播体验。 3. **同城生活APP**: 引入WebRTC技术实现可信的视频通话功能。这些应用不仅实用,还能展示开发者紧跟技术潮流的能力。
32 4
FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP