基于Minium框架的小程序UI自动化测试

发表于:2022-11-07 09:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Skye    来源:稀土掘金

  一、Minium介绍
  Minium是微信研发团队专门为小程序的UI自动化提供的一个测试框架,框架的一些接口继承自unittest, 可以使用unittest中的各种断言函数,语言是基于python的,框架里的minium.MiniTest类已经封装好了小程序的启动、调用配置文件、执行测试用等方法。
  二、环境搭建
  主要是三大件:
  ·Python 3.8及以上
  · 微信开发者工具
  · 微信版本 >= 7.0.7
  三、准备知识
  1. 启动
  minium.MiniTest类里边已经封装好了小程序的启动、调用配置、执行测试计划、关闭等一系列的方法,所以在编写测试用例脚本的时候,定义的类在继承了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. 元素定位
  (1)单选择器定位:一般可以使用.class或者#id去定位到元素
  (2)多选择器定位:如果元素class有重名,id也有相同的,可以使用.class+#id去定位   (3)组合定位:如果有多个元素的class相同,id又是变化的,可以使用page.get_element(‘.main-menu-txt’, inner_text=’租赁合同’, text_contains=‘租赁合同’),或者使用page.get_elements(‘.main-menu-txt’)
  5. 断言
  常用的断言主要有三种:
  (1)assertEqual(first, second, msg)
  first == second时,断言成功,用例结果符合预期
  first != second时,断言失败,抛出错误信息及msg
  (2)assertTrue(expr, msg)
  expr为True,断言成功,用例结果符合预期
  expr为False,断言失败,抛出错误信息及msg
  (3)assertTexts(texts, selector, msg)
  texts中每个元素的值都包含在selector选择器对应的元素文本集合中,则断言成功,否则,断言失败,抛出错误信息及msg
  四、用例设计模式
  对testcase采用分层和数据与脚本解耦的管理模式。
  1. 什么是PO模式
  PO模式,即page object mode,页面对象模式,通过对界面元素和功能模块的封装减少冗余代码,同时在后期维护中,若元素定位或功能模块发生变化,只需要调整页面元素或功能模块封装的代码,提高测试用例的可维护性。
  2. 层级关系
  第一层:基础层BasePage,作用:封装一些minium的原生方法,如元素定位、框架跳转等;
  第二层:PO层,页面对象层,如元素定位、获得元素对象、页面操作;
  第三层:测试用例层,主要负责业务逻辑和数据驱动。
  三层之间的关系:PO层继承基础层的类,测试用例层调用PO层。
  五、真机自动化测试
  小程序自动化除了可以控制开发者工具中的小程序模拟器,也支持通过远程调试控制真机,以达到在真机上进行自动化测试的目的。
  运行环境
  确保目标机器上的基础库版本在2.7.3以上。
  使用方法
  1.通过SDK启动
  可以在测试脚本开头使用?miniProgram.remote?接口启动工具的真机调试功能,调用成功后脚本会在控制台打印二维码。使用目标机器扫码成功连接后,脚本会继续在真机上执行下去。
  2.手工启动
  如果工具是打开常驻并且使用?automator.connect?接口进行连接,那么可以先手工启用工具的真机调试功能后再运行测试脚本,这样就可以将在真机上测试小程序了。
  六、云测服务
  小程序云测服务简介
  MiniTest 微信小程序云测是一套由微信测试团队自主研发,联合 WeTest 云真机能力,共同推出的小程序自动化测试服务。
  服务基于云真机,支持开发者简单快捷地实现小程序真机自动化测试和性能分析等能力。 服务平台特色功能如下:
  ·丰富的自动化测试能力
  · 全面的性能分析能力
  · 支持持续集成,打通业务 Devops 流程
  · 支持第三方服务商
  · 免费使用,提供每周免费使用额度,能满足绝大多数项目自动化测试需求
  自动化测试能力
  1.接入智能化 Monkey 测试、录制回放、自定义测试(minium)
  能力对比:
  2.全面的性能分析能力
  小程序的性能测试主要分为启动时性能测试和运行时性能测试。
  启动性能专项分析
  小程序启动是小程序用户体验中极为重要的一环,启动耗时过长会影响用户体验、造成用户流失。
  云测服务支持小程序启动性能专项测试,无需额外配置接入即用,通过多次测试用户首次访问(需下载代码包)以及用户非首次访问(已下载代码包)两种情况,分析小程序在各个阶段的启动耗时情况,发现启动性能瓶颈。
  运行时性能专项分析
  常规性能数据:在云测服务跑查任意测试时,会自动获取跑查过程中的常规性能数据,如启动时间、CPU、内存等,并且云测服务会将性能测试结果和现网的平均性能数据进行对比,方便开发者掌握小程序的性能情况。
  支持持续集成
  支持多个小程序版本:开发中版本、体验版本、线上版本。
  支持HTTPS接口提测
  任务结束提醒
  云测服务支持用户配置邮箱及手机号信息,测试任务结束会通知到用户,用户可以利用https轮询任务结果,根据任务结果定制业务逻辑,如错误告警等。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号