Node.js躬行记(11)——E2E测试】的更多相关文章

Cypress是为现代网络构建的前端测试工具,解决了开发人员和 QA 工程师在测试应用程序时面临的关键痛点. 在这个测试框架中包含了E2E测试.集成测试和单元测试(内嵌了Mocha),我们需要的是它的E2E测试的能力. 官网中包含详尽的API接口文档,以及多个视频教程.实例等,只要有耐心,看完文档,上手是不成问题的. 之所以要引入E2E测试,主要是为了保证主流程能够不出错,尤其是在后期做修修补补后,有一个可靠的方式告诉我们当前页面是正常的就行. 所以,并不会要求E2E的覆盖率要达到怎样的一个数字…
短链顾名思义是一种很短的地址,应用广泛,例如页面中有一张二维码图片,包含的是一个原始地址(如下所示),如果二维码中的链接需要修改,那么就得发代码替换掉. 原始地址:https://github.com/pwstrick/daily 短链:http://t.cn/4fYKXF 但如果二维码图包含的是一条短链,那么只要修改短链中的映射关系,就能不发代码了.当然了,前提是有一套短链系统维护着他们之间的关系,下图是列表和新增的界面. 前端界面的代码省略了,直接看短链用Node.js实现的后端代码. 一.…
本次分析的KOA版本是2.13.1,它非常轻量,诸如路由.模板等功能默认都不提供,需要自己引入相关的中间件. 源码的目录结构比较简单,主要分为3部分,__tests__,lib和docs,从名称中就可以了解到. __tests__是单元测试,lib是核心代码,docs是文档.在lib目录中只有4个文件. ├── __tests__ ------------------------ 单元测试 ├── docs ----------------------------- 文档 ├── lib ---…
Node.js 不是一门语言,而是一个基于 V8 引擎的运行时环境,下图是一张架构图. 由图可知,Node.js 底层除了 JavaScript 代码之外,还有大量的 C/C++ 代码. 常说 Node.js 是单线程的,但这个单线程是指处理 JavaScript 的主线程是单的,像 I/O 任务都是多线程处理的. 一.准备 要开发 Node.js 应用,首先需要下载安装 Node.js,点击下一步下一步就可完成. 值得一提的是,在官网中,还配套了一份 50 多篇的入门教程,每篇都不长,蛮通俗易…
一.Buffer Buffer是一种Node的内置类型,不需要通过require()函数额外引入.它能读取和写入二进制数据,常用于解析网络数据流.文件等. 1)创建 通过new关键字初始化Buffer对象的方式已经被废弃,下面的代码都已经过时. new Buffer(array) new Buffer(arrayBuffer[, byteOffset[, length]]) new Buffer(buffer) new Buffer(size) new Buffer(string[, encod…
一.文件系统 fs模块可与文件系统进行交互,封装了常规的POSIX函数.POSIX(Portable Operating System Interface,可移植操作系统接口)是UNIX系统的一个设计标准.fs模块提供了多个操作目录和文件的方法,大多会有同步和异步两种版本,同步的方法名称会以Sync为后缀. 1)目录处理 fs模块的readdir()方法可异步的读取目录内容,回调函数包含两个参数,第一个是错误对象,第二个是一个包含文件名称的数组,对应的同步方法是readdirSync().在下面…
这套前端监控系统用到的技术栈是:React+MongoDB+Node.js+Koa2.将性能和错误量化.因为自己平时喜欢吃菠萝,所以就取名叫菠萝系统.其实在很早以前就有这个想法,当时已经实现了前端的参数搜集,只是后台迟迟没有动手,也就拖着. 目前完成的还只是个雏形,仅仅是搜集了错误和相关的性能参数. 后台样式采用了封装过的matrix. 分析功能还很薄弱,只是做了简单的演示,并且各种基础功能还有待完善. 后面打算强化数据分析,并且还要实现错误的回放机制,思路的话以前也调研过,参考之前的一篇文章.…
在日常的业务开发中,会包含许多的业务规则,一般就是用if-else硬编码的方式实现,这样就会增加逻辑的维护成本,若无注释,可能都无法理解规则意图. 因为一旦规则有所改变,那么就需要修改代码再发布代码,而在日常的开发中唯一不变的就是变化,修改规则是很常见的. 规则引擎的作用就是将决策逻辑从业务逻辑中抽离出来,使得两者可以独立于彼此,便于集中管理,减少硬编码的成本和风险,在不重启服务的情况下快速响应需求的变化. 规则本质上就是一个函数,包括n个输入(决策因子),一个输出(结果)和一段计算规则三部分.…
Node.js 官方提供了 Cluster 和 Child process 创建子进程,通过 Worker threads 模块创建子线程.但前者无法共享内存,通信必须使用 JSON 格式,有一定的局限性和性能问题.后者更轻量,并且可以共享内存,通过传输 ArrayBuffer 实例或共享 SharedArrayBuffer 实例来做到这一点,即数据格式没有太多要求.但是要注意,数据中不能包含函数. Worker threads 从 Node V12 开始成为正式标准,其对于执行 CPU 密集型…
公司有个匿名聊天的常规H5界面,运营向做一次 50W 的推送,为了能配合她的计划,需要对该界面做一次压力测试. 一.JMeter 压测工具选择了JMeter,这是Apache的一个项目,它是用Java编写的,所以需要先安装Java的SDK,选择当前的操作系统. 随后到JMeter官网下载应用程序,选择 Binaries 中的压缩包. 在终端中进入解压后的 bin 目录,通过 sh jmeter 命令来启动 JMeter. Don't use GUI mode for load testing:这…