在CentOS6.10上安装locust(备忘录)

简要概述

我正在学习有关使用locust而不是jmeter进行服务器负载测试的内容。在这个工具中,我会使用python语言来创建测试内容。

软件版本

蝗虫:1.4.2(需要Python 3.6以上)
Python:3.7
Pip:21.0
Setuptools:52.0.0

安装步骤 bù

Yum的配置设定

由于2020年11月30日centos6的支持已经结束,因此在使用yum时出现了以下错误。
YUMREPO错误:所有镜像URL都没有使用FTP,HTTP[S]或FILE。

・「解决方法」
1) 注释掉yum的repos镜像列表,添加新的baseurl。

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=https://vault.centos.org/6.10/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=https://vault.centos.org/6.10/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=https://vault.centos.org/6.10/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

2)当文件修复完成后,请执行以下命令。

# yum clean all

安装 Python 3.7(需要一些时间)

请参考以下网站,并进行Python3.7的安装。
https://benad.me/blog/2018/07/17/python-3.7-on-centos-6/

# yum install -y xz
# yum groupinstall -y 'Development Tools'
# cd /tmp
# curl -LO 'https://www.openssl.org/source/openssl-1.1.0h.tar.gz'
# tar -xf openssl-1.1.0h.tar.gz
# cd openssl-1.1.0h
# ./config shared --prefix=/usr/local/openssl11 --openssldir=/usr/local/openssl11 && make && make install
# cd ..
# curl -LO 'https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz'
# tar -xf Python-3.7.0.tar.xz
# cd Python-3.7.0
In Modules/Setup.dist, edit the following, making sure you remove the leading pound characters:
SSL=/usr/local/openssl11
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto
# yum install -y libffi-devel bzip2-devel ncurses-devel gdbm-devel xz-devel sqlite-devel readline-devel zlib-devel libuuid-devel
# LDFLAGS="-Wl,-rpath=/usr/local/openssl11/lib" ./configure --prefix=/usr/local/python37 --with-openssl=/usr/local/openssl11 --with-system-ffi && make && make install
# ln -s /usr/local/python37/bin/*3.7* /usr/local/bin

pip和setuptools的版本升级

1) 进行setuptools的升级,请执行以下命令。

# pip3.7 install setuptools==52.0.0

2)更新pip的版本

# pip3.7 install pip==21.0

请安装Locust。

我将执行以下命令。

# pip3.7 install locust==1.4.2

编写 Locust 脚本

1) 在以下路径创建一个名为”locust”的文件。

# cd /usr/local/bin/
# touch locust

2) 在locust文件中输入以下内容。

#!/usr/local/bin/python3.7
# -*- coding: utf-8 -*-
import re
import sys
from locust.main import main
if __name__ == '__main__':
  sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
  sys.exit(main())

3) 将 locust 文件赋予执行权限。

# chmod +x locust

确认操作

我将创建一个名为locustfile.py的文件。

from locust import HttpUser, between, task

class WebsiteUser(HttpUser):
  wait_time = between(5,15)

  @task
  def index(self):
    self.client.get("/")

2) 启动 locust。
在已创建的 locust.py 目录中运行以下命令。
※ 可以使用 –web-host 参数指定 locust 的 web 页面主机 IP。如果没有指定,默认为 localhost。

$ locust
example.png
广告
将在 10 秒后关闭
bannerAds