新近项目组大佬要求学习使用这个小程序自动化测试miniprogram-automator,但本小白从未接触使用过相关测试类任务,鉴于网上能查找到的相关资料也较为稀少,故在此提记我在使用过程的具体使用过程,并记录Cannot find module 'miniprogram-automator'  ;缺少测试项“Your test suite must contain at least one test” ;运行jest index.spec.js命令后自动打开微信小程序编辑器时的超时、卡顿、白屏   等问题,如有其他问题欢迎各位读者指出,共同探讨学习。

一、确定你的工作环境

  • 安装 Node.js 并且版本大于 8.0
  • 基础库版本为 2.7.3 及以上
  • 开发者工具版本为 1.02.1907232 及以上

node版本在命令行工具中通过 node -v 确认。

基础库版本与开发者工具版本通过微信开发工具确认。

二、打开CLI/HTTP调用功能

确认打开微信开发工具安全设置中的 CLI/HTTP 调用功能。工具栏 -- 设置 -- 安全设置

通过下面这条命令可以测试是否正确打开了CLI/HTTP调用功能

cli.bat --auto {项目地址}  --auto-port {端口号}

要运行这条命令首先需要找到微信开发者工具的安装目录,在该目录下打开 cmd命令行工具,运行上述命令即可,例如:

C:\Program Files (x86)\Tencent\微信web开发者工具> cli.bat --auto E:/Project/demo  --auto-port 12306

Mac 默认安装位于:/Applications/wechatwebdevtools.app/Contents/MacOS/cli

windows 默认安装位于: C:/Program Files (x86)/Tencent/微信web开发者工具/cli.bat

关闭微信开发者工具 运行命令后出现下图,表示CLI/HTTP调用功能开启成功

三、开始实操

新建文件夹miniprogran-demo并在VScode中打开,在里面新建文件夹miniprogran-demo-test1,在该目录下运行终端,执行以下命令

npm i

npm init

随后安装小程序自动化SDK

npm i miniprogram-automator --save-dev

以及依赖项

npm i miniprogram-automator jest
npm i jest -g

最后创建 index.spec.js 文件,在里面输入测试代码,编辑完代码后通过运行

jest index.spec.js

即可开始测试,通过代码会自动打开小程序开发工具,并根据你代码中填写的地址打开相应的项目。

最后,出现一下类似样式表示测试成功

注意:

  • 运行测试代码前建议先完全关闭小程序开发工具
  • npm i 之后若没有出现node_modules文件夹 可以执行 npm i express 命令
  • 执行 npm init 后一路回车即可创建

四、实际代码

const automator = require('miniprogram-automator') // 引入miniprogram-automator模块describe('测试微信小程序', () => {let miniProgramlet pagebeforeAll(async () => {miniProgram = await automator.launch({projectPath: 'E:/Project/demo' // 项目地址})page = await miniProgram.reLaunch('/pages/index/index') // 你要打开的页面,路径为小程序app.json中的页面路径await page.waitFor(500)}, 60000) // 打开小程序并执行it中的自动化命令可能会消耗不少时间,建议写大些afterAll(async () => {await miniProgram.close() // 关闭小程序})it('test1', async () => {const item = await page.$('.form-item') // 获取页面元素await item.tap() // 触发该元素的tap点击事件await page.waitFor(1500) // 等待1500毫秒后通过expect((await miniProgram.currentPage()).path).toBe('pages/list/list') // 跳转到下一个页面await page.waitFor(1500)const lists = await page1.data('invoiceList') // 获取页面渲染数据await page.waitFor(1500)expect(lists.length).toBe(10) // 判断lists数组长度是否为10})
})

五、API组成

API 主要分四个模块:Automater、MiniProgram、Page 和 Element

Automator 模块提供了启动及连接开发者工具的方法。

MiniProgram 模块提供了控制小程序的方法。

Page 模块提供了控制小程序页面的方法。

Element 模块提供了控制小程序页面元素的方法。

更多API具体内容详情,请移步官方网址:Automator | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/devtools/auto/automator.html

六、问题总结

1.Cannot find module 'miniprogram-automator' 

一开始我就遇到了这个问题,原来在于我将这个自动化相关内容全都放在小程序项目同级文件夹中,另起新建文件夹由VScode打开后解决该问题。

2.缺少测试项“Your test suite must contain at least one test”

测试js文件中必须包含至少一个describe,且不能放在automator.launch回调中。其中必须包含有测试项,类似 it('test1', async () => { ... })  。

3.运行jest index.spec.js命令后自动打开微信小程序编辑器时的超时、卡顿、白屏

建议是增加 beforeAll(async () => {},60000) 后的时间数字,该数值单位为毫秒,然后关闭小程序开发工具,终止命令,清理电脑内存后重新运行 jest index.spec.js 命令。

七、最后

由于笔者也是刚刚接触小程序自动化miniprogram-automator,也是第一次发表CSDN博客,如有问题欢迎指出,共同探讨提升,谢谢。

