机器人框架请求找不到证书路径

Robot Framework Requests could not find cert path

我是 运行 下面的关键字来创建客户端证书会话,它创建得非常好:

Create Client Cert Session  alias=${alias}  url=${url}  client_certs=(${cert_path},${key_path})  verify=${False}

${cert_path} = /path/to/cert.pem

${key_path} = /path/to/key.pem

但是,当我尝试使用以下关键字执行获取请求时,出现以下错误:

Get Request alias=${alias} uri=${Enrollment_URI}

错误:

OSError: Could not find the TLS certificate file, invalid path: (

我从 python 请求库中的会话对象打印出证书的路径,它打印出来如下:

('(', '/', 'p', 'a', 't', 'h', '/', 't', 'o', '/', 'c', 'e', 'r', 't', '.', 'p', 'e', 'm',')')

这是从发送 get 请求的函数打印出来的,而不是会话创建。

从错误来看,get 请求中的函数似乎只读取了上面路径中的第一个 ( 而没有识别它。在将路径传递到关键字之前,我不确定是否应该对路径执行某些操作。

机器人不是python。 client_certs=(${cert_path},${key_path}) 不会将元组作为 client_certs 值传递。它传递的字符串字面意思是 ( 作为第一个字符。这就是为什么您会收到 invalid path '('.

错误的原因

如果需要将列表传递给 Create client cert session,则必须在单独的步骤中创建列表:

@{client certs}=  create list  ${cert_path}  ${key_path}
Create Client Cert Session  alias=${alias}  url=${url}  client_certs=${client certs}  verify=${False}