推荐去官网下载最新版本的,官网地址:https://nodejs.org/en/download/
依照系统版本下载即可,推荐window系统下载msi格式的。
下载下载直接安装下一步下一步。
安装成功了以后打开cmd
node -v
来检测是否安装成功
由于我们被墙的厉害,所以使用npm下载模块时候会发现效率真的很慢,所以推荐淘宝的镜像,安装说明
推荐:
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装cnpm,安装成功以后,将npm改成使用cnpm安装模块即可,简单,省事
安装 express 框架
mkdir okadaGo
cd okadaGo
cnpm init -y
npm install express --save
启动项目
进入项目的根目录,建立一个 index.js
文件,并加入如下代码
var express = require('express');
var app = express();
app.get('/', function(res, rep) {
rep.send('Hello, word!');
});
app.listen(3000);
然后在控制台中输入
node index.js
接着使用浏览器访问 http://localhost:3000/,就可以看到效果了
mkdir okadaGo
cd okadaGo
cnpm init -y
(npm i jest -D 有点问题)
需要低版本的jest
如果安装错误
rm -rf node_modules
cnpm i [email protected] -D
cnpm run test
sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
上述test的第一个参数可以自定义,用来打印信息,后边的expect().toBe()是期望执行结果
修改package.json
{
"scripts": {
"test": "jest"
}
}
cnpm run jest
Puppeteer
const browser = await puppeteer.launch({
//如果无法启动chrome,指定浏览器路径:executablePath,headless设置为false:可以看到浏览器
executablePath:'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
headless: false, //可以看到打开浏览器效果,默认值true
puppeteerOptions: {
ignoreHTTPSErrors: true,
dumpio: false,
}
});
安装 puppeteer
yarn add puppeteer
# or "npm i puppeteer"
可能会遇到 无法下载Chromium 问题
是因为在执行安装的过程中需要执行install.js,这里会下载Chromium,官网建议是进行跳过,我们可以执行 —ignore-scripts 忽略这个js执行
./node/npm i --save puppeteer --ignore-scripts
接下来我们需要去下载Chromium,windows的版本我这里已经下载好了,直接解压缩附件中的到 node_modules/puppeteer中就可以了。
执行下,我们创建一个文件index.js,文件内容
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://y.qq.com');
await page.screenshot({path: 'yqq.png'});
browser.close();
})();
这段代码会打开 https://y.qq.com 并截图,我们运行
node index.js
如果看到目录下有生成图片y.qq.png的话,恭喜你,我们可以开始继续往下学习puppeteer了。
最近想学习下web ui测试框架,发现了比较好用的cypress,直接用js操作更方便更快。
一、开发环境
1. 安装cypress
cd projectpath # 工程目录
npm install cypress --save-dev # 安装cypress
Cypress安装完成后,可看到提示:You can now open Cypress by running: node_modules/.bin/cypress open,通过如下命令打开Cypress。正常可看到如下窗口,其中有许多cypress自带的例子可以参考。
node_modules/.bin/cypress open
2. 配置
在工程路径下创建package.json文件,配置以chrome浏览器运行用例。
{
"scripts": {
"cypress:open": "cypress open",
"cypress:run": "cypress run --browser chrome"
},
"devDependencies": {
}
}
cypress.json文件中添加如下内容,"chromeWebSecurity": false 解决chrome跨域问题;
reporter :cypress run会自动生成xml文件,使用 allure 生成对应报告。
{
"chromeWebSecurity": false,
"reporter": "junit",
"reporterOptions": {
"mochaFile": "results/my-test-output[hash].xml",
"toConsole": true
}
}
1. intellij idea 中打开之前的工程目录,可看到cypress的开发目录:
1) fixtures:自定义json文件
2) integration:编写测试用例
3) plugins:插件
4) support:目前未用到,需要自定义指令的时候可以深入研究
describe('My first test case for cypress',function(){
it('visit baidu home page and search for testerhome:',function(){
cy.visit('http://www.baidu.com') //访问url
cy.title().should('contain','百度一下,你就知道') //验证页面 title 是否正确
cy.get('#kw') //根据 css 定位搜索输入框
.type('testerhome') //输入关键字
.should('have.value','testerhome') //验证关键字自动是否展示正确
cy.get('#su').click() //根据 css 定位搜索按钮并点击
cy.url().should('include','wd=testerhome') //验证目标url 是否正确包含关键字
cy.title().should('contain','testerhome_百度搜索') //验证页面 title 是否正确
cy.get('[id="1"]')
.should('contain','TesterHome') // 验证第一个结果中是否包含TesterHome
cy.screenshot()
})
})
Cypress应用程序中,Cypress同步刷新目录,检测到新的改动马上运行。
可通过cypress run --browser chrome执行用例,或者cypress应用程序中,选中要执行的用例运行。
Cypress入门简单,且运行快,同时提供自动生成选取dom的语句,很方便。如下:
执行命令:
cnpm install mocha
验证npm和mocha的安装是否成功,执行命令如下图命令:
test/test.js
var assert = require('assert');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal(-1, [1,2,3].indexOf(4));
});
});
});
验证mocha是否安装成功,创建一个文件夹,例如test,然后进入该文件夹,创建文件test.js,由于之前把mocha路径设置在系统环境变量中,可以直接使用mocha test来运行文件。
还有另一种运行建立的测试用例。在test文件的外部建立一个文件:package.json,在文件中添加:
{
{
"test":"mocha"
}
}
保存文件,执行命令:npm test,运行结果如下:
阮一峰 的博客 挺好的 点击链接在下面
转载地址:
https://blog.csdn.net/qq_30100043/article/details/78598520 npm的安装
https://www.jianshu.com/p/a6d430a00242 搭建nodejs项目
https://blog.csdn.net/qq_42813491/article/details/102845369 jest
https://github.com/facebook/jest/issues/10347 jest
https://cloud.tencent.com/developer/article/1006000 puppeteer
https://www.cnblogs.com/zhidong123/p/13345990.html puppeteer
https://blog.csdn.net/angl129/article/details/90696251 Cypress
https://blog.csdn.net/henni_719/article/details/54377375 mocha
http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html mocha 阮一峰 关于mocha的测试案例的使用,讲的很好
https://www.ruanyifeng.com/blog/2015/03/react.html react 阮一峰 关于react博客讲的很好
文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib
文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang
文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些
文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器
文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距
文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器
文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn
文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios
文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql
文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...
文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120
文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数