使用Robot Framework做API测试时遇401未授权及SSL证书验证失败问题
Robot Framework API测试报错解决
出现的两个错误
- 初始错误:
certificate verify failed: SSLError: HTTPSConnectionPool - 开启
verify=False后报错:HTTPError: 401 Client Error: Unauthorized for url:
测试代码
Create Session mysession ${ADSS_API_URL} verify=False ${body}= Create Dictionary username aXXXXX password XXXXXX ${header}= Create Dictionary Content-Type=application/json ${response}= POST On Session mysession /login data=${body1} headers=${header} log ${response}
解决方法
修正变量名错误
代码里定义的请求体是${body},但请求时用了不存在的${body1},这直接导致接口没收到用户名密码,触发401错误。把data=${body1}改成data=${body}即可。确认请求参数格式
如果接口要求接收JSON格式数据,建议用json=${body}替代data=${body}——data参数默认是表单编码,json会自动把字典序列化成JSON字符串,同时自动设置Content-Type为application/json,可以简化代码:${response}= POST On Session mysession /login json=${body}SSL证书问题补充
之前的SSL校验失败,用verify=False虽然能临时绕过,但生产环境不建议这么做,最好把目标API的合法证书导入到本地信任存储中,避免安全风险。
内容的提问来源于stack exchange,提问作者meca singh
相关产品推荐
相关产品推荐

