GithubHelp home page GithubHelp logo

buildone2011 / arex-agent-java Goto Github PK

View Code? Open in Web Editor NEW

This project forked from arextest/arex-agent-java

0.0 0.0 0.0 2.2 MB

AREX auto-instrumentation for Java.

Home Page: https://doc.arextest.com/

License: Apache License 2.0

Java 100.00%

arex-agent-java's Introduction

Build Status codecov Quality Gate Status

Arex Icon AREX

An Open Source Testing Framework with Real World Data

Introduction

As your application evolves more complex, the effort required to thoroughly test against it also becomes tremendous. Arex is a framework designed around a quite straightforward principle of leveraging your real world data(i.e. database record, service payload, cache items etc.) for regression testing. Simple is powerful. The idea behind makes it incredibly powerful.

AREX provides an out-of-box agent file that could be attached to any applications with Java 8+ and dynamically weaves solid bytecode into your existing code to record the real data of live traffic, and further use and replay it for mocking, testing, and debugging purpose.

AREX is implemented with an unique mechanism for recording. Instead of being a proxy like other similar framework, AREX sits in the background without awareness of your application to record realistic data in live traffic which means that no intrusive code changes are required when integrating it to your existing application.

AREX utilizes the advanced Java technique, Instrument API, and is capable of instrumenting various libraries and frameworks which are widely used.

Libraries and frameworks supported by Arex (to be added...) maven version range rules

Foundation

  • Java Executors
  • System time
  • Dynamic Type

Spring

  • Spring Boot [1.4+, 2.x+]
  • Servlet API 3+、5+

Http Client

  • Apache HttpClient [4.0,)
  • OkHttp [3.0, 4.11]
  • Spring WebClient [5.0,)
  • Spring Template
  • Feign [9.0,)

Redis Client

  • Jedis [2.10+, 4+]
  • Redisson [3.0,)
  • Lettuce [5.x, 6.x]

Persistence framework

  • MyBatis 3.x, MyBatis-Plus, TkMyBatis
  • Hibernate 5.x

NoSQL

  • MongoDB [3.x, 4.x]

RPC

  • Apache Dubbo [2.x, 3.x]
  • Alibaba Dubbo 2.x

Auth

  • Spring Security 5.x
  • Apache Shiro 1.x
  • JCasbin 1.x
  • Auth0 jwt 3.x
  • JWTK jjwt 0.1+、jjwt-api 0.10+

Netty

  • Netty server [3.x, 4.x]

Config

  • Apollo Config [1.x, 2.x]

Building

Simply download the latest binary from releases or build the artifacts with the following commands. The build process supports JDK 8 - 21.

mvn clean install -DskipTests

The agent jar is in the folder arex-agent-jar/ after the build process. There will be two jar files in the folder.

arex-agent.jar
arex-agent-bootstrap.jar

If you wanna jar with version, build the artifacts with the following commands.

mvn clean install -DskipTests -Pjar-with-version

Getting Started

Enable the instrumentation agent by configuring a javaagent flag to the JVM to run arex:

AREX agent works along with the AREX storage service.

You could just configure the host and port of them respectively, like below

java -javaagent:/path/to/arex-agent.jar -Darex.service.name=my-service-name -Darex.storage.service.host=<storage.service.host:port> -jar my-application.jar

Alternatively, you can put those configuration item in arex.agent.conf file, like below

arex.service.name=my-service-name
arex.storage.service.host=<storage.service.host:port> 

Then simply run:

java -javaagent:/path/to/arex-agent.jar -Darex.config.path=/path/to/arex.agent.conf -jar my-application.jar

Also, You can Run with CLI in local mode:

Please refer to : AREX standalone mode.

Contributing

  1. Fork it
  2. Create your feature branch
  3. Commit your code changes and push to your feature branch
  4. Create a new Pull Request

License

arex-agent-java's People

Contributors

yongwuhe avatar mr3 avatar lucas-myx avatar mengqcc avatar danli39 avatar mentosl avatar mokdeve avatar yanwuqiu avatar marco-zheng avatar wangyechao avatar yanni97 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.