51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 621|回复: 0
打印 上一主题 下一主题

[原创] UI自动化测试之inium框架的小程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-11-10 15:40:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 草帽路飞UU 于 2022-11-11 16:14 编辑

、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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 03:56 , Processed in 0.064762 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表