全站最牛最细,小程序自动化测试入门到实践,手把手进阶成大L佬

本文主要是介绍全站最牛最细,小程序自动化测试入门到实践,手把手进阶成大L佬,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录:导读

    • 一、前言
    • 二、环境
    • 三、什么是小程序自动化
    • 四、准备
    • 五、启动
    • 六、自动化测试
    • 七、cli 命令行调用

一、前言

随着小程序项目越来越复杂,业务场景越来多,花费在回归测试上的时间会越来越多,前端自动化测试就非常有必要提上日程。

今天要带来的是: 小程序自动化测试入门教程

二、环境

系统 :macOS
微信开发者工具版本: 1.05.2106300

三、什么是小程序自动化

微信官方文档:小程序自动化

使用小程序自动化 SDK miniprogram-automator,可以在帮助我们在小程序中完成一些事情,比如:控制小程序跳转到指定页面,获取小程序页面数据,获取小程序页面元素状态等。
配合 jest 就可以实现小程序端自动化测试了。
话不多说,我们开始吧

四、准备

1、项目根目录 mini-auto-test-demo 里面准备两个目录 miniprogram 放小程序代码,和 test-e2e 放测试用例代码

 |— mini-auto-test-demo/  // 根目录|— miniprogram/       // 小程序代码|— pages/    |— index/      // 测试文件|— test-e2e/          // 测试用例代码|— index.spec.js    // 启动文件|package.json

index 文件夹下准备用于测试的页面

<!--index.wxml--><view class="userinfo"><view class="userinfo-avatar" bindtap="bindViewTap"><open-data type="userAvatarUrl"></open-data></view><open-data type="userNickName"></open-data></view>/**index.wxss**/
.userinfo {margin-top: 50px;display: flex;flex-direction: column;align-items: center;color: #aaa;
}
.userinfo-avatar {overflow: hidden;width: 128rpx;height: 128rpx;margin: 20rpx;border-radius: 50%;
}// index.js
// 获取应用实例
const app = getApp()
Page({data: {userInfo: {},},// 事件处理函数bindViewTap() {wx.navigateTo({url: '../logs/logs'})}
})

2、微信开发者工具->设置-> 安全设置 -> 打卡服务端口
请添加图片描述
3、安装npm包
如果根目录没有 package.json 文件,先执行

npm init

如果根目录已经有 package.json 文件 ,执行以下命令:

npm install miniprogram-automator jest --save-dev
npm i jest -g

安装需要的依赖
4、在根目录下新建index.spec.js 文件

const automator = require('miniprogram-automator')automator.launch({cliPath: '/Applications/wechatwebdevtools.app/Contents/MacOS/cli', // 工具 cli 位置projectPath: '/Users/SONG/Documents/github/mini-auto-test-demo/demo1/miniprogram', // 项目文件地址
}).then(async miniProgram => {const page = await miniProgram.reLaunch('/pages/index/index')await page.waitFor(500)const element = await page.$('.userinfo-avatar')console.log(await element.attribute('class'))await element.tap()await miniProgram.close()
})

这里要注意修改为自己的cli位置和项目文件地址:
1、cliPath:
可以在应用程序中找到微信开发者工具,点击右键点击"显示包内容"
请添加图片描述
找到cli后,快捷键 :command+option+c 复制路径, 就拿到了
请添加图片描述
2、projectPath:
注意!!项目路径填写的是小程序文件夹miniprogram而不是mini-auto-test-demo

五、启动

写好路径后,在mac终端进入mini-auto-test-demo根目录或 vscode 终端根目录执行命令:

node index.spec.js

请添加图片描述

你会发现微信开发者工具被自动打开,并执行了点击事件进入了log页面,终端输出了class的值。 到此你已经感受到了自动化

六、自动化测试

在一开始准备的test-e2e 文件夹下新建integration.test.js文件,引入’miniprogram-automator, 连接自动化操作端口,把刚刚index.spec.js中的测试代码,放到 jest it 里,jest相关内容我们这里就不赘述了

const automator = require('miniprogram-automator');describe('index', () => {let miniProgram;let page;const wsEndpoint = 'ws://127.0.0.1:9420';beforeAll(async() => {miniProgram = await automator.connect({wsEndpoint: wsEndpoint});}, 30000);it('test index', async() => {page = await miniProgram.reLaunch('/pages/index/index')await page.waitFor(500)const element = await page.$('.userinfo-avatar')console.log(await element.attribute('class'))await element.tap()});
});

在package.json scripts 添加命令

"e2e": "jest ./test-e2e integration.test.js --runInBand"

测试代码写好了,接下来如何运行呢?这里我们提另外一个方法。

七、cli 命令行调用

官方文档:命令行调用

你一定会问,刚刚我们不是学习了启动运行,这么还要学另外一种方法呢?

大家都知道,一般团队里都是多人合作的,大家的项目路径都不一样,难道每次还要改projectPath吗?太麻烦了,使用cli就不需要考虑在哪里启动,项目地址在哪里,话不多说,干!
打开终端进入放微信开发者工具cli文件夹(路径仅供参考):

cd /Applications/wechatwebdevtools.app/Contents/MacOS 

执行命令(如果你的微信开发者工具开着项目,先关掉)

./cli --auto  /Users/SONG/Documents/github/mini-auto-test-demo/miniprogram  --auto-port 9420

微信开发者工具通过命令行启动
请添加图片描述
启动后在项目根目录下执行,可以看到测试通过

npm run e2e

请添加图片描述
到此,我们已经可以写测试用例了。这只是入门系列,后续会持续更文


这篇关于全站最牛最细,小程序自动化测试入门到实践,手把手进阶成大L佬的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476754

相关文章

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听