How to make ApacheBench support multi-url

How to make ApacheBench support multi-url

Since the standard ab only supports stress testing on a single URI, which does not meet actual needs, the following modifications are made to enable ab to support multi-URL.

1. Download the Apache httpd related source code package and the patch package for the ab tool

wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.37.tar.gz
wget https://github.com/philipgloyne/apachebench-for-multi-url/archive/master.zip

Note: httpd depends on apr and apr-util

2. Compile and install apr

tar -zxf apr-1.6.5.tar.gz
cd apr-1.6.5
./configure --prefix=/usr/local/apr
make && make install

3. Compile and install apr-util

tar -zxf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

4. Replace the ab.c file in the httpd source code

unzip master.zip
tar -zxf httpd-2.4.37.tar.gz
\cp ./apachebench-for-multi-url-master/ab.c ./httpd-2.4.37/support/

5. Compile and install httpd

cd httpd-2.4.37
./configure \
  --with-apr=/usr/local/apr \
  --with-apr-util=/usr/local/apr-util \
  --prefix=/usr/local/apache \
  --sysconfdir=/etc/httpd24 \
  --enable-so \
  --enable-ssl \
  --enable-cgi \
  --enable-rewrite \
  --with-zlib \
  --with-pcre \
  --with-mpm=prefork \
  --enable-modules=most \
  --enable-mpms-shared=all 

make && make install

6. Verify the results

#/usr/local/apache/bin/ab -h
Usage: /usr/local/apache/bin/ab [options] [http[s]://]hostname[:port]/path
Options are:
  -n requests Number of requests to perform
  -c concurrency Number of multiple requests to make
  -t timelimit Seconds to max. wait for responses
  -b windowsize Size of TCP send/receive buffer, in bytes
  -p postfile File containing data to POST. Remember also to set -T
  -u putfile File containing data to PUT. Remember also to set -T
  -T content-type Content-type header for POSTing, eg.
          'application/x-www-form-urlencoded'
          Default is 'text/plain'
  -v verbosity How much troubleshooting info to print
  -w Print out results in HTML tables
  -i Use HEAD instead of GET
  -x attributes String to insert as table attributes
  -y attributes String to insert as tr attributes
  -z attributes String to insert as td or th attributes
  -C attribute Add cookie, eg. 'Apache=1234. (repeatable)
  -H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
          Inserted after all normal header lines. (repeatable)
  -A attribute Add Basic WWW Authentication, the attributes
          are a colon separated username and password.
  -P attribute Add Basic Proxy Authentication, the attributes
          are a colon separated username and password.
  -X proxy:port Proxyserver and port number to use
  -V Print version number and exit
  -k Use HTTP KeepAlive feature
  -d Do not show percentiles served table.
  -S Do not show confidence estimators and warnings.
  -g filename Output collected data to gnuplot format file.
  -e filename Output CSV file with percentages served
  -r Don't exit on socket receive errors.
  -h Display usage information (this message)
  -L Use URL list file name, eg. url.txt
  -Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers)
  -f protocol Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)

You can see that ab already supports the -L parameter (the third line from the bottom of the help information above), and you are done.

This is the end of this article about how to make ApacheBench support multi-url. For more information about ApacheBench supporting multi-url, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Apache Bench stress testing tool implementation principle and usage analysis
  • How to implement web stress testing through Apache Bench
  • How to install apachebench separately in CentOS environment

<<:  React implements multi-component value transfer function through conetxt

>>:  HTML Form Tag Tutorial (4):

Recommend

How to output Chinese characters in Linux kernel

You can easily input Chinese and get Chinese outp...

jQuery plugin to implement minesweeper game (3)

This article shares the third article on how to u...

Vue implements the function of calling the mobile phone camera and album

This article shares the specific code of Vue to a...

Use nexus as a private library to proxy docker to upload and download images

1. Nexus configuration 1. Create a docker proxy U...

Zabbix monitors Linux hosts based on snmp

Preface: The Linux host is relatively easy to han...

Detailed explanation of common operations of Docker images and containers

Image Accelerator Sometimes it is difficult to pu...

Detailed discussion of several methods for deduplicating JavaScript arrays

Table of contents 1. Set Deduplication 2. Double ...

How to use resize to implement image switching preview function

Key Points The CSS resize property allows you to ...

Html Select option How to make the default selection

Adding the attribute selected = "selected&quo...

How to install and configure WSL on Windows

What is WSL Quoting a passage from Baidu Encyclop...

Implementation of navigation bar and drop-down menu in CSS

1. CSS Navigation Bar (1) Function of the navigat...

User Experience Summary

Nowadays, whether you are working on software or w...