Mocha:第一个UI自动化case

Cocos Creator微信小游戏UI自动化测试:引擎驱动与图像识别混合方案实践 UI自动化测试是游戏开发中提升测试效率、保障版本质量的关键技术。其核心原理是通过脚本模拟用户操作,自动执行界面交互与验证流程,从而将测试人员从重复性工作中解放出来。在技术实现上,主要分为基于引擎接口的“白盒”驱动和基于图像识别的“黑盒”驱动两种路径。前者通过调用引擎API直接操作UI节点,精准高效且能验证内部状态;后者则通过图像匹配模拟真实点击,通用性强但稳定性受环境影响。对于Cocos Creator 3.x开发的微信小游戏,因其特殊的“套娃”运行环境(Cocos引擎运行于微信小游戏Runtime),传统 阅读详情

Mocha

Mocha(发音"摩卡")诞生于2011年,是现在最流行的JavaScript测试框架之一,在浏览器和Node环境都可以使用。

mocha提供了BDD(Behavior Driven Develop)和TDD(Test Driven Develop)风格的接口,默认是BDD风格的。

mocha的特点主要有:

  • 既可以测试简单的JavaScript函数,又可以测试异步代码,因为异步是JavaScript的特性之一;
  • 可以自动运行所有测试,也可以只运行特定的测试;
  • 可以支持before、after、beforeEach和afterEach来编写初始化代码。

BDD风格主要提供以下6个接口before()、after() 、beforeEach() 、afterEach() 、describe()、it()。

其中before() 、after() 、beforeEach() 、afterEach() 是用于预处理和test后的处理。
before:在执行所有的测试用例前 函数会被调用一次;
after:在执行完所有的测试用例后 函数会被调用一次;
beforeEach:在执行每个测试用例前 函数会被调用一次;
afterEach:在执行每个测试用例后 函数会被调用一次;
describe:声明了一个测试集合,describe是可以嵌套的;
it:声明定义了一个具体的测试用例,一个it对应一个实际的test case;

Test Hooks方法的几个注意点:
· beforeEach会对当前describe下的所有子case生效;
· before和after的代码没有特殊顺序要求;
· 同一个describe下的执行顺序为before、beforeEach、afterEach、after;
· 当一个it有多个before的时候,执行顺序是从最外围的describe的before开始,其他同理。

官方文档 : https://mochajs.org/

How to create a project

  • Install node JS environment first
  • mkdir [your_project_name]
  • npm init -y
  • npm i --save-dev @wdio/cli
  • mkdir -p ./test/specs
  • use npx wdio wdio.conf.js to create the wdio.conf.js

IDE : Vscode

npm

在正式开始Node.js学习之前,我们先认识一下npm
npm其实是Node.js的包管理工具(package manager)

我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。

更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。

其实npm已经在Node.js安装的时候顺带装好了。我们在命令提示符或者终端输入npm -v,应该看到类似的输出:

C:\>npm -v
4.1.2

如果直接输入npm,你会看到类似下面的输出:

C:\> npm
Usage: npm <command>
where <command> is one of:

上面的一大堆文字告诉你,npm需要跟上命令。现在我们不用关心这些命令,后面会一一讲到。目前,你只需要确保npm正确安装了,能运行就行。

knowledge about webdriver

