目录:导读

  • 前言
  • 一、Minium详情
  • 二、环境搭建
  • 三、准备操作
    • 1、启动
    • 2、配置
    • 3、命令行运行
    • 4、元素定位
    • 5、断言
  • 四、用例设计模式
    • 1、PO模式
    • 2、层级关系
  • 五、真机自动化测试
    • 1、运行环境
    • 2、使用方法
  • 六、云测服务
  • 七、自动化测试对比
  • 八、总结

前言

平常我们使用自动化主要是针对 App 端和 Web 端,另外还有两种场景比较少用但是也很重要,分别是:浏览器、微信小程序。

随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序、微信公众号等。小程序项目页面越来越多,业务逻辑也越来越复杂,全手工测试已无法满足快速增长的业务需求。

一、Minium详情

Minium是微信研发团队专门为小程序的UI自动化提供的一个测试框架,框架的一些接口继承自unittest, 可以使用unittest中的各种断言函数,语言是基于python的,框架里的minium.MiniTest类已经封装好了小程序的启动、调用配置文件、执行测试用等方法。

其特点:

支持一套脚本,iOS & Android & 模拟器,三端运行
提供丰富的页面跳转方式,看不到也能去得到
可以获取和设置小程序页面数据,让测试不止点点点
可以直接触发小程序元素绑定事件
支持往 AppSerive 注入代码片段
可以调用部分 wx 对象上的接口

二、环境搭建

主要是三大件:

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层

五、真机自动化测试

小程序自动化除了可以控制开发者工具中的小程序模拟器,也支持通过远程调试控制真机,以达到在真机上进行自动化测试的目的。

1、运行环境

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

2、使用方法

1.通过SDK启动
可以在测试脚本开头使用 miniProgram.remote 接口启动工具的真机调试功能,调用成功后脚本会在控制台打印二维码。使用目标机器扫码成功连接后,脚本会继续在真机上执行下去。

2.手工启动
如果工具是打开常驻并且使用 automator.connect 接口进行连接,那么可以先手工启用工具的真机调试功能后再运行测试脚本,这样就可以将在真机上测试小程序了。

六、云测服务

小程序云测服务简介
MiniTest 微信小程序云测是一套由微信测试团队自主研发,联合 WeTest 云真机能力,共同推出的小程序自动化测试服务。

服务基于云真机,支持开发者简单快捷地实现小程序真机自动化测试和性能分析等能力。 服务平台特色功能如下:

丰富的自动化测试能力
全面的性能分析能力
支持持续集成,打通业务 Devops 流程
支持第三方服务商
免费使用,提供每周免费使用额度,能满足绝大多数项目自动化测试需求

七、自动化测试对比

1.接入智能化 Monkey 测试、录制回放、自定义测试(minium)
能力对比:

测试能力 突出优势 注意事项 适用场景
智能化 Monkey 接入即用,智能化点击,也可通过简单配置页面参数提高覆盖率 不支持输入,上传图片等复杂操作;无法校验页面逻辑 快速冒烟测试
录制回放 零代码生成用例脚本;快速生成用例,效率高 用例调整不如自定义测试灵活 较简单的用例,自动化回归测试
自定义测试 完全定制测试场景;灵活度高,能力全面;支持数据驱动测试(DDT) 需要编写 Python 脚本,有一定的学习成本 较复杂的用例和场景

2.全面的性能分析
小程序的性能测试主要分为启动时性能测试和运行时性能测试
启动性能专项分析

小程序启动是小程序用户体验中极为重要的一环,启动耗时过长会影响用户体验、造成用户流失。 云测服务支持小程序启动性能专项测试,无需额外配置接入即用,通过多次测试用户首次访问(需下载代码包)以及用户非首次访问(已下载代码包)两种情况,分析小程序在各个阶段的启动耗时情况,发现启动性能瓶颈。

运行时性能专项分析
常规性能数据:在云测服务跑查任意测试时,会自动获取跑查过程中的常规性能数据,如启动时间、CPU、内存等,并且云测服务会将性能测试结果和现网的平均性能数据进行对比,方便开发者掌握小程序的性能情况。

支持持续集成
支持多个小程序版本:开发中版本、体验版本、线上版本
支持HTTPS接口提测
任务结束提醒
云测服务支持用户配置邮箱及手机号信息,测试任务结束会通知到用户,用户可以利用https轮询任务结果,根据任务结果定制业务逻辑,如错误告警等。

八、总结

生存是人类第一要务,而欢乐却是生存的唯一原则。欢乐是一个人心灵和精神所表现出来的满足,是最最纯洁和高尚的享受。

人生,最宝贵的就是莫过于光阴。人生,最璀璨的是莫过于事业。愚痴的人,一直想要别人了解他。有智慧的人,却努力的了解自己。

