小编Pet*_*mas的帖子

是否有一种无需部署即可集成测试JAX-RS服务的机制(如MockMVC)?

我已经使用Mock MVC为Spring MVC REST服务成功构建了无需部署的集成测试框架。我正在努力对JAX-RS服务执行相同的操作。

REST Assured看起来很有前途,但似乎需要部署。测试套件可以启动CXF服务器,但是可以将其与servlet容器连接起来吗?

看起来Mock MVC提供的唯一值在其模拟servlet容器中。是否有其他技术可以提供此功能?

CXF文档JAX-RS测试页面提供了一种将模拟HttpServletRequest注入CXF调用程序的模式。这让我在想...

Spring MVC的模拟servlet元素(MockHttpServletRequest等)来自spring-test模块,独立于Mock MVC。我们是否可以将这些对象注入CXF调用程序中?还是这将是一个兔子洞?

有没有人想出这个问题的解决方案?


integration-testing cxf jax-rs rest-assured karate

5
推荐指数
1
解决办法
587
查看次数

在Karate中,我们如何与BA合作以实现业务场景的自动化

在使用Karate时,我们能够对Web服务进行大部分验证,我们能够成功地将Karate与Selenium webdriver集成,并使用java类进行数据库断言.对于DB,我们将结果集作为列表返回,方法是将每一行转换为hashmap,Karate将其作为json数组.因此验证变得简单.我们在QA方面的大多数需求都是使用空手道实现的.

然而,今天我们介绍的时候,对于一个更大的社区,其中一个开发者提出了一个问题.他是JBehave,BDD,jsonpath,java,Web服务等方面的专家.我们也认为他的问题在我们的背景下非常相关.然而,空手道的方法是不同的,根据我们的知识它可能不起作用.

在我们的上下文中,我们需要让BA使用业务术语考虑他们的业务场景来编写BDD,然后QA/Dev可以将这些作为脚本转换.(我们通常使用黄瓜+硒/放心等方法).举例来说,如果我有一个特征文件10分的情况在,人在业务方面将无法理解验证看到空手道的步骤的细节/或另一个词纯英文文本会更多一点不言自明他们.我们需要这种方法,因为我们试图从故事层面本身实施流程变更.

你能分享一下你的想法吗?

bdd cucumber cucumber-jvm web-api-testing karate

5
推荐指数
1
解决办法
5168
查看次数

在空手道中尝试定义一个变量时,出现“找不到步骤定义方法匹配:defreferenceId=response.referenceId”

在尝试将响应中的值存储在变量中,以将其用于下一次调用时,并面临“没有找到与以下内容匹配的步骤定义方法:defreferenceId=response.referenceId”此错误。

Feature: To test GET /leads/{id} API

# To generate test data for getLeads 
Scenario: Test with valid flow
Given url baseUrl+leads
And request {some valid request body}
When method post
Then status 200
* assert response.referenceId != null
* def referenceId= response.referenceId


Scenario: Test with get call
Given url baseUrl+getLeadsByID+referenceId
When method get
Then status 200
Run Code Online (Sandbox Code Playgroud)

直到断言步骤正常工作。在尝试设置referenceId时得到这个。“没有找到匹配的步骤定义方法:defreferenceId=response.referenceId”

karate

5
推荐指数
1
解决办法
1万
查看次数

如何在 Azure 管道上运行 Karate API 测试

空手道和 Azure 新手。刚刚使用空手道创建了一些 API 测试,而且很简单。想要进一步添加 Azure 管道。

找到了一些仅指向添加 Microsoft 的 pom.xml 和 maven 的链接。还发现了 Jekins 集成,但没有适用于 Azure。

未知/如何。

  1. 需要将哪些文件移动到管道,例如 jar、war、xml 等。

  2. 如何创建它们我使用intelliJ。

  3. 有可用的分步教程吗?任何帮助表示赞赏。

azure azure-devops karate

5
推荐指数
1
解决办法
3939
查看次数

当您可以在没有 karate-junit5 的情况下运行测试时,karate-junit5 的目的是什么?

