This is an automated email from the ASF dual-hosted git repository.

weichiu pushed a commit to branch HDDS-9225-website-v2
in repository https://gitbox.apache.org/repos/asf/ozone-site.git


The following commit(s) were added to refs/heads/HDDS-9225-website-v2 by this 
push:
     new 44609401d HDDS-14299. Acceptance tests guide (#323)
44609401d is described below

commit 44609401d4f0d03438e3f5f4663e53126aaca14f
Author: Andrey Yarovoy <[email protected]>
AuthorDate: Thu Feb 5 19:32:24 2026 -0500

    HDDS-14299. Acceptance tests guide (#323)
---
 .../03-test/03-acceptance-tests.md                 | 139 ++++++++++++++++++++-
 1 file changed, 135 insertions(+), 4 deletions(-)

diff --git a/docs/08-developer-guide/03-test/03-acceptance-tests.md 
b/docs/08-developer-guide/03-test/03-acceptance-tests.md
index 46afe8908..cbee52b68 100644
--- a/docs/08-developer-guide/03-test/03-acceptance-tests.md
+++ b/docs/08-developer-guide/03-test/03-acceptance-tests.md
@@ -1,7 +1,138 @@
 # Acceptance Tests
 
-**TODO:** File a subtask under 
[HDDS-9861](https://issues.apache.org/jira/browse/HDDS-9861) and complete this 
page or section.
+Acceptance tests validate the complete Ozone system from an end-user 
perspective. They deploy and test Ozone in a containerized environment that 
closely resembles real-world deployments.
 
-- Scope (what should be acceptance tested)
-- Directory layout of acceptance tests
-- Running tests locally.
+## Scope and Purpose
+
+Acceptance tests serve as the final validation layer in Ozone's testing 
strategy:
+
+- **Unit Tests**: Test individual classes in isolation
+- **Integration** Tests: Test component interactions using in-memory clusters
+- **Acceptance Tests**: Test the entire system as deployed in containers
+
+Acceptance tests are ideal for:
+
+- End-to-end workflows
+- API compliance (especially S3)
+- Security configurations
+- System behavior under various conditions
+- External interfaces and integrations
+
+## Testing Framework
+
+Ozone uses [Robot Framework](https://robotframework.org/) for acceptance 
testing. Robot Framework is a generic test automation framework that uses a 
keyword-driven approach to testing.
+
+You can run acceptance tests in any environment after [installing robot 
framework](https://github.com/robotframework/robotframework/blob/master/INSTALL.rst)
+
+### Key Features
+
+- Human-readable test syntax
+- Extensive test libraries
+- Test case organization by feature
+- Detailed test reports
+- Ability to create custom keywords
+
+## Directory Structure
+
+Acceptance tests are located in the `hadoop-ozone/dist/src/main/smoketest/` 
directory.
+
+```text
+smoketest/
+├── basic/               # Basic functionality tests
+├── s3/                  # S3 gateway tests
+├── security/            # Security and authentication tests
+├── recon/               # Recon service tests
+├── ozone-lib/           # Shared libraries and utilities  
+├── commonlib.robot      # Common test keywords
+└── compose/             # Docker Compose test environment
+    ├── ozone/           # Ozone-specific test configurations
+    ├── security/        # Secure test configurations
+    └── ha/              # HA test configurations
+```
+
+## Test Structure
+
+Robot Framework tests are written in `test_name.robot` files with a structured 
format:
+
+```text
+*** Settings ***
+Documentation       Test Ozone volume operations
+Library             OperatingSystems
+Resource            ../ozone-lib/shell.robot
+
+*** Variables ***
+${volume}           vol1
+
+*** Test Cases ***
+Create Volume
+    Execute             ozone sh volume create /${volume}
+    Execute             ozone sh volume list
+    Should contain      ${OUTPUT}       ${volume}
+
+Delete Volume
+    Execute             ozone sh volume delete /${volume}
+    Execute             ozone sh volume list
+    Should not contain  ${OUTPUT}       ${volume}
+```
+
+## Running Tests Locally using Docker Compose
+
+```bash
+# Go to the compose directory
+cd hadoop-ozone/dist/src/main/compose/
+
+# Run all tests
+./test-all.sh
+
+# Run single test
+docker-compose up -d
+# wait....
+./test-single.sh scm basic/basic.robot
+```
+
+## Specialized Test Environments
+
+Ozone provides several pre-configured test environments:
+
+### Standard Environment
+
+Basic Ozone cluster with minimal services.
+
+### Secure Environment (Kerberos)
+
+Ozone cluster with Kerberos security enabled.
+
+### High Availability (HA) Environment
+
+Ozone cluster with multiple OMs and SCMs for HA testing.
+
+### S3
+
+Running S3 specific tests requires the following setup:
+
+1. Create a bucket
+2. Configure your local `aws cli`
+3. Set bucket/endpointurl during the robot test execution
+
+```bash
+robot -v bucket:ozonetest -v OZONE_TEST:false -v 
OZONE_S3_SET_CREDENTIALS:false -v 
ENDPOINT_URL:https://s3.us-east-2.amazonaws.com smoketest/s3
+```
+
+## Test Reports
+
+After running tests, Robot Framework generates detailed HTML reports:
+
+- `report.html`: Summary report of all test cases
+- `log.html`: Detailed log of test execution
+- `output.xml`: XML output for processing with other tools
+
+These reports are typically found in the `robot-results/` directory.
+
+## Best Practices
+
+1. Use existing keywords: Leverage existing keywords from `commonlib.robot` 
and other libraries
+2. Create reusable keywords: Define new keywords for complex operations
+3. Clear test descriptions: Each test case should have a clear purpose
+4. Independent tests: Tests should not depend on each other
+5. Proper teardown: Always clean up resources in teardown sections
+6. Meaningful assertions: Verify the right conditions with proper assertions


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to