【发布时间】:2021-10-19 23:10:51
【问题描述】:
我对 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文件和机器人文件都在同一个位置。
*** Settings ***
Library uploadToZephyr.py
*** Variables ***
*** Test Cases ***
Upload Results to Zephyr
upload_to_zephyr
*** Keywords ***
【问题讨论】:
-
不是一个答案,只是一个调试提示 - 您可以调用
prepare(),并检查body和headers属性,以查看实际发送的内容,以及它与实际发送的内容有何不同服务器正在等待。请记住,它们在 Request 类中。 -
感谢@TodorMinakov 的建议。我会牢记这一点,以备不时之需。
-
当然;我仍然不知道为什么它在第一个版本中不起作用,而在第二个版本中起作用。
标签: python python-3.x post robotframework jira-zephyr