微信小程序自动化之miniprogram-automator快速上手相关推荐

  1. 小程序源码:仿各大APP种树微信小程序源码下载-简单快速上手

    这是一款仿各大APP的种树获取水果的一款微信小程序 可以对树浇水,杀虫,修剪等等 另外还有夺宝,更多小程序推荐 支持流量主模式等等 可以进行邀请好友加快树木的成长速度 小程序源码下载地址: 小程序源码 ...

  2. APP种树微信小程序源码下载-简单快速上手

    这是一款种树获取水果的一款微信小程序 可以对树浇水,杀虫,修剪等等 另外还有夺宝,更多小程序推荐 可以进行邀请好友加快树木的成长速度 下面是小编的演示图: 小程序源码下载地址:(已更新)APP种树微信 ...

  3. 微信小程序引入高德地图Demo 快速上手

    文章目录 前言 一.获取高德key 二.引入官方实例 总结 前言 本文参照官方文档进行编写 最后引入官方实例 最终效果 ` 一.获取高德key 注册账号 https://lbs.amap.com/?r ...

  4. Windows10windows server 2012r2作为slave 用jenkins部署微信小程序自动化打包

    背景 微信小程序的测试发布在没有 CI/CD 等相关工具的情况下,存在着如下的问题: 小程序开发助手中,同一个开发者只能显示一个开发版本 测试同事.产品经理.UI设计师找开发要二维码,或者本地拉取代码 ...

  5. 微信小程序是什么?如何快速搭建一个微信小程序?

    目录 一.微信小程序是什么 二.安全管理 三.微信小程序的功能 四.快速开发一个微信小程序APP 1.集成即构实时音视频SDK 2.初始化SDK引擎 3.创建房间与登录房间 4.房主创建房间 5.推流 ...

  6. 微信上python小课 骗局_聊聊 Python 做微信小程序自动化,那些踩过的坑?

    1. 场景 之前写过 微信小程序的几种方式,对于有源码的小程序推荐使用微信开放的 SDK 来做自动化,否则只能使用原生或 WebView 的方式. 最近在用 Python + Appium 在微信小程 ...

  7. android微信自动化脚本,appium——微信小程序自动化

    由于腾讯系QQ.微信是基于腾讯自研X5内核-类似webview,不是谷歌原生webview,所以调试会有些许差异(有很 多app厂商也开始采用X5内核) 微信小程序自动化测试只能够支持手机,模拟器是不 ...

  8. 微信小程序“实时日志”帮你快速找到bug

    微信小程序"实时日志"帮你快速找到bug https://cloud.tencent.com/developer/article/1507401

  9. 微信小程序,使用正则表达式,快速验证是否是数字

    微信小程序,使用正则表达式,快速验证是否是数字 if (this.data.goodsNum == '' || this.data.goodsNum == undefined) {console.lo ...

  10. 微信小程序自动化框架minium实践,手把手带你玩minium

    一.背景需求 精选小程序发生了一次线上问题,测试阶段的小程序开发码测试ok,但是小程序正式码由于打包问题,"我的订单"页面文件打包失败,导致线上用户访问我的页面白屏. 当前并不能避 ...

最新文章

  1. dede php 循环,织梦怎么循环调用多级子栏目如二级栏目下三级栏目
  2. N叉树的深度 python实现
  3. 逻辑回归评分卡分数映射
  4. Django之ORM操作
  5. leetcode 606. Construct String from Binary Tree | 606. 根据二叉树创建字符串
  6. 使用maven聚合安装多个maven工程到本地仓库报错的解决方法:child module pom.xml does not exist
  7. php 5.5.38 ldap安装,centos5.5系统下面,lnmp环境下面php加载ldap扩展
  8. rmlv出错处理一例
  9. 代理模式-Java实现-静态代理、动态代理
  10. easyui validatebox设置默认值时 去掉校验
  11. 关于腾讯云redis 无法外网访问的解决方案
  12. mybatis传入参数类型parameterType详解
  13. android下最强的3款pdf阅读器测评
  14. 数据库实验一:创建数据库和表
  15. PDCA循环的四个阶段八个步骤,你知道么?
  16. 测试人员的工作及介绍
  17. 算法的特征及设计要求
  18. ios5.1.1旧版软件下载_苹果iOS 14.1正式版推送 关闭旧版本降级通道
  19. markdown及IDEA快捷键
  20. MATLAB常用快捷键:自动补全、自动排版、注释、去掉注释

热门文章

  1. 大数据上机基础—HDFS文件操作
  2. ElasticSearch查询实现全字段搜索
  3. 台式电脑网络连接配置异常_用360体检提示:发现网络连 接配置错误?台式机电脑上不了网用360断网急救箱检测总是网络连接配置...
  4. sqlsugar 链接mysql_SqlSugar简单使用封装
  5. python基于词语情感色彩进行数据分析(jieba库)
  6. 企业管理软件中的积分制管理软件添加成员操作介绍
  7. 百度地图主题编辑器使用教程
  8. 基于Android的飞机大战游戏的设计与实现
  9. t460p和t470p对比评测_T460P和T470P请问各位大侠哪个好,优缺点各在哪?谢谢
  10. python 今日头条增加流量_如何巧妙利用今日头条“视频号”让流量暴涨?