Cypress端到端自动化测试学习笔记
前言
一直以来,端到端的测试都是前端开发最头疼的事情。如果没有好的测试工具,一旦需求发生改变,就需要手工测试,费时费力,还会有漏网的 bug。最近接触了一款开箱即用的端到端测试工具——Cypress,真心不错,Cypress可以对在浏览器中运行的任何东西进行快速、简单和可靠的测试。
windows环境安装
1.安装node.js
官网下载地址:
https://nodejs.org/en/download/nodejs.org
下载后一路傻瓜式安装,安装完成后,运行cmd,输入node –v查看版本号,然后输入npm -v 出现如下图说明安装成功
2.安装Cypress
自己本地电脑新建一个目录Ui_test,cd 到目录,执行 npm 指令安装
cd D:workspaceUi_test
npm install cypress --save-dev (默认安装最新版)
npm install --save-dev cypress@4.5.0 (指定4.5.0版本)
这里博主安装的是4.5.0版本,安装会很慢,耐心等待会。
出现如下说明安装成功了
启动cypress
首先在D:workspaceUI_test目录下新建一个 package.json 文件配置如下内容
{
"scripts": {
"cypress:open": "cypress open"
}
}
现在,您可以在D:workspaceUi_test目下用如下命令启动
npm run cypress:open或者npx cypress open
启动成功展示:
2.现在我们开始写第一个自动化示例程序:
官方文档:
https://docs.cypress.io/guidesdocs.cypress.io
先说一下cypress的目录结构。cypress共有七个目录,还有一个cypress.json文件
编写测试case
脚本实现功能:
1.输入访问地址
2.获取元素
3.输入账号密码
4.登陆
5.断言
在 integration 目录下新建你的工程目录,如demo,下面拿login.js文件为实例
describe 声明一个测试用例集
beforeEach 测试用例前置操作,相当于setup
it声明了一个测试用例
cy.get 定位元素,用css selector定位选择器
should 断言控件含有内容
cy.visit(“/地址”)
case编写完切换到项目根目录执行命令npm run cypress:open或者npx cypress open
运行效果
生成测试报告
npm安装 npm install --save-dev mocha mochawesome mochawesome-merge mochawesome-report-generator
在 cypress.json 设置相关参数:
{
"env": {
"search":"Cypress e2e"
},
"reporter": "mochawesome",
"reporterOptions": {
"reportDir": "cypress/results",
"overwrite": false,
"html": true,
"json": true
}
}
执行 npx cypress run或者npm run cypress:open
出现如下图说明执行成功了
生成html测试报告
生成xxx.mp4视频
想转行做自动化测试的朋友们,想追求新技术助力公司成长的朋友们,未来5年弯道超车的机会,也许就在今天!
推荐几个好的学习素材
https://github.com/cypress-io/cypressgithub.com
https://github.com/cypress-io/cypress-example-recipes/github.com
https://github.com/cypress-io/cypress-example-kitchensink/github.com
- 基于云计算的 CV 移动交互应用研究(1):CV交互+云计算
- ARKit 进阶:物理世界
- HLS 视频点播初探
- 周杰伦读心术背后的技术实现
- 盒子端 CSS 动画性能提升研究
- 把照片唱给你听 :腾讯 AI Lab 国际领先技术邀你「趣」体验
- 因为超算云,你将比别人早10年“抵达”未来
- 网页加速特技之 AMP
- 刷屏的背后:原来腾讯字体是CDC和Monotype联手打造的
- 重磅!腾讯与科大讯飞技术共创,Google ProtoBuf进入TARS家族!
- 一个简易版的T4代码生成"框架"
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]
- 以上下文(Context)的形式创建一个共享数据的容器
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[下篇]
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux中如何查看文件的创建时间详解
- Android 图片添加水印的实现方法
- Linux系统清除缓存的方法总结
- 详解Android使用@hide的API的方法
- Android 实现按两次返回键退出程序(两种方法)
- 使用 bash 倒计时日期的方法
- Android 实现页面跳转
- Android EditText密码的隐藏和显示功能
- linux系统下的时间配置综述
- Android TextView 去掉自适应默认的fontpadding的实现方法
- Linux文件/目录的权限及归属管理使用
- Android自定义环形LoadingView效果
- Android隐藏标题栏及解决启动闪过标题的实例详解
- Linux使用sed命令替换字符串教程
- Android实现获取短信验证码并自动填写功能