Karate API - Hello World 示例,但 POST (GraphQL) 创建/检索用户

2023-11-29

我的场景中有两个 graphQL 帖子,就像 Hello World 示例一样:我想创建一个用户(API - createUser),然后检索该用户(API - getUser)以运行断言。

我不确定它是否是 graphQL Post 查询让我绊倒的,但也许有人以前遇到过这个。出现错误并伴有 graphQL 解析错误,我假设它没有从第一个 POST 调用响应中正确传递用户 ID。

Scenario: Create a User
Given path 'query'
And header Accept = 'application/json'
Given text query = 
"""
mutation {
  createUser(username: "CreateUser16"
, name: "Auto CreateUser", isPrivate: true) {
        id
        username
        lastLoginAt
        createdAt
      }
    }

"""

And request { query: '#(query)' }
When method POST
Then status 200
And print response
And match response.data.createUser.id !=null
* def userID = response.data.createUser.id
And print userID
Given path 'query'
And header Accept = 'application/json'
Given text query = 
"""
{
  getUser(id: '#(userID') {
    bio
    birthDate
    createdAt
    id
  }
}
"""

And request { query: '#(query)' }
When method POST
Then status 200
And print response

The #(replaceMe)技巧仅适用于 JSON,不适用于texttype 这是一个字符串。所以使用replace反而:https://github.com/intuit/karate#replace

只需更改“占位符”并在第二个之前添加一行request:

Given text query = 
"""
{
  getUser(id: "<userID>") {
    bio
    birthDate
    createdAt
    id
  }
}
"""
And replace query.userID = userID

仅供参考,使用 GraphQL 变量可能是另一种选择(也是“更好”的做法):https://stackoverflow.com/a/62162541/143475

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Karate API - Hello World 示例,但 POST (GraphQL) 创建/检索用户 的相关文章

