dipjyotimetia/HybridTestFramework
GitHub: dipjyotimetia/HybridTestFramework
一个端到端测试框架,通过容器化与多技术栈整合,实现 Web、API、云与安全的一体化验证。
Stars: 154 | Forks: 70
# HybridTestFramework
### 功能特性
* 跨浏览器测试支持。
* 添加 BrowserStack 以支持跨浏览器测试。
* 在 Docker 容器中运行 Selenium Grid 测试。
* 在 AWS DeviceFarm 中运行 Selenium Grid 测试。
* 在 Docker 容器中运行 Selenium Server 测试。
* 使用 OWASP 进行安全测试,运行在 Docker 容器中。
* 支持 RestApi 和 GraphQL 测试,由 RestAssured 提供支持。
* 使用原生 gRPC-Java 库支持 gRPC API 测试。
* 基于发布/订阅模型的事件驱动微服务测试。
* 支持 Kafka、Cloud Pubsub、AWS SNS 测试,并持续演进。
* 使用 Percy.io 进行视觉回归测试。
* 使用 axe-selenium 进行可访问性测试。
* 使用 WireMock 进行存根 API 测试。
* 与 ElasticSearch 集成日志,用于 Kibana 仪表板可视化。
* 支持数据库测试。
* 支持 Kubernetes。
### 安装与工具
* 安装 IntelliJ IDEA
https://www.jetbrains.com/idea/download/
* 安装 Docker Desktop
https://www.docker.com/products/docker-desktop
* Java JDK_17
https://adoptium.net/temurin/releases/?version=17
* Gradle
https://gradle.org/next-steps/?version=8.5&format=bin
* Allure
https://github.com/allure-framework/allure2/archive/2.25.0.zip
* 设置环境变量
* JAVA_HOME:指向 Java SDK 的 bin 文件夹
* GRADLE_HOME:指向 Gradle 目录的 bin
* ALLURE_HOME:指向 Allure 目录的 bin
### 快速开始
```
git clone
cd
# 将项目从 IntelliJ 导入为 Gradle 项目
gradle clean
gradle build
gradle task api
gradle task web
gradle task mobile
gradle allureReport
gradle allureServe
```
### 编写第一个用户旅程
创建新类并命名为 TC00*_E2E_TEST-***
- 在 @Link 中提供 Jira 链接
- 在 @Feature 中提供所有 API 组件
- 提供测试严重级别和描述
- 编写测试代码
- 在 try/catch 块中使用 CatchBlock
### 启动 Chrome、Firefox、Selenium Hub 和 OWASP 代理服务器
```
docker-compose up -d
```
### 完成本地运行的完整基础设施创建
```
docker-compose -f docker-compose-infra up -d
```
### 启动四个额外的 Chrome/Firefox 节点实例并链接到 Hub
```
docker-compose scale chrome=5
docker-compose scale firefox=5
```
### 启动 Kafka 实例
```
docker-compose -f docker-compose-kafka.yml up
docker-compose -f docker-compose-kafka.yml down --rmi all
```
### 在 Kubernetes 实例中启动 Selenium Hub
```
kubectl apply -f selenium-k8s-deploy-svc.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
kubectl proxy
kubectl describe secret -n kube-system | grep deployment -A 12
## 删除部署
kubectl delete deployment selenium-node-firefox
kubectl delete deployment selenium-node-chrome
kubectl delete deployment selenium-hub
```
导航至 `http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/`
### Browserstack 执行动图

### Browserstack 执行动图
标签:Allure, API测试, AWS Device Farm, AWS SNS, Axe, BrowserStack, Docker, ElasticSearch, Gradle, GraphQL, gRPC, JS文件枚举, Kafka, Percy, Pub/Sub, REST API, RestAssured, Selenium Grid, SonarQube插件, Web测试, WireMock, 事件驱动测试, 云测试, 可访问性测试, 域名枚举, 子域名突变, 安全测试, 安全防御评估, 开源框架, 持续集成, 攻击性安全, 数据库测试, 日志集成, 测试框架, 漏洞测试, 端到端测试, 视觉回归测试, 请求拦截, 跨浏览器测试