【小程序自动化Minium】一、框架介绍和环境搭建

简介: 【小程序自动化Minium】一、框架介绍和环境搭建

c5efb5d9a64a49209340c3a1563261ac.gif

微信小程序自动化测试系列分享


一、Minium 简介


minium 是微信团队为小程序专门开发的自动化框架,我们可以用它来做小程序的UI自动化测试,但是它的能力却不仅仅在于UI自动化。


正是得益于官方订制打造,所以对于小程序很多原生内容和特性的支持自然也是非常独到的,比如:


  • 直接对函数进行 mock
  • 直接跳转到小程序某个页面
  • 直接设置页面数据


这些能力是其他的一些工具做不到的。不仅如此,还有诸多其他特性也非常的吸引人:


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


这些内容会在后续的分享出陆续带来。


二、环境搭建


主要是三大件:


  • Python 3.8及以上
  • 微信开发者工具
  • 微信版本 >= 7.0.7


语言是基于Python来的,而且框架中某些接口也是继承了unittest.TestCase,所以对于熟悉Pythonunittest的童鞋来说,无疑又降低了上手难度。


如果是小白的话其实也不用过于担心,可以抽时间快速学习一下基础知识也可以上手实操。学习资源搜索引擎里就太多啦,这里放置一个菜鸟教程的学习链接。


Python 和 微信开发者工具的下载传送门:



1. 安装 minium 框架


和开发者工具都安装完成后,就可以安装minium框架了。打开cmd输入命令:


pip3 install https://minitest.weixin.qq.com/minium/Python/dist/minium-latest.zip


等待自动安装完成即可。


2535176871814a91b4cf0e95defe25df.png


2. 下载官方示例小程序项目


官方有一个小程序示例项目,我觉得很适合学习使用,这里是小程序码,拿出微信扫描可以直接体验。


1268169-20220619202522835-1683923205.png


使用git直接clone


git clone https://github.com/wechat-miniprogram/miniprogram-demo.git


下载到本地之后,先cdminiprogram-demo中,然后npm i。接着再cdminiprogram中,再次npm i


等待依赖安装完成后,再开发者工具里编译成功,就可以看到小程序了。


42020a6834314e4b9951d96b727eb86b.png


3. 环境检查


都弄完之后可以对环境进行一波检查确认。


在命令行里输入:


minitest -v


出现如下表示安装成功。


9f183a15a85f442598f6173ba536afd6.png


接着,开发者工具自动化能力检查,命令行输入:


"path/to/cli" auto --project "path/to/project" --auto-port 9420


注意这里不是直接复制粘贴执行,这里:


  • path/to/cli:指代开发者工具cli命令路径。macOS: <安装路径>/Contents/MacOS/cli, Windows: <安装路径>/cli.bat
  • path/to/project: 指代填写存放小程序源码的目录地址,文件夹中需要包含有project.config.json文件


以我win10本地为例最后输入的检查命令:


"D:\Program Files (x86)\Tencent\微信web开发者工具\cli.bat" auto --project "D:\my-miniprogram\miniprogram-demo" --auto-port 9420


看到了如下,表示安装成功,而且开发者工具也会被启动。


2384808df4344f5bab26921cc8525eab.png


如果你看到了error,也不要担心,可以直接输入y自动打开,也可以到工具里手动打开。


3d1bf58d823a4ec5b9342d12ac169bfa.png


三、代码示例


新建一段代码来试验一下。


我本地是pycharm,项目结构如下:


81e125e87532454d9e841e929a402c42.png


1. 代码内容


以下代码内容可以直接复制。


first_test.py


import minium
class ComponentTest(minium.MiniTest):
    def test_ui_op(self):
        self.page.get_element("view", inner_text="视图容器").click()
        self.page.get_element(".navigator-text", inner_text="swiper").click()
        self.page.get_elements("switch")[0].click()
        self.page.get_elements("switch")[1].click()
        print("test_ui_op执行测试")


suite.json


{
  "pkg_list": [
    {
      "case_list": [
        "test_*"
      ],
      "pkg": "testmodule1.*_test"
    }
  ]
}


config.json


这里替换上你自己本地的对应路径。


{
  "project_path": "D:\\my-miniprogram\\miniprogram-demo",
  "dev_tool_path": "D:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli.bat",
  "debug_mode": "warn"
}


这里dubug我暂时改成了warn,不然控制台出的内容太多了。


2. 执行代码


在项目根目录下,输入命令:


minitest -m test.first_test -c config.json -g -s suite.json


可以看到微信开发者工具在执行代码里的动作。


1b6ae623a00844c09783f4e302670a36.gif


控制台也有对应的输出。


87585b64e5d145b89ec5043060c10b3f.png


测试完成后,开发者工具里的项目会自动关闭掉。


3. 查看测试报告


在项目中的outputs里存放了测试结果,我们可以方便的生成一份网页版的报告。


打开浏览器,访问http://localhost:12345即可查看报告。

7923826a5f79481f9dd1a093347e6543.png



测试报告的内容还是比较丰富的:


  • 数据汇总
  • 执行环境
  • 用例说明
  • 运行截图
  • 相关代码堆栈
  • 运行日志


到这里,一次简单的微信小程序UI自动化体验就完成了,后面就可以开始愉快的玩耍了。


感兴趣的童鞋点个赞吧,也欢迎关注我一起交流。


4dfbeb0bb7dd424b89d669396c779db0.gif

相关文章
|
2天前
|
设计模式 前端开发 JavaScript
自动化测试框架设计原则与最佳实践####
本文深入探讨了构建高效、可维护的自动化测试框架的核心原则与策略,旨在为软件测试工程师提供一套系统性的方法指南。通过分析常见误区,结合行业案例,阐述了如何根据项目特性定制自动化策略,优化测试流程,提升测试覆盖率与执行效率。 ####
18 6
|
2天前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
14 4
|
8天前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
9天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
41 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
8天前
|
测试技术 API Android开发
探索软件测试中的自动化框架选择与实践####
本文深入探讨了软件测试领域内,面对众多自动化测试框架时,如何依据项目特性和团队需求做出明智选择,并分享了实践中的有效策略与技巧。不同于传统摘要的概述方式,本文将直接以一段实践指南的形式,简述在选择自动化测试框架时应考虑的核心要素及推荐路径,旨在为读者提供即时可用的参考。 ####
|
12天前
|
测试技术 Android开发 UED
探索软件测试中的自动化框架选择
【10月更文挑战第29天】 在软件开发的复杂过程中,测试环节扮演着至关重要的角色。本文将深入探讨自动化测试框架的选择,分析不同框架的特点和适用场景,旨在为软件开发团队提供决策支持。通过对比主流自动化测试工具的优势与局限,我们将揭示如何根据项目需求和团队技能来选择最合适的自动化测试解决方案。此外,文章还将讨论自动化测试实施过程中的关键考虑因素,包括成本效益分析、维护难度和扩展性等,确保读者能够全面理解自动化测试框架选择的重要性。
30 1
|
10天前
|
机器学习/深度学习 自然语言处理 物联网
探索自动化测试框架的演变与未来趋势
随着软件开发行业的蓬勃发展,软件测试作为保障软件质量的重要环节,其方法和工具也在不断进化。本文将深入探讨自动化测试框架从诞生至今的发展历程,分析当前主流框架的特点和应用场景,并预测未来的发展趋势,为软件开发团队选择合适的自动化测试解决方案提供参考。
|
30天前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
200 3
|
1月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
46 0
微信小程序更新提醒uniapp
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
104 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目