Bamboo 能否将 HTTP 400 Bad 请求解释为失败

2024-04-12

我们正在使用 CURL 向我们的应用程序之一发出外部 API 请求。如果该请求返回的值不是 200,我们希望ebamboo 的“构建”失败。目前,它正在过去。此外,响应中的消息中包含“错误”一词。我希望 Bamboo 能够解析脚本结果并根据响应报告通过或失败。我们可以利用postman https://www.getpostman.com/如果竹子无法解释实际请求,则让它运行测试。

这是日志:

simple  01-Mar-2018 08:43:29    Build Comcept.Net - Test Web API - Default Job #3 (COM-TWA-JOB1-3) started building on agent Default Agent
simple  01-Mar-2018 08:43:29    
simple  01-Mar-2018 08:43:29    Build working directory is D:\bamboo-home\xml-data\build-dir\COM-TWA-JOB1
simple  01-Mar-2018 08:43:29    Executing build Comcept.Net - Test Web API - Default Job #3 (COM-TWA-JOB1-3)
simple  01-Mar-2018 08:43:29    Running pre-build action: VCS Version Collector
simple  01-Mar-2018 08:43:29    Starting task 'Test Curl' of type 'com.atlassian.bamboo.plugins.scripttask:task.builder.script'
command 01-Mar-2018 08:43:29    Beginning to execute external process for build 'Comcept.Net - Test Web API - Default Job #3 (COM-TWA-JOB1-3)'\n ... running command line: \nD:\bamboo-home\temp\COM-TWA-JOB1-3-ScriptBuildTask-4890011895813643563.bat\n ... in: D:\bamboo-home\xml-data\build-dir\COM-TWA-JOB1\n ... using extra environment variables: \nbamboo_capability_system_builder_msbuild_MSBuild_v2_0__32bit_=C:\Windows\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe\nbamboo_capability_system_builder_msbuild_MSBuild_v14_0__64bit_=C:\Program Files (x86)\MSBuild\14.0\bin\amd64\MSBuild.exe\nbamboo_capability_system_builder_msbuild_MSBuild_2017=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe\nbamboo_resultsUrl=http://britten.hq.comcept.net:8085/browse/COM-TWA-JOB1-3\nbamboo_capability_system_builder_msbuild_MSBuild_v4_0__32bit_=C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe\nbamboo_capability_system_builder_msbuild_MSBuild_v3_5__32bit_=C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe\nbamboo_dependenciesDisabled=false\nbamboo_buildFailed=false\nbamboo_build_working_directory=D:\bamboo-home\xml-data\build-dir\COM-TWA-JOB1\nbamboo_buildKey=COM-TWA-JOB1\nbamboo_shortPlanName=Test Web API\nbamboo_capability_system_builder_msbuild_MSBuild_v3_5__64bit_=C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe\nbamboo_agentWorkingDirectory=D:\bamboo-home\xml-data\build-dir\nbamboo_buildNumber=3\nbamboo_shortJobName=Default Job\nbamboo_buildResultsUrl=http://britten.hq.comcept.net:8085/browse/COM-TWA-JOB1-3\nbamboo_capability_system_builder_msbuild_MSBuild_v2_0__64bit_=C:\Windows\Microsoft.NET\Framework64\v2.0.50727\MSBuild.exe\nbamboo_capability_system_builder_node_Node_exe=C:\Program Files\nodejs\node.exe\nbamboo_capability_system_jdk_JDK_1_8_0_151__JRE_=C:\Program Files\Java\SE851\nbamboo_capability_system_jdk_JDK=C:\Program Files\Java\SE851\nbamboo_agentId=196609\nbamboo_planName=Comcept.Net - Test Web API\nbamboo_capability_system_builder_devenv_Visual_Studio_2010=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\nbamboo_plan_storageTag=plan-3309569\nbamboo_shortPlanKey=TWA\nbamboo_ManualBuildTriggerReason_userName=ddivita\nbamboo_shortJobKey=JOB1\nbamboo_capability_system_builder_msbuild_MSBuild_v14_0__32bit_=C:\Program Files (x86)\MSBuild\14.0\bin\MSBuild.exe\nbamboo_capability_system_builder_msbuild_MSBuild_v4_0__64bit_=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe\nbamboo_buildTimeStamp=2018-03-01T08:43:29.444-05:00\nbamboo_working_directory=D:\bamboo-home\xml-data\build-dir\COM-TWA-JOB1\nbamboo_planKey=COM-TWA\nbamboo_capability_system_jdk_JDK_1_8=C:\Program Files\Java\SE851\nbamboo_buildResultKey=COM-TWA-JOB1-3\nbamboo_buildPlanName=Comcept.Net - Test Web API - Default Job\n
build   01-Mar-2018 08:43:29    
build   01-Mar-2018 08:43:29    D:\bamboo-home\xml-data\build-dir\COM-TWA-JOB1>c:\curl\curl.exe -v https://api-qa.comcept.net/token 
error   01-Mar-2018 08:43:29      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
error   01-Mar-2018 08:43:29                                     Dload  Upload   Total   Spent    Left  Speed
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 192.168.0.220...
error   01-Mar-2018 08:43:29    * TCP_NODELAY set
error   01-Mar-2018 08:43:29    * Connected to api-qa.comcept.net (192.168.0.220) port 443 (#0)
error   01-Mar-2018 08:43:29    * ALPN, offering h2
error   01-Mar-2018 08:43:29    * ALPN, offering http/1.1
error   01-Mar-2018 08:43:29    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
error   01-Mar-2018 08:43:29    * successfully set certificate verify locations:
error   01-Mar-2018 08:43:29    *   CAfile: c:\curl\ca-bundle.crt
error   01-Mar-2018 08:43:29      CApath: none
error   01-Mar-2018 08:43:29    * TLSv1.2 (OUT), TLS header, Certificate Status (22):
error   01-Mar-2018 08:43:29    } [5 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.2 (OUT), TLS handshake, Client hello (1):
error   01-Mar-2018 08:43:29    } [512 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (IN), TLS handshake, Server hello (2):
error   01-Mar-2018 08:43:29    { [81 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (IN), TLS handshake, Certificate (11):
error   01-Mar-2018 08:43:29    { [3180 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (IN), TLS handshake, Server key exchange (12):
error   01-Mar-2018 08:43:29    { [587 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (IN), TLS handshake, Server finished (14):
error   01-Mar-2018 08:43:29    { [4 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (OUT), TLS handshake, Client key exchange (16):
error   01-Mar-2018 08:43:29    } [70 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (OUT), TLS change cipher, Client hello (1):
error   01-Mar-2018 08:43:29    } [1 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (OUT), TLS handshake, Finished (20):
error   01-Mar-2018 08:43:29    } [16 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (IN), TLS change cipher, Client hello (1):
error   01-Mar-2018 08:43:29    { [1 bytes data]
error   01-Mar-2018 08:43:29    * TLSv1.0 (IN), TLS handshake, Finished (20):
error   01-Mar-2018 08:43:29    { [16 bytes data]
error   01-Mar-2018 08:43:29    * SSL connection using TLSv1.0 / ECDHE-RSA-AES256-SHA
error   01-Mar-2018 08:43:29    * ALPN, server did not agree to a protocol
error   01-Mar-2018 08:43:29    * Server certificate:
error   01-Mar-2018 08:43:29    *  subject: CN=*.comcept.net
error   01-Mar-2018 08:43:29    *  start date: Feb 24 00:00:00 2018 GMT
error   01-Mar-2018 08:43:29    *  expire date: Jul 18 12:00:00 2020 GMT
error   01-Mar-2018 08:43:29    *  subjectAltName: host "api-qa.comcept.net" matched cert's "*.comcept.net"
error   01-Mar-2018 08:43:29    *  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=RapidSSL RSA CA 2018
error   01-Mar-2018 08:43:29    *  SSL certificate verify ok.
error   01-Mar-2018 08:43:29    } [5 bytes data]
error   01-Mar-2018 08:43:29    > GET /token HTTP/1.1
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    > Host: api-qa.comcept.net
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    > User-Agent: curl/7.53.1
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    > Accept: */*
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    > 
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    { [5 bytes data]
error   01-Mar-2018 08:43:29    < HTTP/1.1 400 Bad Request
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < Cache-Control: no-cache
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < Pragma: no-cache
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < Content-Length: 34
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < Content-Type: application/json;charset=UTF-8
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < Expires: -1
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < Server: Microsoft-IIS/7.5
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < X-Powered-By: ASP.NET
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < Date: Thu, 01 Mar 2018 13:44:21 GMT
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    < 
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    { [34 bytes data]
error   01-Mar-2018 08:43:29    
error   01-Mar-2018 08:43:29    100    34  100    34    0     0    241      0 --:--:-- --:--:-- --:--:--   241
error   01-Mar-2018 08:43:29    * Connection #0 to host api-qa.comcept.net left intact
build   01-Mar-2018 08:43:29    {"error":"unsupported_grant_type"}
simple  01-Mar-2018 08:43:29    Finished task 'Test Curl' with result: Success
simple  01-Mar-2018 08:43:29    Running post build plugin 'NCover Results Collector'
simple  01-Mar-2018 08:43:29    Running post build plugin 'Artifact Copier'
simple  01-Mar-2018 08:43:29    Running post build plugin 'npm Cache Cleanup'
simple  01-Mar-2018 08:43:29    Running post build plugin 'Clover Results Collector'
simple  01-Mar-2018 08:43:29    Running post build plugin 'Docker Container Cleanup'
simple  01-Mar-2018 08:43:29    Finalising the build...
simple  01-Mar-2018 08:43:29    Stopping timer.
simple  01-Mar-2018 08:43:29    Build COM-TWA-JOB1-3 completed.
simple  01-Mar-2018 08:43:29    Running on server: post build plugin 'NCover Results Collector'
simple  01-Mar-2018 08:43:29    Running on server: post build plugin 'Build Hanging Detection Configuration'
simple  01-Mar-2018 08:43:29    Running on server: post build plugin 'Clover Delta Calculator'
simple  01-Mar-2018 08:43:29    Running on server: post build plugin 'Maven Dependencies Postprocessor'
simple  01-Mar-2018 08:43:29    All post build plugins have finished
simple  01-Mar-2018 08:43:29    Generating build results summary...
simple  01-Mar-2018 08:43:29    Saving build results to disk...
simple  01-Mar-2018 08:43:29    Logging substituted variables...
simple  01-Mar-2018 08:43:29    Indexing build results...
simple  01-Mar-2018 08:43:29    Finished building COM-TWA-JOB1-3.

The Bamboo 脚本任务 https://confluence.atlassian.com/bamboo/script-289277046.html根据 shell 的退出代码确定其成功或失败,该退出代码等于 shell 的存在代码last执行的命令(即 0 表示成功,其他值表示失败)。但是,默认情况下,curl 不会将任何非 2xx HTTP 响应视为错误,因为即使对于 4xx 和 5xx 状态代码,curl 本身也能正常工作。您可以通过以下方式调整此设置--fail命令行标志(来自卷曲手册页 https://curl.haxx.se/docs/manpage.html):

-f,--失败

(HTTP) 服务器出现错误时静默失败(根本没有输出)。这是 主要是为了更好地启用脚本等以更好地处理失败的情况 尝试。在正常情况下,当 HTTP 服务器无法发送请求时 document,它返回一个 HTML 文档来说明这一点(通常也 描述了原因以及更多)。该标志将阻止curl输出 并返回错误 22。

此方法并非万无一失,有时会出现以下情况: 不成功的响应代码将会漏掉,特别是当 涉及身份验证(响应代码 401 和 407)。

  • 如果curl命令不是脚本中执行的最后一个命令,您可以将其退出代码保存在变量中并返回该命令,或者如果shell是Bash,则使用例如set -e在脚本的顶部创建 shell“如果命令以非零状态退出,则立即退出”. (更详细的解释 https://stackoverflow.com/q/19622198/45773).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bamboo 能否将 HTTP 400 Bad 请求解释为失败 的相关文章

随机推荐

  • 如何编辑表格数据 (ASP MVC)

    我需要能够在浏览器中编辑数据表 我在 MVCContrib 中看到有一个 HTML 帮助器来渲染表格 有用 但是如果我希望用户能够编辑该表怎么办 据我所知 这并没有帮助 解决这个问题的最佳方法是什么 传统的 FORM 里面有一个 TABLE
  • Azure IoT Hub设备消息结构和路由查询

    我使用了来自的 python 示例https learn microsoft com de de azure iot hub quickstart send telemetry python https learn microsoft co
  • 使用“VisualStudio.DTE.10.0”创建解决方案并添加项目

    我正在尝试创建 VS2010 解决方案并从独立应用程序 而不是加载项 添加项目 我可以创建 VS2010 的实例 但我无法确定如何正确创建项目 我只能找到如何使用 EnvDTE80 对象创建项目的示例 这稍后会导致异常 因为该项目文件的格式
  • Android Room 通用 DAO

    美好的一天 Stack 我正在开发一个使用 Android Room 1 0 0 Alpha 5 的 Android 项目 我面临的主要问题是每次我需要从 Room 调用其中一个 DAO 时 我都需要执行类似的操作这 活动 java App
  • 基本树概念:定义祖先

    祖先的定义是什么 更具体地说 E 会是 H 的祖先吗 或者更简单地说 F C A 是 H 的祖先 也许甚至是G 我只是想澄清这个简单的概念 E 不是 H 的祖先 它是uncle因为它是一个siblingF 的parent of H F C
  • R twitterR 包,尽管有限制但仍能获得关注者

    我一直在玩RtwitteR包 但还没有弄清楚如何实现一个系统来收集超过每小时最大数量的数据 Twitter 用户的关注者数量 我知道计划应该是收集最大数量 等待 X 时间 然后重复直到收集完所有内容 但是我该如何使用twitteR包裹 th
  • 使用 FFmpeg 在特定时间将一个视频叠加在另一个视频上

    我正在尝试将一个视频与另一个视频叠加 我按照OP发布的原始命令进行操作here https stackoverflow com questions 35269387 ffmpeg overlay one video onto another
  • MySQL 语法和“OR”性能

    这个 MySQL 查询工作得很好 SELECT o id FROM descriptions programs d titles programs t programs o WHERE d object id o id AND MATCH
  • 检测触摸屏(ipad、iphone 等)的最佳方法?

    如果在 ipad 或 iphone 等触摸屏设备上查看页面 我需要向页面加载一些额外的 CSS 最简单的方法是什么 谢谢 对于 iPad 您可以尝试 if window Touch alert touch my ipad iphone ip
  • 错误消息:JSFiddle 中不允许 document.write

    当我尝试在 JSFiddle 上运行我的 JavaScript 文件之一时 收到以下错误消息 document write 在 JSFiddle 环境中是不允许的 并且可能会破坏你的小提琴 我该如何解决这个问题 Note 当我使用外部资源时
  • 尝试部署到 Google Cloud Run 时出现权限错误

    我在尝试将映像部署到云运行时遇到权限错误 gcloud beta run deploy endpoints proxy image gcr io endpoints release endpoints runtime serverless
  • Google Drive HTTP 403“访问未配置”错误

    我正在尝试将 Salesforce 的 DrEdit 示例应用程序安装到 GAE 上 应用程序运行 但保存或打开文件会导致 HTTP 403 访问未配置错误 我还尝试将 API Access gt Client ID 的值用于 Web 应用
  • android 编辑文本背景

    我想设置为我的 EditText背景 http img9 imageshack us f backgroundtext png 嗯 我也不知道该怎么解释 当有大量文本时垂直滚动启用 当用户滚动文本时 我需要 滚动 背景 现在我知道 当用户滚
  • 如何从 Firebase 中的 Android 应用创建空表? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在 Android 平台上开发实时应用程序 我想在 Firebase 数据库中添加一个具有特定名称且没有信息的表 这可能吗 我该怎
  • 无法加载 ResolveComReference 任务

    Win7 VS2017 ASP Net core应用程序 目标框架是4 6 当我尝试使用 CLI 构建项目时 在调用 dotnet 命令之前需要它 会发生错误 C Microsoft Common CurrentVersion target
  • NanoScroller 不触发自身

    下面的代码应该能够触发pane and slider适当地displaycss 属性根据纳米滚动文档 http jamesflorentino github com nanoScrollerJS 但是 滚动条不显示slider直到我在浏览器
  • 连接两个php变量

    我从这样的表单中获取文本和颜色 代码在管理 php
  • Android Content Provider 的实例化顺序

    对于我的应用程序 我需要先启动一个内容提供程序 据我所知 该顺序与 AndroidManifest 中的顺序无关 并且不是按字母顺序排列的 如何控制 Android 调用 Content Provider 的 onCreate 方法的顺序
  • 如何使用 Open XML SDK 将文本插入内容控件

    我正在尝试开发一种解决方案 该解决方案从 ASP Net 网页获取输入并将输入值嵌入到 MS Word 文档中的相应内容控件中 MS Word 文档还具有静态数据 以及一些要嵌入到页眉和页脚字段中的动态数据 这里的想法是解决方案应该基于 W
  • Bamboo 能否将 HTTP 400 Bad 请求解释为失败

    我们正在使用 CURL 向我们的应用程序之一发出外部 API 请求 如果该请求返回的值不是 200 我们希望ebamboo 的 构建 失败 目前 它正在过去 此外 响应中的消息中包含 错误 一词 我希望 Bamboo 能够解析脚本结果并根据