DolphinScheduler API test respects the Page Object Model (POM) design pattern. Every page of DolphinScheduler's api is abstracted into a class for better maintainability.
The login page's api is abstracted as LoginPage
, with the following fields,
public HttpResponse login(String username, String password) { Map<String, Object> params = new HashMap<>(); params.put("userName", username); params.put("userPassword", password); RequestClient requestClient = new RequestClient(); return requestClient.post("/login", null, params); }
where userName
, userPassword
are the main elements on UI that we are interested in.
DolphinScheduler API test uses testcontainers to set up the testing environment, with docker compose.
Typically, every test case needs one or more docker-compose.yaml
files to set up all needed components, and expose the DolphinScheduler UI port for testing. You can use @DolphinScheduler(composeFiles = "")
and pass the docker-compose.yaml
files to automatically set up the environment in the test class.
@DolphinScheduler(composeFiles = "docker/tenant/docker-compose.yaml") class TenantAPITest { }
Add VM options to the test configuration in IntelliJ IDEA:
# In this mode you need to install docker desktop for mac and run it with locally -Dm1_chip=true
# In this mode you need to start frontend and backend services locally -Dlocal=true
# In this mode you only need to install docker locally
dolphinscheduler-api-test/pom.xml
to the maven project Since it does not participate in project compilation, it is not in the main project.org.apache.dolphinscheduler.api.test.cases.TenantAPITest
in the IDE.