我已经使用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调用程序中?还是这将是一个兔子洞?
有没有人想出这个问题的解决方案?
。
在使用Karate时,我们能够对Web服务进行大部分验证,我们能够成功地将Karate与Selenium webdriver集成,并使用java类进行数据库断言.对于DB,我们将结果集作为列表返回,方法是将每一行转换为hashmap,Karate将其作为json数组.因此验证变得简单.我们在QA方面的大多数需求都是使用空手道实现的.
然而,今天我们介绍的时候,对于一个更大的社区,其中一个开发者提出了一个问题.他是JBehave,BDD,jsonpath,java,Web服务等方面的专家.我们也认为他的问题在我们的背景下非常相关.然而,空手道的方法是不同的,根据我们的知识它可能不起作用.
在我们的上下文中,我们需要让BA使用业务术语考虑他们的业务场景来编写BDD,然后QA/Dev可以将这些作为脚本转换.(我们通常使用黄瓜+硒/放心等方法).举例来说,如果我有一个特征文件和10分的情况在,人在业务方面将无法理解验证看到空手道的步骤的细节/或另一个词纯英文文本会更多一点不言自明他们.我们需要这种方法,因为我们试图从故事层面本身实施流程变更.
你能分享一下你的想法吗?
在尝试将响应中的值存储在变量中,以将其用于下一次调用时,并面临“没有找到与以下内容匹配的步骤定义方法: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”
空手道和 Azure 新手。刚刚使用空手道创建了一些 API 测试,而且很简单。想要进一步添加 Azure 管道。
找到了一些仅指向添加 Microsoft 的 pom.xml 和 maven 的链接。还发现了 Jekins 集成,但没有适用于 Azure。
未知/如何。
需要将哪些文件移动到管道,例如 jar、war、xml 等。
如何创建它们我使用intelliJ。
有可用的分步教程吗?任何帮助表示赞赏。
Karate 文档有 2 个使用 Karate 和 JUnit5 进行测试的示例:
我在第二个示例中仅使用 karate-core (0.9.9-RC2) 创建了一个项目,不需要 karate-junit5。有什么不同?
Karate 提供的功能给我留下了深刻的印象,我有兴趣创建一个测试工具,它可能需要根据运行时标准挑选测试,并且还需要自定义报告,因此我正在寻找连接到的最简单方法测试运行者。karate-junit5 中的代码似乎是一个很好的起点,但我只是想了解为什么正常运行的测试实际上不需要它。
我一直在谷歌上搜索有关使用 Cypress 进行自动化 API 测试的信息。我找到了以下链接:
我能想到的大多数情况,比如 Oauth,所有 REST 方法,包括表单数据、GraphQL、断言、模拟都可以使用 Cypress 来实现。但是我想知道为什么它没有被使用,它比其他工具是一个不错的选择吗?请建议!
非常感谢。
我发送的 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但我想在每次测试运行时发送一个唯一值。
有什么办法吗?
我的验证是验证天气orgId是否出现在响应中,并且该orgId应该包含一些值
我得到的响应是状态码200,响应主体为空。
现在我有下面的实现
Then match $.orgId == '#present'
Then match $.orgId == '#notnull'
Run Code Online (Sandbox Code Playgroud)
在这种情况下,代码可以通过,理想情况下,它应该会失败,因为响应主体为空,并且响应中不存在orgId。我的问题是,为什么是代码获得通过与#present和#notnull即使响应主体是空的
在网上看了一些例子之后,我意识到只有一个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)
为什么这表现不同?
在我的空手道测试中,我需要将响应 id 写入 txt 文件(或任何其他文件格式,例如 JSON),我想知道它是否有能力做到这一点,我在文档中没有看到其他内容。在否的情况下,是否有一个简单的 JavaScript 函数可以这样做?
karate ×9
dsl ×2
rest-assured ×2
azure ×1
azure-devops ×1
bdd ×1
cucumber ×1
cucumber-jvm ×1
cxf ×1
cypress ×1
jax-rs ×1
scala ×1