we can use the APIs (https://webdriver.io/docs/api.html) to:

relate elements: xpath, css selector
control some browser’s API: visit url, maximize window
simulate the mouse actions: click, hover
wait until: displayed, clickable, enabled, exist
get the attributes of elements, browser

指定需要运行的case:

在这里插入图片描述

First PageObject

import BasePageObject from 'xxxxx/dist'
 
export default class LoginPageObject {
   
   
    private basePageObject = new BasePageObject()
    private url =
        
JavaScript代码覆盖率测试实战:nyc配置、集成与优化指南 代码覆盖率测试是衡量软件测试完备性的关键指标,它通过统计测试执行过程中代码被覆盖的比例,帮助开发者识别未测试的代码路径。其核心原理是在源代码中插入计数器,记录行、分支、函数和语句的执行情况,从而生成量化的覆盖率报告。这项技术的价值在于提升代码质量、发现潜在缺陷,并为重构提供信心保障,广泛应用于单元测试、集成测试和持续集成流程。在JavaScript生态中,nyc作为Istanbul的命令行工具,通过与Babel插件集成,能够高效完成代码插桩和报告生成。本文聚焦nyc的实战配置,详细解析插桩器选择、报告格式设 阅读详情

相关推荐

接口自动化测试工具选型与工程实践:从Postman到Pytest的完整指南

接口自动化测试是现代软件工程中保障软件质量、提升研发效能的关键基础设施。其核心原理是通过脚本或工具模拟客户端请求,对服务端接口进行自动化验证,替代传统低效的手工测试。这项技术的核心价值在于实现快速回归验证、保障持续交付流水线的质量门禁,并支撑测试左移与复杂业务场景验证。在微服务与云原生架构成为主流的今天,接口自动化测试已成为研发团队应对高频迭代、保障系统稳定性的必备能力。实际应用中,开发者需要根据技术栈和团队特点选择合适的工具链,例如Python技术栈常采用Pytest+Requests框架实现高灵活性测试

weixin_34008805的博客 381

Playwright事件监听page.on实战:从网络请求到弹窗处理的自动化进阶

在Web自动化测试与爬虫开发中,事件驱动模型是处理动态网页内容的核心机制。其原理在于通过监听浏览器运行时触发的各类事件(如网络请求、DOM变化、控制台输出等),使脚本能够异步响应页面状态变化,而非线性执行。这一技术价值在于极大提升了自动化脚本的健壮性与智能性,使其能够应对单页应用(SPA)的异步加载、弹窗干扰等复杂场景。具体应用时,开发者可通过监听网络请求与响应来精准捕获数据接口,或通过监听弹窗事件实现自动化流程的优雅容错。本文聚焦于Playwright框架中的page.on方法,深入解析其如何实现对网络请

weixin_33835103的博客 367

从提交即后悔到提交即自信:构建开发者本地测试防线与工具链集成

在软件工程实践中,测试是保障代码质量与系统稳定性的核心环节。其基本原理在于通过多层次的验证机制,在代码变更融入共享环境前发现潜在缺陷,从而降低集成风险、提升交付信心。从技术价值看,系统化的测试策略不仅能预防生产环境故障,更是实现敏捷开发与持续集成的基石。在应用场景上,无论是前端UI交互、后端API服务,还是配置部署变更,都需要针对性的测试方案。本文聚焦于“提交前测试”这一关键实践,深入探讨如何结合静态分析、单元测试、集成测试及端到端测试,构建高效的本地测试防线。通过集成现代工具链如Visual Studio

weixin_30475039的博客 416

Mocha UI 9

Mocha UI是一个基于MooTools的插件,它利用canvas标签,非常简洁地实现了窗口功能

阿里巴巴达摩院人工智能训练师(高级)

阿里巴巴达摩院人工智能训练师(高级)

huang0612123的博客 1万+

Calpuff模型实战:从气象数据预处理到污染物扩散模拟全流程指南

本文提供了一份详尽的Calpuff模型实战指南,涵盖从气象数据预处理、地形处理到污染物扩散模拟与结果可视化的全流程。重点解析了Calmet气象场构建、Calpuff核心参数配置,并与AERMOD模型进行对比,帮助环境工程师与科研人员掌握这一强大的三维非稳态拉格朗日扩散模型,以应对复杂地形、海岸熏烟等实际模拟挑战。

s4t5u6v7的博客 458

QuickFix Java 讲解(一)概述、下载方法,和协议内容

本系列力求手把手教你怎样利用QuickFix Java 搭建自己的 FIX 协议收法平台,以及其中的注意事项。 所有源码的地址(免费): https://github.com/zongzhec/QuickFixPractise 1. 什么是FIX,QuickFix,Quick Java? 1.1. 什么是FIX 官网以及其他翻译自官网的帖子都太官方了,这里我们设想一个情景: 你是一个交易员,现在客户打电话来让你下个单买点股票。你啪啪啪的在你的机器上熟练地输入了下单指令。系统显示:成...

4571

【深度学习基础】一篇弄懂训练集、验证集和测试集(呕心沥血版)

在深度学习中,训练集、验证集和测试集是构建和评估模型的核心组成部分。训练集用于模型的学习和参数优化,验证集帮助调整超参数和防止过拟合,而测试集则用于最终评估模型的泛化性能。正确划分和使用这三类数据集,对于开发高效、可靠的深度学习模型至关重要。本文将深入解析它们的作用、划分方法以及在实际应用中的注意事项,帮助你全面理解并掌握数据集的科学使用方法,从而提升模型的实际表现。

十二月的猫 3792

【RT-DETR涨点改进】全网独家创新、细节涨点改进篇 | ICML 2024 | RT-DETR引入ICB交互式卷积模块和ASB自适应频谱模块,助力目标检测、异常检测有效涨点、含多种创新改进点

RT-DETR目标检测模型通过引入ICB和ASB模块实现性能提升。ICB模块采用多尺度卷积交互,有效捕获局部和长程依赖特征;ASB模块通过自适应频域滤波优化特征表示,降低噪声干扰。两者结合使模型在复杂场景中表现更优,显著提升检测精度和鲁棒性。文章详细介绍了模块原理、代码实现及配置方法,并提供了8种改进版本的YAML配置文件,适用于不同网络结构。这些创新改进为RT-DETR模型提供了高效涨点方案,特别适合复杂背景和高噪声环境下的目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 211

Python爬虫实战:使用Scrapy+Playwright高效爬取全球专利数据库

本文将详细介绍如何使用Python最新技术栈(Scrapy+Playwright)构建一个高效的专利数据库爬虫系统。我们将从爬虫基础知识讲起,逐步深入到反爬应对策略、分布式爬虫架构以及数据存储方案,最终实现一个完整的专利数据采集系统。专利数据是技术创新领域的重要信息资源,包含技术描述、权利要求、申请人信息等宝贵数据。中国国家知识产权局(CNIPA)美国专利商标局(USPTO)欧洲专利局(EPO)世界知识产权组织(WIPO)

2201_76125261的博客 1382

56、Cortex - M33处理器浮点单元(FPU)的使用与优化

本文详细介绍了Cortex-M33处理器浮点单元(FPU)的使用与优化方法,涵盖单双精度浮点计算的选择、编译器命令行配置、ABI模式对比、特殊FPU模式设置(如Flush-to-Zero、Default NaN)、浮点异常处理机制以及FPU电源管理策略。结合代码示例和流程图,提供了在不同应用场景下的最佳实践建议,并总结了常见问题及解决方案,帮助开发者提升嵌入式系统中浮点运算的性能、精度与能效。

bread的博客 152

借助ChatGPT完成课题申报书中框架思路写作指南

通过这篇文章的学习,我们可以让ChatGPT先为用户匹配研究理论、研究方法、研究思路、研究内容等,为申请人提供一些参考,能够帮助对拟申报课题有一个初步的认识。当申请人找到了合适的理论、方法和问题后,再借助精细化提示词模型提问,那ChatGPT回答的启发性肯定会有质的提升,更具有使用价值。

智能AI让学术科研更容易 2467

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 获得旅行青蛙无限三叶草方法及apk
下一篇: pipeline入门
Shannonnnn
博客等级 码龄10年 241粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值