使用 Docker 时 Locust 出现 SSL 错误 CERTIFICATE_VERIFY_FAILED

gre*_*reg 6 python locust

这是我第一次尝试 Locus,不幸的是我不懂 Python。

我正在尝试向有效的 https 服务器发出简单请求,但看到以下错误:

SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书

经过一番研究后,我尝试添加以下内容:

import gevent
import geventhttpclient.connectionpool

geventhttpclient.connectionpool.SSLConnectionPool.default_options = {
    "cert_reqs": gevent.ssl.CERT_NONE,
}
Run Code Online (Sandbox Code Playgroud)

或这个:

import requests
requests.packages.urllib3.disable_warnings() # disable SSL warnings
Run Code Online (Sandbox Code Playgroud)

我按照指示运行 Locust:

docker-compose up --scale worker=4
Run Code Online (Sandbox Code Playgroud)

如何使用 Locust 测试 https 站点?

提前致谢

问候

Sai*_*pta 9

您可以通过添加以下方法来关闭验证:

def on_start(self):
    """ on_start is called when a Locust start before any task is scheduled """
    self.client.verify = False
Run Code Online (Sandbox Code Playgroud)


Mar*_*duk 1

在使用自签名证书连接到服务器时,我遇到了类似的问题。我使用以下代码(来自Locust)成功禁用了证书验证:

import gevent
from geventhttpclient.url import URL
from geventhttpclient import HTTPClient

def insecure_ssl_context_factory():
    context = gevent.ssl.create_default_context()
    context.check_hostname = False
    context.verify_mode = gevent.ssl.CERT_NONE
    return context

url = URL(server)
http = HTTPClient.from_url(url, insecure=True, ssl_context_factory=insecure_ssl_context_factory)
Run Code Online (Sandbox Code Playgroud)