这是我第一次尝试 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 站点?
提前致谢
问候
您可以通过添加以下方法来关闭验证:
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)
在使用自签名证书连接到服务器时,我遇到了类似的问题。我使用以下代码(来自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)