我对python和机器人框架非常陌生,如果有人能指出我正在做的错误是什么,那就太好了。我正在创建一个简单的函数,它将向名为Zephyr的测试管理工具发送POST请求并上传结果。我已经从"邮差"(它在那里完美地工作)复制了代码,但似乎没有从机器人文件运行。它给了我一个错误:
{"errorCode":400,"message":"HTTP 400错误请求"}
我代码:
import requests
def upload_to_zephyr():
url = "https://api.zephyrscale.smartbear.com/v2/automations/executions/junit?projectKey=someKey"
payload = {}
files = [('file', ('junitresult.xml', open('/path-to-results/junitresult.xml', 'rb'), 'text/xml'))]
headers = {
'Content-Type': 'multipart/form-data',
'Authorization': 'Bearer token value'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
我已经将其保存在一个名为uploadToZephyr.py
的文件中。然后我创建了一个简单的机器人框架测试来调用这个文件。python文件和robot文件都在同一个位置。
*** Settings ***
Library uploadToZephyr.py
*** Variables ***
*** Test Cases ***
Upload Results to Zephyr
upload_to_zephyr
*** Keywords ***
我通过删除def upload_to_zephyr():
来解决这个问题。现在我的uploadToZephyr.py
看起来像:
import requests
url = "https://api.zephyrscale.smartbear.com/v2/automations/executions/junit?projectKey=someKey"
payload = {}
files = [('file', ('junitresult.xml', open('/path-to-results/junitresult.xml', 'rb'), 'text/xml'))]
headers = {
'Content-Type': 'multipart/form-data',
'Authorization': 'Bearer token value'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
在我的机器人测试中我使用了:
*** Settings ***
Library uploadToZephyr.py
Library OperatingSystem
*** Variables ***
*** Test Cases ***
Upload Results to Zephyr
${output}= Run And Return RC python3 uploadToZephyr.py
*** Keywords ***