【问题标题】:Add a test case in Rally using Soap UI -Rest使用 Soap UI -Rest 在 Rally 中添加测试用例
【发布时间】:2017-05-16 13:28:17
【问题描述】:

我正在尝试使用 Soap UI 和 Rally 在 https://rally1.rallydev.com/slm/doc/webservice/ 公开的 API 在 Rally 中添加一个测试用例。不过,我可以使用 java 代码来做到这一点。根据页面,我需要进行 POST/PUT 以实现相同但我得到错误

{"CreateResult": {
   "_rallyAPIMajor": "2",
   "_rallyAPIMinor": "0",
   "Errors": ["Not authorized to perform action: Invalid key"],
   "Warnings": []
}}

我传递的payload如下

 {
        "Name": "Ignore:Newly added testcase associated to a Story3",
        "Description": "Test creation of Story3",
        "Owner": "https://rally1.rallydev.com/slm/webservice/v2.0/user/3215613515",
        "Objective": "Test objective of Story3",
        "PreConditions": "1. Hi<br>2. Hello",
        "Project": "1223451",
        "Notes": "Adding a test case"
    }

请帮我解决问题。

添加示例请求

POST https://rally1.rallydev.com/slm/webservice/v2.0/testcase/create?key=abc123..... HTTP/1.1 接受编码:gzip,deflate 内容类型:应用程序/json 内容长度:464 主持人:rally1.rallydev.com 连接:保持活动 用户代理:Apache-HttpClient/4.1.1 (java 1.5) Cookie:JSESSIONID=qs-app-07fv4cswgptt7b1vc3o58hztndw.qs-app-07;服务器ID=c1acc7f401011b9881d1497a9ef30b27acc4a1c9; __cfduid=d392a0428b5fa74f473cb1712c3d64d7a1483502577 Cookie2:$Version=1

{
    "testcase": {
        "Name": "Ignore:Newly added testcase associated to a Story3",
        "Description": "Test creation of Story3",
        "Owner": "https://rally1.rallydev.com/slm/webservice/v2.0/user/28138408395",
        "Objective": "Test objective of Story3",
        "WorkProduct": "https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/61375703434",
        "PreConditions": "1. Hi<br>2. Hello",
        "Project": "/project/17133096258",
        "Notes": "Adding a test case"
    }`enter code here`
}  

【问题讨论】:

  • json 是有效的,但可能 Rally 网络服务正在等待不同的东西。你能检查一下 Web 服务在等待什么 JSON,Rally Web 服务在等待什么格式?
  • 按照 "stackoverflow.com/questions/18620056/…" 中提到的内容,上述错误消失了,但现在我得到一个不同的错误 - "Errors": ["Not authorized to perform action: Invalid key"] 。仅供参考,我尝试过使用不同的令牌(新创建的密钥)。
  • 为了使用 POST 创建对象,需要获取安全密钥;请参阅此处的 Web 服务 API 文档:rally1.rallydev.com/slm/doc/webservice/authentication.jsp。或者,您可能希望使用 API 密钥而不是基本身份验证;见ca.com/us/services-support/ca-support/ca-support-online/…
  • 我已尝试将“key”作为参数传递,如 rally1.rallydev.com/slm/doc/webservice/authentication.jsp 中所述,但我仍然收到错误 {"CreateResult": { "_rallyAPIMajor": "2", "_rallyAPIMinor": "0 ", "Errors": ["无权执行操作:无效密钥"], "Warnings": [] }}
  • 一些小事 - 你的项目需要是一个参考 (/project/1223451)。此外,您的帖子正文需要用一个与类型匹配的键包装在另一个对象中:{“testcase”:{...您的对象在这里...}}

标签: json rest soapui rally


【解决方案1】:

我能够成功地将测试用例添加到 Rally 的用户故事中。我们要做的是在 POST 请求中添加一个标头为“ZSESSIONID”,其值为在“https://rally1.rallydev.com/login/accounts/index.html#/keys”处创建的 ApiKey。感谢大家的支持

【讨论】:

    【解决方案2】:

    SOAP UI 客户端是否管理 cookie?您需要确保您仍在为所有请求使用相同的会话。通过key 查询字符串参数传递的身份验证令牌需要与活动会话匹配。如果您的请求只是再次重新传递基本身份验证凭据,它可能会生成一个新会话,从而使该令牌无效。通常在客户端启用 cookie 就足以解决这个问题。这就是我们提供的工具包管理它的方式。

    【讨论】:

    • 我发现它与 cookie 无关(我之前推测过)。谢谢@Kyle。我现在有一个修复。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2013-03-24
    • 2019-05-27
    • 1970-01-01
    相关资源
    最近更新 更多