Coder Social home page Coder Social logo

tingge / defensor-e2e-testing Goto Github PK

View Code? Open in Web Editor NEW
16.0 4.0 9.0 4.27 MB

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

License: MIT License

Dockerfile 2.70% Shell 1.15% Batchfile 1.26% JavaScript 94.89%
uirecorder docker e2e-testing e2e functional-testing black-box-testing automated-testing

defensor-e2e-testing's Introduction

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

defensor-e2e-testing's People

Contributors

dependabot[bot] avatar tingge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

defensor-e2e-testing's Issues

关于 UI Recorder、F2etest、Docker 和 Kubernetes 的几个问题

有小伙伴最近发邮件问了几个问题,统一梳理下。

  1. 咱们录制好的测试脚本,直接就可使用命令,为何还要集成至docker中?
  2. 集成至docker中,如何去使用?
  3. 在READER.md文档中,提到F2eTest,没有提及需要在本地安装,需不需要在本地安装?
  4. hub-service的启动会占用4444端口,它与UIRecorder中的webDriver有啥关系?
  5. 从gitHub中拉下该文件,有很多yaml文件,使用这些yaml文件去创建容器是否有前序关系或者依赖关系?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.