【问题标题】:Locust - Python - ssl.SSLError: [SSL] PEM lib (_ssl.c:4065)Locust - Python - ssl.SSLError: [SSL] PEM lib (_ssl.c:4065)
【发布时间】:2021-10-18 05:46:59
【问题描述】:

我是 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"))

【问题讨论】:

    标签: python ssl python-requests locust http.client


    【解决方案1】:

    看看这些:

    How to configure Locust to use https?

    What does "SSLError: [SSL] PEM lib (_ssl.c:2532)" mean using the Python ssl library?

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

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

    【讨论】:

    • 这有帮助,是的,我试图使用 pfx 作为证书。我实际上可以通过使用 openssl 命令从 pfx 中提取证书和密钥来解决这个问题,但我认为你分享的这个解决方案更好。
    猜你喜欢
    • 2020-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2020-01-14
    • 2019-05-10
    相关资源
    最近更新 更多