AREX version 0.2.8 is released! Support sending and recording Dubbo 3.x requests, upgrade arex-agent-java version to v0.2.0.
Support sending and recording Dubbo 3.x requests
Related pull request: https://github.com/arextest/arex-agent-java/pull/76
Apache Dubbo is a high-performance distributed service framework that provides support for high availability, scalability, automatic service registration and discovery, load balancing, fault tolerance, call chain tracing, service governance, and more. In the new version, AREX supports recording and sending requests for Dubbo 3.x version.
To send a Dubbo request, you need to fill in the address of the Dubbo service. The address of a Dubbo service usually consists of three parts: protocol, service address, and service port. For example, the address of a Dubbo service is: dubbo://{{local ip}}:20880/com.xxx.service.XXXService
.
- Protocol: Dubbo supports multiple protocols, including dubbo, rmi, hessian, http, and more. When filling in the Dubbo service address, you need to specify the protocol used, for example, dubbo.
- Service address: The IP address or hostname of the Dubbo service provider.
- Service port: The listening port of the Dubbo service provider.
Add recording test case details page
To facilitate viewing and managing recorded test cases, 0.2.8 version has added a recording details page to the recording case list in the replay report. This page displays detailed information about the request, such as request parameters, request headers, response content, etc.
Add Agent status display for the SUT
Related pull request: https://github.com/arextest/arex/pull/119
A new feature has been added to the application settings page to display the status of the AREX Agent for the tested application. This makes it easier for testers to check whether the Agent of the current service is running normally, so as to discover and solve problems in a timely manner, ensuring the reliability and stability of the testing process.
arex-agent-java upgrates to v0.2.0
1. Improve the dynamic class feature
a. Support Spring @Cacheable
Related pull request: https://github.com/arextest/arex-agent-java/pull/123
In 0.2.8, AREX supports the @Cacheable annotation in the Spring framework, which can cache the results of method execution to a specified cache. The next time the method is called, the result can be directly obtained from the cache, avoiding database access and other operations, making it more convenient to manage and use the cache.
b. Support directly configured way and code annotation way to configure dynamic classes
Related pull request: https://github.com/arextest/arex-agent-java/pull/114 https://github.com/arextest/arex-agent-java/pull/133
Dynamic class mocking can be configured directly in the interface shown below:
The following is an example of dynamic class configuration supported in AREX, used to simulate class data in memory.
- infix: matches any class in the package path that contains "namic", for example, io.arex.inst.dynamic.namicTest
- suffix: matches any class in the package path that ends with "namicTestClass", for example, io.arex.inst.dynamic.*namicTestClass
- prefix: matches any class in the package path that starts with "DynamicTest", for example, io.arex.inst.dynamic.DynamicTest*
- equals: matches any class in the package path with the class name "DynamicTestClass", for example, io.arex.inst.dynamic.DynamicTestClass
- abstract class or interface: matches abstract classes or interfaces, where "ac:" represents the abbreviation for abstract class, for example, ac:io.arex.inst.dynamic.AbstractDynamicTestClass matches the "AbstractDynamicTestClass" abstract class.
These configurations are used to specify the package path and class name information of the dynamic classes that need to be mocked. After the configuration is completed, AREX will automatically mock these classes for use during testing.
Alternatively, configuration can be done using code annotations. For more information, see: https://github.com/arextest/arex-common/blob/main/src/main/java/com/arextest/common/annotation/ArexMock.java
2. Support JCasbin 1.x, Apache Shiro 1.x and Spring Security 5.x
Related pull request: https://github.com/arextest/arex-agent-java/pull/111 https://github.com/arextest/arex-agent-java/pull/99 https://github.com/arextest/arex-agent-java/pull/98
JCasbin、Apache Shiro and Spring Security are commonly used security frameworks that provide functions such as identity authentication and authorization. During replay testing, AREX supports the use of these three security frameworks for testing, making it easy to perform identity authentication and authorization testing.
3. Support to turn off the replay function
Related pull request: https://github.com/arextest/arex-agent-java/pull/93
If recording is the only requirement in the production environment and there is no need for replay, you can add -Darex.disable.replay=true
to the Java Agent configuration to disable AREX replay functionality.
4. AREX Agent Java supports extension
Related pull request: https://github.com/arextest/arex-agent-java/pull/69
It supports developing AREX Agent extension plugins independently, and the documentation for developing plugins will be updated later.
Download AREX 0.2.8
- Install with Docker:
git clone https://github.com/arextest/deployments.git
cd deployments
docker-compose up -d
- Deploy Agent: See the details in Docs.