0

我对 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 ***
4

1 回答 1

0

我通过删除解决了这个问题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 ***
于 2021-08-18T09:02:59.863 回答