首页 > 解决方案 > Locust - Python - ssl.SSLError: [SSL] PEM lib (_ssl.c:4065)

问题描述

我是 python 和 locust 的新手,试图运行我的第一个 locust perf 脚本来测试 API 但是,我收到以下代码的错误 ssl.SSLError: [SSL] PEM lib (_ssl.c:4065)。

class MyHttpTest(HttpUser):
wait_time = constant(5)
host = "https://abc.myorg.net"
headers = {
    'Content-Type': "application/json",
    'Ocp-Apim-Trace': "true",
    'Ocp-Apim-Subscription-Key': "<APIM subscription Key>",
    'Cache-Control': "no-cache"
}
payload = "{\n\t\"name\": \"abc\"\n}"

@task
def get_status(self):

    self.client.headers = self.headers
    self.client.verify = False

    self.client.post("/uam/Link/Get/v1", data=self.payload,
                     cert=("<path to pfx certificate>",
                           "<password of pfx certificate"))

标签: pythonsslpython-requestslocusthttp.client

解决方案


检查这些:

如何配置 Locust 以使用 https?

“SSLError: [SSL] PEM lib (_ssl.c:2532)”是什么意思使用 Python ssl 库?

很确定问题出在您尝试用作证书的 .pfx 文件上。Locust 的 HttpUser 的客户端是基于 Requests 的。我目前找不到任何说请求可以直接使用 .pfx 文件的内容。您需要具有 .cert 或 .pem 格式。我还没有尝试过,但我发现一个要点说它可以让你使用 .pfx 和 Requests 所以它应该可以与 Locust 一起工作,我想。

https://gist.github.com/erikbern/756b1d8df2d1487497d29b90e81f8068


推荐阅读