Giter VIP home page Giter VIP logo

tank's People

Contributors

bhylan avatar bryaan avatar dangleton avatar dependabot[bot] avatar girijasameera avatar kevin-mcgoldrick avatar kevinmcgoldrick avatar kmarquardsen avatar mani-sreekakula avatar maspen avatar mayhs19 avatar sarthakgupta072 avatar shawn-h-park avatar srujana4 avatar tonyhernandez avatar zakaria-kofiro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tank's Issues

Update to AWS JAVA SDK v2

Utilize the new AWS SDK v2

      <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>bom</artifactId>
        <version>${version.aws-sdk-bom}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>

Add Authentication

I have need to authenticate using either Basic or NTLM authentication. Please add a way to specify authentication.

Store script as an S3 object, not a database blob

Existing

scripts are stored in ugly database blobs that abuse the database server on any input/output operation. This requires regular database restarts to recover memory and stop swapping.

Ideal

scripts should be written as an S3 object with the bucket defined in the configuration, and the key should be stored in the database in place of the current reference.

Allow variable regions

As a performance engineer, I would like to run test traffic from any AWS region so that traffic patterns can be shaped accordingly and to disperse the traffic in a more natural manner. Currently Tank use only two hard coded regions.

Acceptance Criteria:

  1. The system will display user entry boxes for all regions configured.
  2. Instances will be run in all regions configured.
  3. If a region is removed from the global configuration and there was a project that has users configured, they will be automatically removed when the project is viewed.

Support a Non-linear ramp rate

Existing linear ramp - single service

Is perfect for testing an individual service because all the calls go to a single destination, thus the load on that service scales linearly.

Existing linear ramp - multi service

Once you consider multiple services than a problem appears. For example a login as the first step to a set of scripts. In the first minute you will start x news sessions, in the second minute you will start x new sessions, etc. This means the login service will go from zero to 100% test load in that one minute. Beyond just login we see large scripts that call many services will spike services with few calls from zero to 100% load.

Solution

Add a job configuration setting that allows you to choose a linear or non-linear ramp.
The non-linear ramp would shrink the wait between starts over half the ramp time, producing an S-curve to steady state. The S-curve from the client perspective, would produce the desired linear ramp on login and other rarely called endpoints.

Invalid Maven Repos

It appears that two Maven repos have moved/changed. Specifically the codehaus (gone?) and the ibiblio (moved).

The modification is a simple changing of the URLs

<repository>
  <id>codehaus</id>
  <name>Codehaus Repo</name>
  <url>https://repository-master.mulesoft.org/nexus/content/groups/public/</url>
</repository>
<repository>
  <id>ibiblio</id>
  <name>Main Ibiblio Repo</name>
  <url>http://maven.ibiblio.org/maven2/</url>
</repository>

Add color hilighting to debugger for status codes >= 400

As a Performance Engineer, while using the debugger, I would like to be able to easily see which requests returned response codes greater than or equal to 400 so that I can easily see if there are errors in the script.

Acceptance criteria:

  1. Any requests that result in status >= 400 are hi lighted in some way in the debugger UI.

Remove redundancy of port number in url from agent calls

Currently the extra port number in the url makes it hard to use a full url redirect variable from the previous call. Since the http or https already implies a port, don't think it's needed.

TANK/agent/apiharness/src/main/java/com/intuit/tank/http/BaseRequestHandler.java

REMOVE
// no default port specified for http
-->// if (protocol.equalsIgnoreCase("http") && port == -1)
-->// port = 80;
-->// else if (protocol.equalsIgnoreCase("https") && port == -1)
-->// port = 443;

REPLACE
return new URL(protocol, host, port, path

WITH
return new URL(protocol, host, path

all-in-one.sh: No such file or directory error

In the process of setting up Tank and ran into the below error when running all-in-one.sh.

OS: Ubuntu 18.04
Bash: GNU bash, version 4.4.20

No install dir supplied. Using /home/username/github/Tank
Installing all in one in /home/username/github/Tank
downloading and extracting tomcat 6...
downloading and extracting agent-standalone...
downloading and extracting support libraries...
downloading and installing tank war file...
Creating start script at /home/username/github/Tank/start.sh ...
Creating stop script at /home/username/github/Tank/stop.sh...
all-in-one.sh: line 58: /home/username/github/Tank/agent-standalone/run.sh: No such file or directory
all-in-one.sh: line 59: /home/username/github/Tank/agent-standalone/run.sh: No such file or directory
all-in-one.sh: line 60: /home/username/github/Tank/agent-standalone/run.sh: No such file or directory
all-in-one.sh: line 61: /home/username/github/Tank/agent-standalone/run.sh: No such file or directory
all-in-one.sh: line 62: /home/username/github/Tank/agent-standalone/run.sh: No such file or directory
Installing all in one in /home/username/github/Tank
Run /home/username/github/Tank/start.sh to start the all in one server and /home/username/github/Tank/stop.sh to kill it```

Switch database query building to JTA rather than RESOUCE_LOCAL

Ideal State

The current data_access module is built with a lot of custom database query building content. While this is a tightly controlled model of database access, I feel like this interface could be handed over to a JTA provider for better longterm support.

Async Http Client

Existing State

Tank currently supports two blocking httpClients (apache httpclient 3.1 and 4.5). These httpclients make a request and wait for the response and parse the response before continuing on the the next call.

Issue

The existing state fails to produce conistent TPS, as the server endpoint changes performance. Faster RT equals higher TPS, and vise-versa. A completely non-blocking solution would not work because certain calls rely on the response data from a previous call.

Solution Stage 1

Include a Non-blocking Async http client like netty that would execute requests with a non-blocking futures form. This is a backward compatible state.

Solution Stage 2

Add an extra boolean to the request data_model, xml, gui, etc. So that requests can be marked async or not. The ultimate outcome would allow may flow events to be blocking, while beaconing/uilogger calls would be sent off and processes the responses when ever, without blocking the primary flow.

switchable themes

allow the theme used to be switchable and configurable vi config.

Build creation unsuccessful

Hi,

Can we have a .exe build for intuit/tank.

We tried to create the build and we are getting error as given below:

[ERROR] Some problems were encountered while processing the POMs:
[ERROR] Unresolveable build extension: Plugin org.apache.maven.wagon:wagon-webdav-jackrabbit:1.0-beta-7 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.wagon:wagon-webdav-jackrabbit:jar:1.0-beta-7 @
[ERROR] Non-resolvable import POM: Could not transfer artifact org.jboss.arquillian:arquillian-bom:pom:1.1.5.Final from/to jboss-repo (http://repository.jboss.org/nexus/content/groups/public): Connect to repository.jboss.org:80 [repository.jboss.org/209.132.182.33] failed: Connection refused: connect @ line 415, column 19

Please help us to complete the build creation.

Athul Jose
[email protected]

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.