- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个如下所示的测试(使用 cucumber )-
Scenario: Login successfully to Facebook
Given the user test exists
And user name and password is entered
When the login form is submitted
Then I expose a HTTP-Rest service to validate the user name and password
When I receive a validation success message
Then display the welcome message to the user
这里,当“提交登录表单”
被调用时,它会将请求提交给HTTP REST服务,该服务会将用户名和密码传递给另一个HTTP Rest服务(这将被公开)由 Citrus 框架)使用 “我公开 HTTP-Rest 服务来验证用户名和密码”
这将验证数据并发送成功响应。因此,“提交登录表单”
和 “我公开 HTTP-Rest 服务来验证用户名和密码
”的步骤定义应异步执行。
你能帮我吗 - 我如何使用 cucumber (或/和柑橘)实现这一目标。
注意:我没有使用任何 stub
应用程序来公开 HTTP Rest 服务,以实现 “我公开 HTTP-Rest 服务来验证用户名和密码
” ;我正在尝试使用 Citrus
框架公开该服务。
步骤定义是用java编写的。
最佳答案
首先,您需要在项目中设置 citrus-cucumber 扩展。然后您应该能够使用 @CitrusResource 注释将测试运行器实例注入(inject)您的步骤类:
@CitrusResource
private TestRunner runner;
您还可以注入(inject)应接收请求的 http 服务器实例。
@CitrusEndpoint(name = "userServer")
private HttpServer userServer;
然后您可以使用测试运行程序和服务器来接收请求并在步骤定义中发送响应:
@Then("^I expose a HTTP-Rest service to validate the user name and password$")
public void exposeHttpRestService() {
runner.http(http -> http.server(userServer)
.receive()
.post()
.payload("{\"username\": \"test\", \"password\": \"secret\"}"));
runner.http(http -> http.server(userServer)
.send()
.response(HttpStatus.OK));
}
登录表单应使用单独的线程在单独的步骤定义中提交,以创建异步特性:
@When("^the login form is submitted$")
public void submitForm() {
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.submit(() -> {
// do submit the form
});
}
关于java - 使用 Cucumber(和/或 Citrus)执行异步步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45942438/
我正在使用 CitrusFramework 进行 Rest API 测试。我已经扫描了该方法,但没有得到任何可以打印响应堆栈跟踪的内容。 问候比杜 最佳答案 我假设您想要分析从被测服务器获得的 HTT
我正在使用 CitrusFramework 进行 Rest API 测试。我已经扫描了该方法,但没有得到任何可以打印响应堆栈跟踪的内容。 问候比杜 最佳答案 我假设您想要分析从被测服务器获得的 HTT
我正在使用静态响应端点适配器返回从资源文件获取的模拟服务响应: private void setAdapterResponse(StaticResponseEndpointAd
我正在尝试使用 citrus 向 sftp 服务器进行身份验证我已经在这样的上下文文件中提供了用户名和密码 当程序正在执行时,我得到一些类似的提示 "KEBROS USERNAME : " 输入用
我正在使用 TestNg 框架来执行柑橘框架测试用例。在下面的代码中,我无法获取柑橘文本上下文对象,在执行测试用例时出现错误 import org.testng.annotations.Optiona
我正在将柑橘支付集成到 Android 应用程序中,在我的交易成功之前,一切都在沙箱中运行良好,但是一旦我的交易成功,我就会看到以下日志: MOTO 成功***{"txMsg":"交易成功","pgR
我是 Citrus 的新手,所以我尝试执行 航类预订示例,但我遇到了一些问题。首先,我认为有一点 自述文件错误(https://github.com/christophd/citrus-samples
使用 Citrus 测试框架对服务器进行测试时,我无法禁用证书检查。 我收到以下错误:org.springframework.web.client.ResourceAccessException:“”
我有一个带有元素 ValidationFault 的 XML 负载。我的验证的一部分是确认 ValidationFault 元素在 XML 负载中仅出现一次。使用以下 Citrus Java DSL:
我一直在研究 Citrus Framework 并下载了示例项目文件夹。运行指令指示如何构建代码、启动 Jetty 服务器以及运行所包含的各种测试。我已经尝试过这个,并且构建仅在第二个模块之后失败。这
我有一组通过Spring Boot实现的微服务,它们通过HTTP REST进行通信。我正在尝试使用Citrus框架设置集成测试。我已经为某些服务成功编写并执行了集成测试,但是正在为更复杂的用例而苦苦挣
我正在评估用于休息服务黑盒测试的 citrus-framework。 有没有办法使用 java DSL 和条件容器根据状态代码进行验证? http(httpActionBuilder -
我正在尝试测试以下两个 REST 调用: 请求 1 GET getLatestVersion Response: {"version": 10} 请求 2 POST getVersionData (b
我想对使用 Netty 构建的套接字服务器进行一些单元测试。 Socket Server 有如下简单的代码: import io.netty.bootstrap.ServerBootstrap; im
背景: 我有一个包含三个服务的简单Spring Boot应用程序。服务通过HTTP REST调用进行通信。以下是对服务的简要说明。 任务计划者(localhost:9100) 编排任务的“计划”。调用
我正在尝试在柑橘行为类中发送 image.jpeg,就我而言,我收到的响应是一个空白页面,这不是我所期望的。 这是我的代码: @Override public void run(Sce
我正在从 AMQ 代理获取消息,并且需要验证纯文本负载。看来 citrus 在纯文本验证方面非常有限,并且验证匹配器无法让我到达需要的位置,因此我需要使用 java 代码来处理它。 代码是使用基本的
我正在尝试通过 Citrus-Framework 发送和接收 TCP 消息,我在其中使用了这个线程作为引用: Receiving messages from tcp server with Citru
我必须将 Citrus 支付网关集成到我的 Android 应用程序中,我们将不胜感激。 website here提前谢谢你。 最佳答案 Citrus 提供了一些真正简化的开发人员指南,以实现高效的技
我正在尝试使用 Citrus Framework 从 JSON 响应中获取一些信息,但我不确定 .extractFromPayload 方法是如何工作的。例如,我发出 GET 请求,JSON 响应为:
我是一名优秀的程序员,十分优秀!