Skip to content

giis-uniovi/retorch

Repository files navigation

Status Quality Gate Status Maven Central (annotations)

RETORCH: Resource-aware End-to-End Test Orchestration

This repository contains a series of components of the RETORCH End-to-End (E2E) test orchestration framework. It's primary goal is to optimize E2E test execution by reducing both the execution time and the number of unnecessary resource redeployment's.

NOTE: In this initial version, only the annotations to identify the resources and access modes have been included. Additional components will be added in future releases.

Contents

Quick-start

RETORCH Annotations

The RETORCH framework provides a set of custom annotations to define and manage resources used in end-to-end testing. These annotations allow testers to group, schedule, and characterize resources. To execute test cases using RETORCH, each test case must be annotated with at least one access mode and resource.

The tester needs to specify the access mode using the following attributes:

  • resID: Resource identifier for the access mode.
  • concurrency: The upper bound of test cases that can access the resource concurrently.
  • sharing: Allows sharing the resource between multiple test cases.
  • accessMode: The type of access mode performed by the test case.
@AccessMode(resID = "LoginService", concurrency = 10, sharing = true, accessMode = "READONLY")

Each access mode annotation corresponds to a specific resource, which must be annotated with the following attributes:

  • resID: A unique identifier for the resource.
  • replaceable: A list of resources that can replace the current one.
@Resource(resID = "LoginService", replaceable = {})

The following code snippets illustrate a test case annotated with multiple resources and access modes:

@Resource(resID = "LoginService", replaceable = {})
@AccessMode(resID = "LoginService", concurrency = 10, sharing = true, accessMode = "READONLY")
@Resource(resID = "OpenVidu", replaceable = {"OpenViduMock"})
@AccessMode(resID = "OpenVidu", concurrency = 10, sharing = true, accessMode = "NOACCESS")
@Resource(resID = "Course", replaceable = {"Forum"})
@AccessMode(resID = "Course", concurrency = 10, sharing = true, accessMode = "READONLY")
@ParameterizedTest
@MethodSource("data")
void forumLoadEntriesTest(String usermail,String password,String role){
        this.user=setupBrowser("chrome",TJOB_NAME+"_"+TEST_NAME,usermail,WAIT_SECONDS);
        driver=user.getDriver();
        this.slowLogin(user,usermail,password);
        }

Contributing

See the general contribution policies and guidelines for giis-uniovi at CONTRIBUTING.md.

Contact

Cristian Augusto - augustocristian@uniovi.es - Software Engineering Research Group (GIIS) - University of Oviedo, ES

Citing this work

RETORCH E2E Test Orchestration framework:

Acknowledgments

This work has been developed under the TestBUS (PID2019-105455GB-C32) project supported by the Ministry of Science and Innovation (SPAIN)