使用Robot框架上传文件到AWS S3时遇AWSLibrary属性错误求助
解决Robot Framework AWSLibrary的AttributeError及关键字找不到问题
问题根源
- 触发
AttributeError: module 'inspect' has no attribute 'getargspec'是因为Python 3.10及以上版本移除了inspect.getargspec方法,而你使用的AWSLibrary版本过旧,依赖这个已废弃的API,导致库加载失败。 - 库加载失败后,Robot Framework无法识别
Create Session With Keys等关键字,最终所有测试用例执行失败。
解决方案
1. 升级AWSLibrary到兼容版本
执行以下命令升级到适配Python 3.10+的官方维护版本:
pip install --upgrade robotframework-aws
注意:确保安装的是
robotframework-aws(AWSLibrary的官方包),避免安装其他同名第三方库。
2. 验证Python版本兼容性
如果升级库后仍有问题,检查Python版本:
python --version
若使用的是Python 3.10+,必须搭配最新版AWSLibrary;如果因环境限制无法升级库,可临时降级Python到3.9及以下(不推荐长期使用)。
测试代码修正建议
你的代码还有两处错误需要调整:
- 重复的测试用例区块:Robot Framework只会识别第一个
*** Test Cases ***,第二个测试用例不会被执行,需要合并成一个区块。 - 无效路径赋值:
${uploadPath} Set Variable ${PATH}/upload.csv会生成C:\Users\wa616\Desktop\AutomationCodee\upload.csv/upload.csv这种错误路径,直接使用${PATH}即可。 - 缺失密钥变量:
${ACCESS_KEY}和${SECRET_KEY}需明确定义,可在变量区块添加,或通过命令行参数传入。
修正后的完整代码示例:
*** Settings *** Library Collections Library AWSLibrary *** Variables *** ${REGION}= us-east-1 ${BUCKET}= device-data-log-dev ${KEY}= upload.csv ${PATH}= C:\Users\wa616\Desktop\AutomationCodee\upload.csv ${s3FolderName}= bosch-device ${ACCESS_KEY}= 你的AWS访问密钥 ${SECRET_KEY}= 你的AWS秘密密钥 *** Test Cases *** Upload File Create Session With Keys ${REGION} ${ACCESS_KEY} ${SECRET_KEY} Upload File ${BUCKET} ${KEY} ${PATH} Key Should Exist ${BUCKET} ${KEY} Delete File ${BUCKET} ${KEY} Delete All Sessions Upload file to S3 folder ${uploadKey} Set Variable ${s3FolderName}/upload.csv Create Session With Keys ${REGION} ${ACCESS_KEY} ${SECRET_KEY} Upload File ${BUCKET} ${uploadKey} ${PATH} Key Should Exist ${BUCKET} ${uploadKey} Delete File ${BUCKET} ${uploadKey} Delete All Sessions
内容的提问来源于stack exchange,提问作者shashi gupta
相关产品推荐
相关产品推荐