Karate 文档有 2 个使用 Karate 和 JUnit5 进行测试的示例:

我在第二个示例中仅使用 karate-core (0.9.9-RC2) 创建了一个项目,不需要 karate-junit5。有什么不同?

Karate 提供的功能给我留下了深刻的印象,我有兴趣创建一个测试工具,它可能需要根据运行时标准挑选测试,并且还需要自定义报告,因此我正在寻找连接到的最简单方法测试运行者。karate-junit5 中的代码似乎是一个很好的起点,但我只是想了解为什么正常运行的测试实际上不需要它。

karate

5
推荐指数
1
解决办法
9306
查看次数

与 Rest Assured/Karate 相比,Cypress 是 API 自动化测试的不错选择吗?

我一直在谷歌上搜索有关使用 Cypress 进行自动化 API 测试的信息。我找到了以下链接:

我能想到的大多数情况,比如 Oauth,所有 REST 方法,包括表单数据、GraphQL、断言、模拟都可以使用 Cypress 来实现。但是我想知道为什么它没有被使用,它比其他工具是一个不错的选择吗?请建议!

非常感谢。

rest-assured karate cypress

5
推荐指数
2
解决办法
4445
查看次数

每次在空手道 dsl 中运行测试时如何创建随机字符串

我发送的 json 请求是:

Given url applicationURL

And path 'applications'

And header Authorization = subscribeToken

And request:

    {
      "throttlingTier": "Unlimited",
      "description": "sample app description",
      "name": "TestbyKarate",
      "callbackUrl": "https:/apistore-dev-dev-a878-14-ams10-nonp.qcpaws.qantas.com.au/callback"
    }

When method post

Then status 201

* def applicationId = response.applicationId

* print 'applicationId is ', applicationId
Run Code Online (Sandbox Code Playgroud)

我在我的请求中发送名称,TestbyKarate但我想在每次测试运行时发送一个唯一值。

有什么办法吗?

dsl karate

4
推荐指数
1
解决办法
3847
查看次数

空手道框架:如果响应为空,则#notnull和#present不起作用

我的验证是验证天气orgId是否出现在响应中,并且该orgId应该包含一些值

我得到的响应是状态码200,响应主体为空。

现在我有下面的实现

Then match $.orgId == '#present'
Then match $.orgId == '#notnull'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,代码可以通过,理想情况下,它应该会失败,因为响应主体为空,并且响应中不存在orgId。我的问题是,为什么是代码获得通过与#present#notnull即使响应主体是空的

karate

4
推荐指数
1
解决办法
188
查看次数

单个arg匿名函数(避免下划线)的简明表示法不能按预期工作

在网上看了一些例子之后,我意识到只有一个arg时,有一种方法可以编写一个没有下划线的匿名函数.另外,我正在试验List上的"span"方法,我从来不知道它存在.无论如何,这是我的REPL会议:

scala> val nums = List(1, 2, 3, 4, 5)
nums: List[Int] = List(1, 2, 3, 4, 5)

scala> nums span (_ != 3)
res0: (List[Int], List[Int]) = (List(1, 2),List(3, 4, 5))

scala> nums span (3 !=)
res1: (List[Int], List[Int]) = (List(1, 2),List(3, 4, 5))
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是当我尝试使用"小于"运算符时:

scala> nums span (_ < 3)
res2: (List[Int], List[Int]) = (List(1, 2),List(3, 4, 5))

scala> nums span (3 <)
res3: (List[Int], List[Int]) = (List(),List(1, 2, 3, 4, 5))
Run Code Online (Sandbox Code Playgroud)

为什么这表现不同?

scala

3
推荐指数
1
解决办法
788
查看次数

有没有办法使用空手道写入文本文件

在我的空手道测试中,我需要将响应 id 写入 txt 文件(或任何其他文件格式,例如 JSON),我想知道它是否有能力做到这一点,我在文档中没有看到其他内容。在否的情况下,是否有一个简单的 JavaScript 函数可以这样做?

dsl karate

2
推荐指数
1
解决办法
5008
查看次数