What is Transaction
A transaction in Vulcan is defined as one request-response exchange. The message can be anything from HTTP messages to customized messages.
Request–response is a message exchange pattern in which a requestor sends a request message to a replier system which receives and processes the request, ultimately returning a message in response. This is a simple, but powerful messaging pattern which allows two applications to have a two-way conversation with one another over a channel. This pattern is especially common in client–server architectures, e.g. HTTP.
Transaction and TCP Connection
Transaction uses TCP to guarantee message delivery. Thus, you can define how many transactions per TCP connection. For example, if you want to complete 1000 transactions, you can configure you test in either way:
- Create 1000 TCP connection with 1 transaction per connection.
- Create 100 TCP connections with 10 transactions per connection.
Either configuration will generate 1000 transactions (Transactions = Transaction/connection x Connections).
You can find where to configure transaction/connection as shown in the screenshot below:
Transaction Closure Mode
There are three modes to define how to close the TCP connection as soon as the defined transaction(s) is completed.
- Connection closed by connection lifetime
- Connection closed by client
- Connection closed by server
Connection closed by connection lifetime
This is the default configuration.
If Scenario > Connection Establishment >Connection Updates > Connection Rebirth is set to No rebirth, the connection lifetime is the steady duration.
If If Scenario > Connection Establishment >Connection Updates > Connection Rebirth is set to With same Src IP or With new Src IP, the connection lifetime is implicitly set to the ramp-up duration. This is because the system tries to maintain the number of concurrent TCP connections defined in the load profile. When a connection is closed, a new connection is established to maintain a number of concurrent connections.
Connection closed by client
The emulated client(s) will close the TCP connection as soon as the transaction(s) is completed. The duration of the TCP connection depends on how quick the transaction(s) can be completed. This can be impacted by the amount of data to transmit within the transaction(s), the latency introduced by the DUT, and the link/port speed utilization.
To do HTTP CPS testing, you should use this setting and then set Scenario > Connection Establishment >Connection Updates > Connection Rebirth to With same Src IP or With new Src IP. The CPS rate is defined by the total number of connections divided by the ramp-up duration.
Connection closed by server
The emulated server(s) will close the TCP connection as soon as the transaction(s) is completed. The rest is the same as Connection closed by client.