是否可以使用空手道框架读取.gql文件中的不同查询?

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

query ExampleQuery1  {
    campaignArticles(
        page:0
        size: 10
        categoryId:"3aac6513-fb0d-4ed1-8fc3-f8d9aec08638")
    {
        content {
            id
            ... on CampaignArticle {
                displayPlace
                title
                shortDescription
                longDescription
                publishEndDate
                endDateCountdown
                campaignEndDateVisible
                personal
                personalMedia{
                    id
                    type
                    url
                    videoPreviewImage
                }
                listViewMedia {
                    id
                    type
                    url
                    videoPreviewImage
                }
                scenarios {
                    id
                    scenarioId
                    scenarioName
                }
                externalMembershipPartner
                optin {
                    id
                    formExist
                    limitExceeded
                    buttonText
                    buttonDisabledText
                }
                favorite
                brand {
                    id
                    name
                    logo{
                        id
                        type
                        url
                        videoPreviewImage
                    }
                }
            }
        }
        page {
            number
            size
            totalElements
            totalPages
        }
    }
}

query ExampleQuery1  {
    campaignCategories(page: 0, size: 10) {
        content {
            ... on CampaignCategory {
                name
                version
                id
            }
        }
    }
}

query ExampleQuery2  {
    campaignCategories(page: 0, size: 10) {
        content {
            ... on CampaignCategory {
                name
                version
                id
            }
        }
    }
}

我正在尝试读取 .gql 文件中的不同查询。我找到了一个例子,但没有用 “给定请求 read('requestGraphQL.gql', 'ExampleQuery1')” 使用像这样的读取方法,给出此错误“org.graalvm.polyglot.PolyglotException:TypeError:在 com.intuit.karate.core.ScenarioEngine$$Lambda$89 上执行失败原因:数量错误 - 预期:1 实际:2

  • .:程序(未命名:1)”

我正在分享我的 .gql 文件和场景步骤。如果可以读取文件中的查询,请帮助我。添加了 3 个屏幕截图来解释我的代码。

这是我的 .gql 文件,我想按名称读取这些查询。我的目标是防止每个查询使用多个文件

@55547

场景:LimitTanimiListesiAlma

Given def query = read('requestGraphQL.gql')
And request { query: '#(query)' }
And header app-version = "3.0.0"
And header platform = "app-store"
And header Accept = "*/*"
When method post
Then status 200
Then print response
graphql karate
2个回答
1
投票

read()
函数仅接受一个参数。

* request read('requestGraphQL.gql')

以上应该足够了。


1
投票

我找到了解决问题的方法。我正在使用 .js 文件而不是 .gql 文件,使用 javascript 函数返回请求。

function(){
  return {
    graphqlFunction: function()
    {
    const MY_GRAPHQL_QUERY = `query ($categoryId: UUID!){
                                  campaignArticles(
                                      page:0
                                      size: 10
                                      categoryId: $categoryId )
                                  {
                                      content {
                                          id
                                          ... on CampaignArticle {
                                              displayPlace
                                              title
                                              shortDescription
                                              longDescription
                                              publishEndDate
                                              endDateCountdown
                                              campaignEndDateVisible
                                              personal
                                              personalMedia{
                                                  id
                                                  type
                                                  url
                                                  videoPreviewImage
                                              }
                                              listViewMedia {
                                                  id
                                                  type
                                                  url
                                                  videoPreviewImage
                                              }
                                              scenarios {
                                                  id
                                                  scenarioId
                                                  scenarioName
                                              }
                                              externalMembershipPartner
                                              optin {
                                                  id
                                                  formExist
                                                  limitExceeded
                                                  buttonText
                                                  buttonDisabledText
                                              }
                                              favorite
                                              brand {
                                                  id
                                                  name
                                                  logo{
                                                      id
                                                      type
                                                      url
                                                      videoPreviewImage
                                                  }
                                              }
                                          }
                                      }
                                      page {
                                          number
                                          size
                                          totalElements
                                          totalPages
                                      }
                                  }
                              }`
        return MY_GRAPHQL_QUERY;
    }
  }
}

@55547 场景:限制TanimiListesiAlma

Given def query = jsFile.graphqlFunction()
And def variables = { categoryId: '3aac6513-fb0d-4ed1-8fc3-f8d9aec08638' }
And request { query: '#(query)', variables: '#(variables)' }
And header app-version = "3.0.0"
And header platform = "app-store"
And header Accept = "*/*"
When method post
Then status 200
Then print response
© www.soinside.com 2019 - 2024. All rights reserved.