Skip to content

一套基于 “UI Recorder + F2eTest + 持续集成引擎 + 国际化报告服务 + Hubot + Docker + 大盘的Chrome扩展” 等技术二次开发的、可自动化运营的、用于 E2E 级功能测试的、自动化测试解决方案

License

Notifications You must be signed in to change notification settings

TingGe/defensor-e2e-testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5504824 · Dec 8, 2023

History

33 Commits
Aug 24, 2018
Aug 24, 2018
Nov 5, 2018
Aug 24, 2018
Aug 24, 2018
Aug 24, 2018
Aug 25, 2018
Aug 24, 2018
Sep 11, 2018
Aug 24, 2018
Aug 24, 2018
Dec 8, 2023
Aug 24, 2018
Sep 14, 2018
Sep 14, 2018
Sep 14, 2018
Sep 14, 2018
Aug 24, 2018
Sep 14, 2018
Sep 14, 2018
Sep 14, 2018
Nov 25, 2021
Dec 8, 2023
Aug 24, 2018
Aug 24, 2018

Repository files navigation

Defensor E2E Testing

一套基于 “UI Recorder + F2eTest + 持续集成引擎 + 国际化报告服务 + Hubot + Docker” 等技术二次开发的、可自动化运营的、用于 E2E 级功能测试的、自动化测试解决方案。

目标

尽管诸多质量服务彼此之间风格殊异,却秉承着共同的坚定信念,那就是捍卫研发品质的崇高理想。
合体成员理念上的共识,令守护神 Defensor 得以成为效能最高的合体战士。
Defensor 一丝不苟的履行着自己的责任,守护着林林总总的产品体系。
—— Defensor 宣言

作为测试矩阵中的“ E2E 级功能测试”,从全局视角提升测试效益、实时保障系统质量。

准备

安装前置依赖

  1. 安装 Nodejs : https://nodejs.org/

  2. 配置 Nodejs 权限

    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

  3. 安装 Chrome : https://www.google.com/chrome/

  4. 安装 UI Recorder 及 mocha : npm install uirecorder mocha -g

初始化 uitest 仓库

# 下载测试代码仓库
git clone https://github.com/TingGe/defensor-e2e-testing.git

# 安装仓库依赖
cd ./defensor-e2e-testing
npm install

配置 host

sudo vim /etc/hosts

# 添加 Defensor 配置
127.0.0.1 hub

本机录制和回放

启动 Server

仅需在最初使用时安装,之后无需重复安装驱动

npm run installdriver

启动 Server

npm start

录制脚本

以 “test.spec.js” 为例,实际场景中需将 test 替换为有意义的脚本名

uirecorder specs/test.spec.js

回放测试脚本

sh run.sh specs/test.spec.js
# Windows 中执行 run.bat specs/test.spec.js

部署环境使用

流程

  1. 安装 Docker 软件和 Defensor E2E Testing 的 Docker 镜像,并启动 Docker

  2. 启动容器

    命令行方式:

    # 生产模式
    docker-compose -f docker-compose.yml up -d --build
    # 调试模式
    docker-compose -f docker-compose.debug.yml up -d --build

    VS Code 插件方式: https://marketplace.visualstudio.com/items?itemName=PeterJausovec.vscode-docker

  3. 实时查看 denfensor-testing 容器日志:

    命令行方式:

    docker logs -f denfensor-testing
    # 实时查看 denfensor-testing 容器最后10行日志
    docker logs -f -t --tail 10 denfensor-testing

    Kitematic 软件方式: https://kitematic.com/

  4. 关闭和清除容器

    命令行方式:

    docker-compose down
    docker system prune --volumes -f

    VS Code 插件方式: https://marketplace.visualstudio.com/items?itemName=PeterJausovec.vscode-docker

  5. 在用户根目录的 reports 目录可查看生成的测试报告

    open ~/reports/index.html

技巧

调试模式中,可通过 VNC viewer 方式查看 Chrome 容器中运行情况。

  1. 以 Mac 为例,右击 Dock 工具栏中的 Finder 图标,选择“连接服务器……”;
  2. “服务器地址:” 中填写 vnc://127.0.0.1:5900,并点击连接;
  3. “密码:” 中填入默认密码 secret,再点击连接即可进入运行的 node-chrome-debug 容器中。

Kubernetes 适配

使用 Kompose 将 docker-compose.yml 配置转换为 Kubernetes 配置。

最佳实践

  1. 黑盒测试用例设计方法
  2. 自动化最佳实践

应用场景

1. 研发环境,持续测试服务

解决问题:减少重复工作,提升测试效能、保障产品质量。

服务对象:(前端、后端和算法等)研发同学、业务测试同学、国际化测试同学和部分产品同学。

技术方案: “UIRecorder + F2eTest + 持续集成引擎 + 国际化报告服务 + Hubot + 大盘的Chrome扩展” 技术方案。

2. 私有部署环境,自动化验收工具

解决问题: 提升乙方交付前验收测试效率。

服务对象:交付现场的产品同学、负责交付的研发同学等。

技术方案:VPN 远程支持和 “UI Recorder + Docker/Kubernetes + 报告生成” 两种技术方案。

3. DevOps,成为CI/CD中标准环节

解决问题: 持续保障不同环境和版本的功能质量。

服务对象:研发同学、测试同学等。

技术方案:同“2. 私有部署环境,自动化验收工具”。

4. 线上环境,核心功能巡检服务

解决问题:及时发现并反馈线上问题,降低故障影响范围

服务对象:运维同学、运营同学、部分(前端、后端和算法等)研发同学和部分产品同学。

技术方案: 同“1. 研发环境,持续测试服务”。

参考

许可 License

FOSSA Status

About

一套基于 “UI Recorder + F2eTest + 持续集成引擎 + 国际化报告服务 + Hubot + Docker + 大盘的Chrome扩展” 等技术二次开发的、可自动化运营的、用于 E2E 级功能测试的、自动化测试解决方案

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published