随机推荐

  • 是否可以指定用于 PHP SoapClient 的传出网络接口?

    我需要将 SoapClient 绑定到特定的出站网络接口 但我找不到任何相关文档 这可能吗 如果没有 有哪些可能的解决方法 您可以将流上下文传递给设置了绑定选项的soapclient构造函数 opts array socket gt arr
  • Clang 的 '_mm256_pow_ps' 内在函数在哪里?

    我似乎找不到 mm pow ps 或 mm256 pow ps 的内在函数 这两个函数都应该包含在 immintrin h 中 Clang 没有定义这些或者它们在我没有包含的标头中吗 这不是内在的 而是内在的 这是一个英特尔 SVML 库f
  • 更改其他 Win32-dl​​l/exe 中的资源

    有一个资源黑客允许更改其他 win32 64 dll 和 exe 文件中的资源的程序 我需要做同样的事情 但是以编程方式 是否可以使用 Net框架来做到这一点 这样做的良好起点是什么 您必须使用开始更新资源 更新资源 and 结束更新资源W
  • 来自 Handlebars 块助手的 Meteor.call

    我正在尝试使用Meteor callHandlebars 块助手中的函数 Handlebars registerHelper get handle function profileId name Meteor call getProfile
  • 从深度 2 结交朋友?

    Facebook 应用程序是否有可能获得深度 2 的好友 我的意思是 If user A正在使用该应用程序 并且A有一个朋友B谁不是 使用该应用程序 我可以得到一份清单吗B朋友 深度2 是否可以通过某种特定许可来实现 Thanks 不 这是
  • python中二叉树的最大深度

    我从二叉树创建了一个元组 它看起来像这样 元组 1 2 4 5 6 7 无 8 3 9 10 11 12 通过应用缩进 树结构变得更加清晰 1 2 4 5 6 7 None 8 3 9 10 11 12 我知道如何使用递归方法找到二叉树的最
  • 测试套件、测试用例和测试类别之间的区别

    测试套件 测试用例和测试类别之间有什么区别 我找到了部分答案here 但是类别呢 测试用例是为测试特定执行路径而开发的一组测试输入 执行条件和预期结果 通常情况下 案例是单一方法 测试套件是相关测试用例的列表 套件可能包含特定于所包含案例的
  • 如何使 gdb 前端在汇编源代码窗口中显示当前指令箭头?

    我正在 Linux Arch 64 上进行一些 x86 汇编程序编码 使用 nasm 进行汇编 使用 ld 进行链接 从而创建一个 32 位可执行文件 wordcount wordcount o ld o wordcount wordcou
  • C++ 中值类型的限制范围

    假设我有一个 LimitedValue 类 它保存一个值 并在 int 类型 min 和 max 上进行参数化 您可以将其用作保存只能在特定范围内的值的容器 你可以这样使用它 LimitedValue lt float 0 360 gt s
  • 如何使用java设置生成的pdf417条形码的宽度

    您好 我正在生成 pdf417 条形码 为此我遵循this link try String a Microsoft String b wkejew PDF417 barcode new PDF417 barcode setData a b
  • 如何限制 Bootstrap Datepicker 中的可选日期范围?

    我需要使用日期选择器 它为我提供了限制可选日期的选项 我们一直在使用 jQuery UI 它用于使用 minDate maxDate 选项来支持它 id date datepicker minDate 1 maxDate 1M 10D 最近
  • 使平滑的锚标记滚动与滚动捕捉兼容

    我在用 html scroll behavior smooth 实现平滑滚动到 html 锚标记 我还使用启用垂直滚动捕捉scroll snap type and scroll snap align在 css 中 如下面的代码所示 问题是我
  • Jena Sparql 和构造

    CONSTRUCT是 SPARQL 结果子句的替代SELECT 不是返回结果值表 CONSTRUCT返回 RDF 图 例如 在以下 Java 代码中运行此查询会生成HttpException 406 Unacceptable 但如果不是CO
  • 该应用程序不允许查询方案 XYZ://

    您可能认为这是一个重复的问题 但事实并非如此 我完全知道有关该问题的所有答案canOpenURL及其在 iOS 9 上的注意事项 但这是我的问题 我正在尝试检查我的设备上是否安装了特定的应用程序 均由我开发 我已宣布该计划AppA as
  • 在 Python 中下载文件

    import urllib2 sys if len sys argv 3 print Usage download py
  • 为 iOS 模拟器构建,但链接框架“****.framework”是为 iOS 构建的

    我无法再在模拟器上运行我的应用程序 网上建议我编辑我的project pbxproj 但这似乎不起作用 如何重新获得在模拟器上运行项目的能力 并仍然能够在设备上执行此操作 我正在开发另一个项目 该项目使用许多相同的框架 但它在模拟器上运行
  • 存档时链接器命令失败

    我想要archiveReact Native 项目用户使用最新的 Xcode 但总是失败 因为链接器命令失败 当我跑步时xcodebuild verbose Ld命令 那么错误是这样的 ld file not found build xxx
  • 合并时不会出现空格冲突

    我遇到了一个问题 其中一个大型提交更改了大约一千行代码 删除了行尾的空格并删除了制表符之前的空格 该项目还有大约 50 个拉取请求 当我的提交被合并时 所有这些请求都会发生冲突 有没有什么方法可以设置 git 以便在合并未来的提交时 它会忽
  • 带前导零的数字的反转

    我们如何反转 number 中带有前导零的数字 例如 如果输入是004 输出应该是 400 我写了下面的程序 但它仅在输入中没有前导零时才有效 int num cout lt lt Enter number lt
  • Karate API - Hello World 示例,但 POST (GraphQL) 创建/检索用户

    我的场景中有两个 graphQL 帖子 就像 Hello World 示例一样 我想创建一个用户 API createUser 然后检索该用户 API getUser 以运行断言 我不确定它是否是 graphQL Post 查询让我绊倒的