生命是一份空白内容的租约,自主性越强的人生,租约上的条款由自己填写的部分就越多,被动性越强的人生,就会由别人帮你填写。

微信小程序项目实例,minium框架自动化测试实战(全网最详细)相关推荐

  1. mpvue 微信小程序_使用Vue.js开发微信小程序:开源框架mpvue解析

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 成全 责编 | 阿秃 转自 | 美团技术团队企业博客 前言 mpvue是一款使用Vue.js开发微信小程序的前端框架.使用此框架,开 ...

  2. 初尝微信小程序2-基本框架

    基本框架: .wxml :页面骨架 .wxss :页面样式 .js :页面逻辑    描述一些行为 .json :页面配置 创建一个小程序之后,app.js,app.json,app.wxss是必须的 ...

  3. 用Vue.js开发微信小程序:开源框架mpvue解析

    前言 mpvue 是一款使用 Vue.js 开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程 ...

  4. c++小程序代码_# 微信小程序的原生框架和taro对比 ##

    微信小程序的原生框架和taro对比 小程序历史(为什么会出现?) 2007年 iPhone H5 大家知道现在手机端主要是iOS.Android两大系统,实际上在早期有3大系统竞争,还有一个就是诺基亚 ...

  5. 微信小程序项目实例——二维码生成器

    微信小程序项目实例--二维码生成器 文章目录 微信小程序项目实例--二维码生成器 一.项目展示 二.项目核心代码 三.效果展示 文末 项目代码见文字底部,点赞关注有惊喜 一.项目展示 项目是一个简单实 ...

  6. 微信小程序项目实例——手势解锁

    微信小程序项目实例--手势解锁 文章目录 微信小程序项目实例--手势解锁 一.项目展示 二.设置手势.手势解锁 三.手势重置 文末:项目代码 项目代码见文字底部 一.项目展示 这是一款简单实用的手势解 ...

  7. 微信小程序电商项目开发实战漫谈

    原创文章,若转载请于明显处标明出处和相关链接:https://www.toutiao.com/i6567868839856439822/,否则追究其法律责任! 2018年小程序内容电商风口已成,如果我 ...

  8. 微信小程序项目实例——摇色子

    微信小程序项目实例--摇色子 文章目录 微信小程序项目实例--摇色子 一.项目展示 二.核心代码 三.效果图 文末 项目代码见文字底部,点赞关注有惊喜 一.项目展示 摇色子是一款简易的游戏类小程序 用 ...

  9. 微信小程序项目实例——食堂吃哪个

    微信小程序项目实例--食堂吃哪个 文章目录 微信小程序项目实例--食堂吃哪个 一.项目展示 二.操作流程和核心代码 三.效果展示 文末 项目代码见文字底部,点赞关注有惊喜 一.项目展示 这是一款娱乐性 ...

  10. 微信小程序(应用号)实战课程之记账软件开发

    http://git.oschina.net/dotton/finance [2016-10-12] 更新 缘起:昨天官方开发有了更新v0.10.101100,Picker的mode属性已经支持dat ...

最新文章

  1. 是vans_你知道VANS有哪些好鞋不贵系列?
  2. GridView,Repeater分页控件:WebPager(开源)
  3. rpm方式安装mysql-5.7.11
  4. 反射小应用之DataTable和ListT互操作
  5. 前端学习(1716):前端系列javascript之页面配置下
  6. ER图转换成关系模式集的规则
  7. 给button加href
  8. java鼠标事件_Java 模拟鼠标事件
  9. hdu 1231最大连续子序列 动态规划
  10. 在VScode上使用latex编辑pdf
  11. lazyLoad-懒加载
  12. 宏基4752g 开机进度条卡到75%左右,解决办法
  13. 以太坊ETH(windows)配置
  14. H.264中的SPamp;amp;SI帧技术简述
  15. CNCF 云原生容器生态系统概要
  16. idea 解决ava.lang.NoClassDefFoundError错误
  17. 英语基础句型结构------起源
  18. 异构系统架构标准——HSA
  19. 虚拟机安装与ubuntu安装
  20. ES6-13【正则方法、修饰符yus、UTF_16编码方式】

热门文章

  1. css中auto啥意思,css中auto什么意思?
  2. 基于stm32f103的火箭车
  3. iOS 10 beta1 安装
  4. 【21考研】合肥工业大学计算机经验分享集锦
  5. 解除newduba首页_解决Chrome浏览器主页驱动精灵自己固定主页行为
  6. 简易计算器+组合和内部
  7. [分享]对内PMP项目管理培训-精华篇(五大过程组)
  8. 微信小程序-顶部导航滑动导航栏
  9. 2019原创考研数学基础过关660题(数学二)
  10. 数字媒体导论(习题答及答案01)