从robot文件调用的Python POST请求抛出400

2024-06-02 08:22:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和robot框架非常陌生,如果有人能指出我所犯的错误,那就太好了。我正在创建一个简单的函数,它将向名为Zephyr的测试管理工具发出POST请求,并上传结果。我从“邮递员”那里复制了代码(它在那里工作得很好),但似乎没有从Robot文件中运行。这给了我一个错误的答案:

{"errorCode":400,"message":"HTTP 400 Bad Request"}

我的代码:

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的文件中。然后我创建了一个简单的robot框架测试来调用这个文件。python文件和robot文件都位于同一位置

*** Settings ***
Library  uploadToZephyr.py

*** Variables ***

*** Test Cases ***

Upload Results to Zephyr
    upload_to_zephyr

*** Keywords ***

Tags: 文件to代码框架url错误robotfiles
1条回答
网友
1楼 · 发布于 2024-06-02 08:22:52

我通过删除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 ***

相关问题 更多 >