使用 TestRail UI 脚本发送 GET/POST 请求

问题描述 投票:0回答:1

我正在尝试将 TestRail 和 Jenkins 集成在一起,并且我想使用 TestRail UI 脚本来创建新按钮。单击这个新按钮时,会向 Jenkins 发送 POST 请求。

我似乎无法从此 UI 脚本发送任何 GET/POST 请求。我尝试过 ajax、xhr 和 fetch,但它们都给了我错误

Refused to connect to {my_jenkins_url} because it violates the following Content Security Policy directive: "connect-src 'self' https://app.pendo.io https://data.pendo.io https://pendo-static-{...}-.storage.googleapis.com".

我不熟悉 ajax 和 CSP 的工作原理,我看过其他几篇关于它的文章,但没有任何方法可以解决这个问题。我需要在 TestRail 中设置什么吗?还是詹金斯?

在 Jenkins 中,我启用了这些 CORS 过滤器选项:

Access-Control-Allow-Origins: {my_testrail_url},{my_jenkins_url}
Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
Access-Control-Allow-Headers: Authorization
Access-Control-Expose-Headers:
Access-Control-Max-Age:

目前,我只是想通过向 Jenkins 发送 GET 来获取面包屑来让它工作。以下是我发送请求的方式:

// Bind the click event to trigger the automated tests
    $(myButton).click(
      function() {
        const authToken = btoa(`${JENKINS_USERNAME}:${JENKINS_USER_API_KEY}`);
        var crumbURL = `https://${JENKINS_USERNAME}:${JENKINS_USER_API_KEY}@${JENKINS_URL}crumbIssuer/api/json`
        $.ajax(
          {
            url: crumbURL,
            dateType: "json",
            type: "GET",
            headers: {
              "Authorization" : "Basic " + authToken,
              //"Content-Security-Policy" : `connect-src 'self' ${crumbURL};`
            },
            success: function(data, textStatus, resp) {
              App.Dialogs.message(
                'GET request sent!',
                'Confirmation'
              );
              console.log(data);
            },
            error: function(requestObject, error, errorThrown) {
              console.error(`ERROR sending GET ${crumbURL}`);
              App.Dialogs.message(
                "There was an error retrieving the crumb. Please find more info on the console logs.",
                "Error"
              );
            }
          }
    )
    return false;
      } // end function()
    ); // end .click()
...
...

我在 github 上找到了 这个 UI 脚本,但看起来它创建了一个额外的登录表单,我希望避免它,所以我没有完全复制它。有什么建议么?蒂亚!

ajax jenkins testrail
1个回答
0
投票

在 Gitlab 中启动管道的 UI 脚本中,我们遇到了同样的错误,必须进入 TestRail 中的管理 > 站点设置 > 安全性,启用“CSP - 允许访问 TestRail 远程地址”选项,并在中列出我们的 gitlab url场: Screenshot from TestRail Admin Area

© www.soinside.com 2019 - 2024. All rights reserved.