使用Minium框架实现小程序界面自动化测试的全面指南

Minium框架介绍:微信小程序UI自动化的利器

  Minium是微信研发团队专为小程序UI自动化测试打造的一款框架。它基于Python语言,继承了unittest的接口,可以直接使unittest中的断言函数。Minium框架中的minium.MiniTest类已经封装好了小程序的启动、配置调用、测试执行等核心功能,让者可以更专注于测试用例的编写,而不用操心底层实现。

环境搭建:三大件搞定

  想要使用Minium框架,首先需要搭建好环境,主要需要以下三样东西:

  1. Python 3.8及以上版本:Minium基于Python,所以Python环境是必不可少的。
  2. 微信者工具:这是小程序的必备工具,Minium框架需要通过它来运行和调试小程序。
  3. 微信版本 ≥ 7.0.7:确保微信客户端版本符合要求,否则可能会出现兼容性问题。

准备知识:从启动到断言

1. 启动小程序

minium.MiniTest类已经封装了小程序的启动、配置调用、测试执行等一系列方法。所以,在编写测试用例时,只需要继承这个类,就可以直接开始写测试用例,无需关心如何启动小程序。

2. 配置文件设置

  Minium框架默认的项目路径和CLI工具路径都为None,因此会加载默认配置。如果你的项目路径和CLI工具路径不是默认的,执行时会报错找不到路径。这时,你需要在项目路径下新建一个config.json文件,将project_path改为你的小程序项目路径,dev_tool_path改为你的CLI工具路径。

3. 命令行运行测试

  你可以通过命令行运行测试,命令格式如下:

minitest -c config.json -m tests.igtest -g
  • -c:指定配置文件
  • -m:指定要执行的用例文件名(注意不需要.py
  • -g:生成测试报告

4. 元素定位技巧

  元素定位是UI自动化测试的核心,Minium提供了多种定位方式:

  • 单选择器定位:可以使用.class或者#id去定位元素。
  • 多选择器定位:如果元素的classid有重名,可以使用.class+#id组合定位。
  • 组合定位:如果多个元素的class相同,id又是变化的,可以使用page.get_element(‘.main-menu-txt’, inner_text=’租赁合同’, text_contains=‘租赁合同’),或者使用page.get_elements(‘.main-menu-txt’)

5. 常用断言方法

  断言是验证测试结果是否符合预期的重要手段,Minium支持以下几种常用断言:

  • assertEqual(first, second, msg):当first == second时,断言成功;否则,断言失败并抛出错误信息。
  • assertTrue(expr, msg):当exprTrue时,断言成功;否则,断言失败并抛出错误信息。
  • assertTexts(texts, selector, msg):如果texts中的每个元素都包含在selector选择器对应的元素文本中,断言成功;否则,断言失败并抛出错误信息。

用例设计模式:PO模式提升可维护性

  在编写测试用例时,采用PO模式(Page Object Mode)可以大大提高代码的可维护性。PO模式通过对界面元素和功能模块的封装,减少冗余代码。当元素定位或功能模块发生变化时,只需要调整封装的代码,而不需要修改大量测试用例。

1. 层级关系

  PO模式通常分为三层:

  • 基础层(BasePage):封装一些Minium的原生方法,如元素定位、框架跳转等。
  • PO层(页面对象层):负责元素定位、获取元素对象、页面操作等。
  • 测试用例层:主要负责业务逻辑和数据驱动。

  三层之间的关系是:PO层继承基础层的类,测试用例层调用PO层。

真机自动化测试:从模拟器到真机

  除了在者工具中控制小程序模拟器,Minium还支持通过远程调试控制真机,实现真机上的自动化测试。

运行环境要求

  确保目标机器上的基础库版本在2.7.3以上。

使用方法

  1. 通过SDK启动:在测试脚本开头使用miniProgram.remote接口启动工具的真机调试功能,调用成功后会在控制台打印二维码。使用目标机器扫码连接后,脚本会继续在真机上执行。
  2. 手工启动:如果工具已经打开并常驻,可以使用automator.connect接口进行连接。先手工启用工具的真机调试功能,再运行测试脚本,即可在真机上测试小程序。

云测服务:高效便捷的自动化测试平台

  微信小程序云测服务是由微信测试团队自主研发,联合WeTest云真机能力推出的一套自动化测试服务。它基于云真机,支持者简单快捷地实现小程序真机自动化测试和性能。

服务平台特色功能

  • 丰富的自动化测试能力:支持智能化Monkey测试、录制回放、自定义测试(Minium)等。
  • 全面的性能能力:包括启动性能专项测试和运行时性能专项测试,帮助者发现性能瓶颈。
  • 支持持续集成:支持多个小程序版本(中版本、体验版本、线上版本),并打通业务DevOps流程。
  • :提供每周额度,满足绝大多数项目的自动化测试需求。

性能能力

  • 启动性能专项:通过多次测试用户首次访问和非首次访问的启动耗时情况,小程序的启动性能瓶颈。
  • 运行时性能专项:在测试过程中自动获取常规性能数据(如启动时间、CPU、内存等),并与现网平均性能数据进行对比,帮助者掌握小程序的性能情况。

支持持续集成

  云测服务支持HTTPS接口提测,任务结束后会通过邮件或通知用户。用户可以根据任务结果定制业务逻辑,如错误告警等。

总结

  Minium框架为微信小程序的UI自动化测试提供了强大的支持,从环境搭建到真机测试,再到云测服务,覆盖了小程序自动化测试的各个环节。通过合理使用Minium框架和PO模式,者可以高效地编写和维护测试用例,提升小程序的稳定性和用户体验。

© 版权声明
THE END
分享