Locust 端点身份验证失败,除非还调用了另一个端点
Locust endpoint authentication failing unless another endpoint is also called
所以我尝试使用以下 locustfile(已删除详细信息)对经过 Kerberos 身份验证的端点进行负载测试:
from locust import HttpUser, TaskSet, task
from requests_kerberos import HTTPKerberosAuth
class UserBehaviour(TaskSet):
@task
def method1(self):
self.client.post("/method1", auth=HTTPKerberosAuth(force_preemptive=True), json={})
class FilterAndPrioritiseUser(HttpUser):
tasks = [UserBehaviour]
然后我不断收到错误提示 SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')
,尽管我可以手动到达终点。
但是,如果我添加另一个任务:
@task(1)
def method2(self):
self.client.get("/endpoint2", verify=False)
那么结果是这样的:
Type Name # Requests # Fails
GET /endpoint2 6 6
POST /endpoint1 19 4
错误所在:
# fails Method Name Type
6 GET /method2 HTTPError('401 Client Error: Unauthorized for url')
4 POST /method1 SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')
这没有意义,因为为什么另一个端点被击中并因未授权而失败导致原始端点在重试几次后停止失败?
任何帮助将不胜感激,因为我很困惑!
原来我需要将证书添加到 Python 使用的默认证书文件中,我发现它使用 其他 post。完成后,所有请求都按预期通过了身份验证!
所以我尝试使用以下 locustfile(已删除详细信息)对经过 Kerberos 身份验证的端点进行负载测试:
from locust import HttpUser, TaskSet, task
from requests_kerberos import HTTPKerberosAuth
class UserBehaviour(TaskSet):
@task
def method1(self):
self.client.post("/method1", auth=HTTPKerberosAuth(force_preemptive=True), json={})
class FilterAndPrioritiseUser(HttpUser):
tasks = [UserBehaviour]
然后我不断收到错误提示 SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')
,尽管我可以手动到达终点。
但是,如果我添加另一个任务:
@task(1)
def method2(self):
self.client.get("/endpoint2", verify=False)
那么结果是这样的:
Type Name # Requests # Fails
GET /endpoint2 6 6
POST /endpoint1 19 4
错误所在:
# fails Method Name Type
6 GET /method2 HTTPError('401 Client Error: Unauthorized for url')
4 POST /method1 SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')
这没有意义,因为为什么另一个端点被击中并因未授权而失败导致原始端点在重试几次后停止失败?
任何帮助将不胜感激,因为我很困惑!
原来我需要将证书添加到 Python 使用的默认证书文件中,我发现它使用